From f6385017683f6c5cc564652d9c8a9cacafc3e8a3 Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Wed, 25 Sep 2024 10:11:30 +0100 Subject: [PATCH] Update cache policy for CI build --- .github/workflows/ci.yaml | 124 ++++++++++++++++++++++++++------------ 1 file changed, 87 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7993f053..627bbd55 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,29 +9,106 @@ on: type: [opened, reopened, edited, synchronize] jobs: + prepare: + name: Prepare Maven cache + runs-on: ubuntu-latest + + env: + MAVEN_ARGS: --batch-mode -Dstyle.color=always + + steps: + - name: Checkout YDB Java SDK + uses: actions/checkout@v4 + with: + path: sdk + + - name: Checkout YDB YC Auth provider + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-yc + path: yc + + - name: Checkout YDB JDBC Driver + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-jdbc-driver + path: jdbc + + - name: Checkout YDB Java Examples + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-examples + path: examples + + - name: Set up Java + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: 'temurin' + cache: 'maven' + cache-dependency-path: | + sdk/pom.xml + sdk/bom/pom.xml + yc/pom.xml + jdbc/pom.xml + + - name: Download YDB Java SDK dependencies + working-directory: ./sdk + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB YC Auth provider dependencies + working-directory: ./yc + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB JDBC Driver dependencies + working-directory: ./jdbc + run: mvn $MAVEN_ARGS dependency:go-offline + + - name: Download YDB Java Examples dependencies + working-directory: ./examples + run: mvn $MAVEN_ARGS dependency:go-offline + build: - name: YDB Java SDK CI with Maven + name: YDB Java SDK CI on JDK runs-on: ubuntu-latest + needs: prepare strategy: matrix: java: [ '8', '11', '17'] env: - MAVEN_ARGS: --batch-mode --update-snapshots -Dstyle.color=always -DYDB_DOCKER_ISOLATION=true + MAVEN_ARGS: --batch-mode -Dstyle.color=always -DYDB_DOCKER_ISOLATION=true steps: - - name: Set up JDK 8 + - name: Checkout YDB Java SDK + uses: actions/checkout@v4 + with: + path: sdk + + - name: Checkout YDB YC Auth provider + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-java-yc + path: yc + + - name: Checkout YDB JDBC Driver + uses: actions/checkout@v4 + with: + repository: ydb-platform/ydb-jdbc-driver + path: jdbc + + - name: Set up Java uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} distribution: 'temurin' cache: 'maven' - - - name: Checkout YDB Java SDK - uses: actions/checkout@v4 - with: - path: sdk + cache-dependency-path: | + sdk/pom.xml + sdk/bom/pom.xml + yc/pom.xml + jdbc/pom.xml - name: Extract YDB Java SDK version working-directory: ./sdk @@ -45,57 +122,30 @@ jobs: VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "AUTH_API_VERSION=$VERSION" >> "$GITHUB_ENV" - - name: Download YDB Java SDK dependencies - working-directory: ./sdk - run: mvn $MAVEN_ARGS dependency:go-offline - - name: Build YDB Java SDK working-directory: ./sdk run: mvn $MAVEN_ARGS install - - name: Checkout YDB YC Auth provider - uses: actions/checkout@v4 - with: - repository: ydb-platform/ydb-java-yc - path: yc - - - name: Download YDB YC Auth provider dependencies - working-directory: ./yc - run: mvn $MAVEN_ARGS -Dydb.auth-api.version=$AUTH_API_VERSION dependency:go-offline - - name: Build YDB YC Auth provider working-directory: ./yc run: mvn $MAVEN_ARGS -Dydb.auth-api.version=$AUTH_API_VERSION install - - name: Checkout YDB JDBC Driver - uses: actions/checkout@v4 - with: - repository: ydb-platform/ydb-jdbc-driver - path: jdbc - - name: Extract YDB JDBC Driver version working-directory: ./jdbc run: | VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "JDBC_VERSION=$VERSION" >> "$GITHUB_ENV" - - name: Download YDB JDBC Driver dependencies - working-directory: ./jdbc - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION dependency:go-offline - - name: Build YDB JDBC Driver with tests working-directory: ./jdbc run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION install - - uses: actions/checkout@v4 + - name: Checkout YDB Java Examples + uses: actions/checkout@v4 with: repository: ydb-platform/ydb-java-examples path: examples - - name: Download dependencies - working-directory: ./examples - run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION dependency:go-offline - - name: Test examples with Maven working-directory: ./examples run: mvn $MAVEN_ARGS -Dydb.sdk.version=$SDK_VERSION -Dydb.jdbc.version=$JDBC_VERSION test