From f18db1c0433bc26f8705f090fbe2957e0113bbd5 Mon Sep 17 00:00:00 2001 From: Sushant Mane Date: Tue, 29 Oct 2024 16:41:38 -0700 Subject: [PATCH] [docker] Add GitHub Action for building and publishing Docker images to GHCR (#1264) - Add a GitHub Action for manual triggering to build Docker images from specified Git tags. - The workflow checks out the repository, validates the tag, builds images using a specified script, and pushes them to the GitHub Container Registry. Verification steps confirm successful image creation and include metadata annotations. - Upgrade GitHub Actions dependencies: - actions/upload-artifact from v3 to v4. - actions/setup-java from v3 to v4. - Replaced gradle/gradle-build-action@v2 with gradle/actions/setup-gradle@v3. - Upgraded gradle/wrapper-validation-action@v1 to gradle/actions/wrapper-validation@v3. - Upload unit test artifacts for each JDK in a separate file. --- .../rawWorkflows/gh-ci-parameterized-flow.txt | 12 +- .../workflows/VeniceCI-CompatibilityTests.yml | 48 +-- .github/workflows/VeniceCI-E2ETests.yml | 384 +++++++++--------- .../VeniceCI-StaticAnalysisAndUnitTests.yml | 28 +- .../build-and-publish-docker-images.yml | 140 +++++++ .../build-and-upload-archives-on-demand.yml | 14 +- ...-and-upload-archives-upon-pushing-tags.yml | 10 +- .../workflows/build-and-upload-archives.yml | 9 +- .github/workflows/publish-javadoc.yml | 10 +- docker/build-venice-docker-images.sh | 24 +- docker/venice-client/Dockerfile | 2 + docker/venice-controller/Dockerfile | 2 + docker/venice-router/Dockerfile | 2 + docker/venice-server/Dockerfile | 2 + 14 files changed, 425 insertions(+), 262 deletions(-) create mode 100644 .github/workflows/build-and-publish-docker-images.yml diff --git a/.github/rawWorkflows/gh-ci-parameterized-flow.txt b/.github/rawWorkflows/gh-ci-parameterized-flow.txt index bb5791dfa0..e2058109c4 100644 --- a/.github/rawWorkflows/gh-ci-parameterized-flow.txt +++ b/.github/rawWorkflows/gh-ci-parameterized-flow.txt @@ -12,7 +12,7 @@ with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -22,10 +22,10 @@ git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "$GradleArguments" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew $GradleArguments - name: Package Build Artifacts if: success() || failure() shell: bash @@ -36,7 +36,7 @@ tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz diff --git a/.github/workflows/VeniceCI-CompatibilityTests.yml b/.github/workflows/VeniceCI-CompatibilityTests.yml index c5d0b1af01..3b8a3ff64d 100644 --- a/.github/workflows/VeniceCI-CompatibilityTests.yml +++ b/.github/workflows/VeniceCI-CompatibilityTests.yml @@ -18,7 +18,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -28,10 +28,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "-DmaxParallelForks=2 --parallel :internal:venice-avro-compatibility-test:test --continue" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Avro Compatibility Tests + run: ./gradlew -DmaxParallelForks=2 --parallel :internal:venice-avro-compatibility-test:test --continue - name: Package Build Artifacts if: success() || failure() shell: bash @@ -42,7 +42,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -63,7 +63,7 @@ jobs: # Checkout as many commits as needed for the diff fetch-depth: 2 - name: Check if files have changed - uses: dorny/paths-filter@v2 + uses: dorny/paths-filter@v3 id: check_alpini_files_changed with: filters: | @@ -74,7 +74,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 if: steps.check_alpini_files_changed.outputs.alpini == 'true' with: java-version: ${{ matrix.jdk }} @@ -97,11 +97,12 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle + - name: Setup Gradle if: steps.check_alpini_files_changed.outputs.alpini == 'true' - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DmaxParallelForks=1 alpiniUnitTest" + uses: gradle/actions/setup-gradle@v4 + - name: Run alpini unit tests + if: steps.check_alpini_files_changed.outputs.alpini == 'true' + run: ./gradlew --continue --no-daemon -DmaxParallelForks=1 alpiniUnitTest - name: Package Build Artifacts if: steps.check_alpini_files_changed.outputs.alpini == 'true' && (success() || failure()) shell: bash @@ -112,7 +113,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: steps.check_alpini_files_changed.outputs.alpini == 'true' && (success() || failure()) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -133,7 +134,7 @@ jobs: # Checkout as many commits as needed for the diff fetch-depth: 2 - name: Check if files have changed - uses: dorny/paths-filter@v2 + uses: dorny/paths-filter@v3 id: check_alpini_files_changed with: filters: | @@ -144,7 +145,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 if: steps.check_alpini_files_changed.outputs.alpini == 'true' with: java-version: ${{ matrix.jdk }} @@ -167,11 +168,12 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle + - name: Setup Gradle if: steps.check_alpini_files_changed.outputs.alpini == 'true' - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DmaxParallelForks=1 alpiniFunctionalTest" + uses: gradle/actions/setup-gradle@v4 + - name: Run alpini functional tests + if: steps.check_alpini_files_changed.outputs.alpini == 'true' + run: ./gradlew --continue --no-daemon -DmaxParallelForks=1 alpiniFunctionalTest - name: Package Build Artifacts if: steps.check_alpini_files_changed.outputs.alpini == 'true' && (success() || failure()) shell: bash @@ -182,7 +184,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: steps.check_alpini_files_changed.outputs.alpini == 'true' && (success() || failure()) - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -200,7 +202,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -211,7 +213,7 @@ jobs: git remote add upstream https://github.com/linkedin/venice git fetch upstream - name: Setup Gradle - uses: gradle/gradle-build-action@v2 + uses: gradle/actions/setup-gradle@v4 - name: Build with gradle run: ./gradlew assemble --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 @@ -244,7 +246,7 @@ jobs: tar -zcvf ${{ github.job }}-artifacts.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-artifacts.tar.gz diff --git a/.github/workflows/VeniceCI-E2ETests.yml b/.github/workflows/VeniceCI-E2ETests.yml index 4207e4ef89..737df22396 100644 --- a/.github/workflows/VeniceCI-E2ETests.yml +++ b/.github/workflows/VeniceCI-E2ETests.yml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -35,10 +35,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1000" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1000 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -49,7 +49,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -67,7 +67,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -77,10 +77,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1010" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1010 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -91,7 +91,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -109,7 +109,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -119,10 +119,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1020" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1020 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -133,7 +133,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -151,7 +151,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -161,10 +161,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1030" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1030 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -175,7 +175,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -193,7 +193,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -203,10 +203,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1040" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1040 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -217,7 +217,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -235,7 +235,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -245,10 +245,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1050" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1050 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -259,7 +259,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -277,7 +277,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -287,10 +287,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1060" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1060 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -301,7 +301,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -319,7 +319,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -329,10 +329,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1070" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1070 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -343,7 +343,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -361,7 +361,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -371,10 +371,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1080" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1080 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -385,7 +385,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -403,7 +403,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -413,10 +413,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1090" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1090 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -427,7 +427,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -445,7 +445,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -455,10 +455,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1100" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1100 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -469,7 +469,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -487,7 +487,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -497,10 +497,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1110" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1110 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -511,7 +511,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -529,7 +529,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -539,10 +539,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1120" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1120 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -553,7 +553,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -571,7 +571,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -581,10 +581,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1130" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1130 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -595,7 +595,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -613,7 +613,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -623,10 +623,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1200" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1200 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -637,7 +637,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -655,7 +655,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -665,10 +665,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1210" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1210 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -679,7 +679,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -697,7 +697,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -707,10 +707,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1220" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1220 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -721,7 +721,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -739,7 +739,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -749,10 +749,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1230" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1230 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -763,7 +763,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -781,7 +781,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -791,10 +791,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1240" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1240 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -805,7 +805,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -823,7 +823,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -833,10 +833,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1250" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1250 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -847,7 +847,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -865,7 +865,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -875,10 +875,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1260" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1260 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -889,7 +889,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -907,7 +907,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -917,10 +917,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1270" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1270 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -931,7 +931,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -949,7 +949,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -959,10 +959,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1280" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1280 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -973,7 +973,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -991,7 +991,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1001,10 +1001,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1400" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1400 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1015,7 +1015,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1033,7 +1033,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1043,10 +1043,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1410" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1410 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1057,7 +1057,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1075,7 +1075,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1085,10 +1085,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1420" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1420 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1099,7 +1099,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1117,7 +1117,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1127,10 +1127,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1430" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1430 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1141,7 +1141,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1159,7 +1159,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1169,10 +1169,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1440" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1440 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1183,7 +1183,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1201,7 +1201,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1211,10 +1211,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1500" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1500 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1225,7 +1225,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1243,7 +1243,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1253,10 +1253,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1550" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_1550 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1267,7 +1267,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1285,7 +1285,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1295,10 +1295,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_9999" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew --continue --no-daemon -DforkEvery=1 -DmaxParallelForks=1 integrationTests_9999 - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1309,7 +1309,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -1328,7 +1328,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -1338,10 +1338,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "clean" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Integration Tests + run: ./gradlew clean - name: Package Build Artifacts if: success() || failure() shell: bash @@ -1352,7 +1352,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz diff --git a/.github/workflows/VeniceCI-StaticAnalysisAndUnitTests.yml b/.github/workflows/VeniceCI-StaticAnalysisAndUnitTests.yml index 1cbc029387..106ee254f3 100644 --- a/.github/workflows/VeniceCI-StaticAnalysisAndUnitTests.yml +++ b/.github/workflows/VeniceCI-StaticAnalysisAndUnitTests.yml @@ -14,7 +14,7 @@ jobs: with: fetch-depth: 0 - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/actions/wrapper-validation@v3 StaticAnalysis: strategy: @@ -28,7 +28,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -38,10 +38,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "--continue --no-daemon clean check --parallel -Pspotallbugs -x test -x integrationTest -x jacocoTestCoverageVerification" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Static Analysis + run: ./gradlew --continue --no-daemon clean check --parallel -Pspotallbugs -x test -x integrationTest -x jacocoTestCoverageVerification - name: Package Build Artifacts if: success() || failure() shell: bash @@ -52,7 +52,7 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.job }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz @@ -70,7 +70,7 @@ jobs: with: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -80,10 +80,10 @@ jobs: git remote set-head origin --auto git remote add upstream https://github.com/linkedin/venice git fetch upstream - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "-x :internal:venice-avro-compatibility-test:test jacocoTestCoverageVerification diffCoverage --continue" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Run Unit Tests with Code Coverage + run: ./gradlew -x :internal:venice-avro-compatibility-test:test jacocoTestCoverageVerification diffCoverage --continue - name: Package Build Artifacts if: success() || failure() shell: bash @@ -94,9 +94,9 @@ jobs: tar -zcvf ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz ${{ github.job }}-artifacts - name: Upload Build Artifacts if: success() || failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: ${{ github.job }} + name: ${{ github.job }}-jdk${{ matrix.jdk }} path: ${{ github.job }}-jdk${{ matrix.jdk }}-logs.tar.gz retention-days: 30 diff --git a/.github/workflows/build-and-publish-docker-images.yml b/.github/workflows/build-and-publish-docker-images.yml new file mode 100644 index 0000000000..5bee69a104 --- /dev/null +++ b/.github/workflows/build-and-publish-docker-images.yml @@ -0,0 +1,140 @@ +name: Build and Publish Docker Images + +on: + workflow_dispatch: + inputs: + git_tag: + description: "Tag to build Docker images from" + required: true + default: "0.4.17" + +permissions: + contents: read + packages: write + +jobs: + docker-build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Step 1: Check out the repository + - name: Check out the repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Step 2: Set up JDK + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: "17" + distribution: "temurin" + cache: "gradle" + + # Step 3: Fetch all branches and tags + - name: Fetch all branches and tags + run: | + git remote set-head origin --auto + git remote add upstream https://github.com/linkedin/venice + git fetch upstream + git fetch --tags + + # Step 4: Validate and check out the tag + - name: Check out tag and validate + id: validate_tag + run: | + TAG="${{ github.event.inputs.git_tag }}" + if ! git rev-parse "refs/tags/$TAG" >/dev/null 2>&1; then + echo "Error: Tag '$TAG' does not exist." + # Emit an annotation warning that the tag was not valid + echo "::error title=Tag Validation Failed::The specified git tag '$TAG' does not exist in the repository." + exit 1 + fi + + # Check out the specified tag + git checkout "tags/$TAG" + + # Get latest commit information + COMMIT_SHA=$(git rev-parse HEAD) + COMMIT_MSG=$(git log -1 --pretty=%B) + COMMIT_DATE=$(git log -1 --pretty=%cd --date=format:"%Y-%m-%d %H:%M:%S") + + echo "Latest commit SHA: $COMMIT_SHA" + echo "Latest commit date: $COMMIT_DATE" + + # Set outputs + echo "commit_sha=$COMMIT_SHA" >> $GITHUB_OUTPUT + echo "commit_date=$COMMIT_DATE" >> $GITHUB_OUTPUT + + # Step 5: Run Docker image build and push script + - name: Build Docker images + env: + TAG_VERSION: ${{ github.event.inputs.git_tag }} + run: | + # Pass the tag as the version + bash docker/build-venice-docker-images.sh "ghcr.io/${{ github.repository }}" "$TAG_VERSION" + + # Step 6: List generated Docker images + - name: List generated Docker images + run: | + echo "Listing all Docker images:" + docker images + + # Step 7: Verify that images were created + - name: Verify Docker images were created + run: | + TAG_VERSION="${{ github.event.inputs.git_tag }}" + TARGETS=("venice-controller" "venice-server" "venice-router" "venice-client") + for target in "${TARGETS[@]}"; do + IMAGE_NAME="ghcr.io/${{ github.repository }}/$target:$TAG_VERSION" + if ! docker inspect "$IMAGE_NAME" >/dev/null 2>&1; then + echo "Error: Docker image $IMAGE_NAME was not created." + exit 1 + else + echo "Docker image $IMAGE_NAME exists." + fi + done + + # Step 8: Publish Docker images to repo's GHCR + - name: Push Docker images to repo's GHCR + id: publish_images + run: | + targets=("venice-controller" "venice-server" "venice-router" "venice-client") + TAG_VERSION="${{ github.event.inputs.git_tag }}" + TAG_VERSION=$(echo "$TAG_VERSION" | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]') # Sanitize tag + IMAGE_URLS="" + for target in "${targets[@]}"; do + IMAGE_NAME="ghcr.io/${{ github.repository }}/$target:$TAG_VERSION" + echo "Pushing image: $IMAGE_NAME" + docker push "$IMAGE_NAME" + # Append URL to list with clickable full URL + IMAGE_URLS+="- $target - [$IMAGE_NAME](https://$IMAGE_NAME)\n" + done + # Save IMAGE_URLS to GITHUB_OUTPUT for later use in the workflow + echo -e "image_urls<> $GITHUB_OUTPUT + + - name: Display clickable image URLs + run: | + echo "## Published Docker Images" + echo -e "${{ steps.publish_images.outputs.image_urls }}" + + # Step 9: Annotate workflow with Docker image metadata + - name: Annotate workflow with Docker image metadata + if: success() + run: | + # Capture the current date and time for the published date + PUBLISHED_DATE=$(date +"%Y-%m-%d %H:%M:%S") + echo "**Docker Images Published:** ✅" >> $GITHUB_STEP_SUMMARY + echo "**Published Date:** $PUBLISHED_DATE" >> $GITHUB_STEP_SUMMARY + echo "**Git Tag Used:** ${{ github.event.inputs.git_tag }}" >> $GITHUB_STEP_SUMMARY + echo "**Latest Commit SHA:** ${{ steps.validate_tag.outputs.commit_sha }}" >> $GITHUB_STEP_SUMMARY + echo "**Latest Commit Date:** ${{ steps.validate_tag.outputs.commit_date }}" >> $GITHUB_STEP_SUMMARY + echo "**Docker Image URLs:**" >> $GITHUB_STEP_SUMMARY + echo -e "${{ steps.publish_images.outputs.image_urls }}" >> $GITHUB_STEP_SUMMARY \ No newline at end of file diff --git a/.github/workflows/build-and-upload-archives-on-demand.yml b/.github/workflows/build-and-upload-archives-on-demand.yml index 81e4ba21fb..d4607aa5c9 100644 --- a/.github/workflows/build-and-upload-archives-on-demand.yml +++ b/.github/workflows/build-and-upload-archives-on-demand.yml @@ -18,23 +18,23 @@ jobs: fetch-depth: 0 # all history for all branches and tags - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '11' - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 + uses: gradle/actions/wrapper-validation@v3 - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: clean assemble + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Build + run: ./gradlew clean assemble - name: package artifacts run: mkdir staging && find . -name "*.jar" -exec cp "{}" staging \; - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: Package path: staging \ No newline at end of file diff --git a/.github/workflows/build-and-upload-archives-upon-pushing-tags.yml b/.github/workflows/build-and-upload-archives-upon-pushing-tags.yml index 225836c998..3614db3b2e 100644 --- a/.github/workflows/build-and-upload-archives-upon-pushing-tags.yml +++ b/.github/workflows/build-and-upload-archives-upon-pushing-tags.yml @@ -21,16 +21,16 @@ jobs: fetch-depth: 0 # all history for all branches and tags - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '11' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Upload archive env: JFROG_USERNAME: ${{ secrets.JFROG_USERNAME }} JFROG_API_KEY: ${{ secrets.JFROG_API_KEY }} - uses: gradle/gradle-build-action@v2 - with: - arguments: | - "-Pversion=${{ github.ref_name }}" publishAllPublicationsToLinkedInJFrogRepository + run: ./gradlew -Pversion=${{ github.ref_name }} publishAllPublicationsToLinkedInJFrogRepository diff --git a/.github/workflows/build-and-upload-archives.yml b/.github/workflows/build-and-upload-archives.yml index 931e972d03..8cc27f4719 100644 --- a/.github/workflows/build-and-upload-archives.yml +++ b/.github/workflows/build-and-upload-archives.yml @@ -20,17 +20,16 @@ jobs: fetch-depth: 0 # all history for all branches and tags - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '11' - name: Get Latest Tag run: echo "GIT_TAG=`echo $(git describe --tags --abbrev=0 main)`" >> $GITHUB_ENV + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 - name: Upload archive env: JFROG_USERNAME: ${{ secrets.JFROG_USERNAME }} JFROG_API_KEY: ${{ secrets.JFROG_API_KEY }} - uses: gradle/gradle-build-action@v2 - with: - arguments: | - "-Pversion=${{ env.GIT_TAG }}" publishAllPublicationsToLinkedInJFrogRepository + run: ./gradlew -Pversion=${{ env.GIT_TAG }} publishAllPublicationsToLinkedInJFrogRepository diff --git a/.github/workflows/publish-javadoc.yml b/.github/workflows/publish-javadoc.yml index 9faad8f1be..afcdb50a26 100644 --- a/.github/workflows/publish-javadoc.yml +++ b/.github/workflows/publish-javadoc.yml @@ -25,11 +25,11 @@ jobs: git rebase origin/main git push -f origin javadoc - name: Validate Gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - name: Build with Gradle - uses: gradle/gradle-build-action@v2 - with: - arguments: "aggregateJavadoc" + uses: gradle/actions/wrapper-validation@v3 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Build Javadoc + run: ./gradlew aggregateJavadoc - name: Deploy to GitHub Page uses: JamesIves/github-pages-deploy-action@v4.6.1 with: diff --git a/docker/build-venice-docker-images.sh b/docker/build-venice-docker-images.sh index ef6ede5e6f..91c13871f0 100755 --- a/docker/build-venice-docker-images.sh +++ b/docker/build-venice-docker-images.sh @@ -13,20 +13,34 @@ echo "Building docker images for repository $repository, version $oss_release" head_hash=$(git rev-parse --short HEAD) version=$oss_release -cp *py venice-client/ +cp *py venice-client/ cp ../clients/venice-push-job/build/libs/venice-push-job-all.jar venice-client/ cp ../clients/venice-thin-client/build/libs/venice-thin-client-all.jar venice-client/ cp ../clients/venice-admin-tool/build/libs/venice-admin-tool-all.jar venice-client/ -cp *py venice-server/ +cp *py venice-server/ cp ../services/venice-server/build/libs/venice-server-all.jar venice-server/ -cp *py venice-controller/ +cp *py venice-controller/ cp ../services/venice-controller/build/libs/venice-controller-all.jar venice-controller/ -cp *py venice-router/ +cp *py venice-router/ cp ../services/venice-router/build/libs/venice-router-all.jar venice-router/ targets=(venice-controller venice-server venice-router venice-client) - +# Define image descriptions +declare -A image_descriptions=( + ["venice-controller"]="Venice Controller: responsible for managing administrative operations such as store creation, deletion, updates, and starting new pushes or versions." + ["venice-server"]="Venice Server: Acts as a Venice storage node, handling data ingestion, storage, and serving from RocksDB." + ["venice-router"]="Venice Router: responsible for routing requests from clients to the appropriate Venice Servers." + ["venice-client"]="Venice Client: Includes tools for store administration (e.g., create, delete), data pushing (VPJ), and a CLI for querying store data." +) + +# Build each target with labels for target in ${targets[@]}; do + docker buildx build --load --platform linux/amd64 \ + --label "org.opencontainers.image.source=https://github.com/linkedin/venice" \ + --label "org.opencontainers.image.authors=VeniceDB" \ + --label "org.opencontainers.image.description=${image_descriptions[$target]}" \ + --label "org.opencontainers.image.licenses=BSD-2-Clause" \ + -t "$repository/$target:$version" -t "$repository/$target:latest-dev" $target docker buildx build --load --platform linux/amd64 -t "$repository/$target:$version" -t "$repository/$target:latest-dev" $target done diff --git a/docker/venice-client/Dockerfile b/docker/venice-client/Dockerfile index 82549864d8..c745ed0cfe 100644 --- a/docker/venice-client/Dockerfile +++ b/docker/venice-client/Dockerfile @@ -1,5 +1,7 @@ FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu +LABEL org.opencontainers.image.description="Venice Client: Includes tools for store administration (e.g., create, delete), data pushing (VPJ), and a CLI for querying store data." + ENV VENICE_DIR=/opt/venice RUN apt-get update diff --git a/docker/venice-controller/Dockerfile b/docker/venice-controller/Dockerfile index 8680af6638..43f732d87f 100644 --- a/docker/venice-controller/Dockerfile +++ b/docker/venice-controller/Dockerfile @@ -1,5 +1,7 @@ FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu +LABEL org.opencontainers.image.description="Venice Controller: responsible for managing administrative operations such as store creation, deletion, updates, and starting new pushes or versions." + ENV VENICE_DIR=/opt/venice RUN apt-get update diff --git a/docker/venice-router/Dockerfile b/docker/venice-router/Dockerfile index 36d1d544e6..010399132b 100644 --- a/docker/venice-router/Dockerfile +++ b/docker/venice-router/Dockerfile @@ -1,5 +1,7 @@ FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu +LABEL org.opencontainers.image.description="Venice Router: responsible for routing requests from clients to the appropriate Venice Servers." + ENV VENICE_DIR=/opt/venice RUN apt-get update diff --git a/docker/venice-server/Dockerfile b/docker/venice-server/Dockerfile index da888dc559..18a3ea95ed 100644 --- a/docker/venice-server/Dockerfile +++ b/docker/venice-server/Dockerfile @@ -1,5 +1,7 @@ FROM mcr.microsoft.com/openjdk/jdk:11-ubuntu +LABEL org.opencontainers.image.description="Venice Server: Acts as a Venice storage node, handling data ingestion, storage, and serving from RocksDB." + ENV VENICE_DIR=/opt/venice RUN apt-get update