From 513a5a5009578537c74eb6f437d5054ab7c8f5f4 Mon Sep 17 00:00:00 2001 From: Russell Cohen Date: Tue, 1 Jun 2021 17:02:28 -0400 Subject: [PATCH] Update ci.yaml (#446) * Update ci.yaml Split SDK CI jobs for better parallelism and reporting * Update ci.yaml * restructure gradle build to avoid skipped steps * take 2 * again? * Update ci.yaml run test, docs, & clippy * Update ci.yaml Fix job name typo --- .github/workflows/ci.yaml | 147 +++++++++++++++++++++++++++++++++----- aws/sdk/build.gradle.kts | 2 + 2 files changed, 133 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 93cd808921..682073fad3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,9 +1,9 @@ -on: +on: push: tags: - - '*' + - '*' pull_request: - + name: CI env: @@ -135,14 +135,6 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} restore-keys: | ${{ runner.os }}-gradle- - - uses: actions/cache@v2 - name: Cargo Cache - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - uses: actions-rs/toolchain@v1 with: toolchain: ${{ env.rust_version }} @@ -152,11 +144,11 @@ jobs: java-version: ${{ env.java_version }} - name: Generate the SDK run: ./gradlew :aws:sdk:assemble - - name: Run tests, generate docs - run: ./gradlew :aws:sdk:build - - name: Get current date - id: date - run: echo "name=${GITHUB_REF##*/}-$(date +'%Y-%m-%d')" >> $GITHUB_ENV + - name: Generate the SDK...again? + run: ./gradlew :aws:sdk:assemble + - name: Generate a name for the SDK + id: gen-name + run: echo "name=${GITHUB_REF##*/}" >> $GITHUB_ENV - uses: actions/upload-artifact@v2 name: Upload SDK Artifact with: @@ -164,3 +156,126 @@ jobs: path: | aws/sdk/build/aws-sdk/ !aws/sdk/build/aws-sdk/target + + check-sdk: + name: cargo check AWS SDK + needs: generate-sdk + runs-on: ubuntu-latest + steps: + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargocheck + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - name: Generate a name for the SDK + id: gen-name + run: echo "name=${GITHUB_REF##*/}" >> $GITHUB_ENV + - uses: actions/download-artifact@v2 + name: Download SDK Artifact + with: + name: aws-sdk-${{ env.name }}-${{ github.sha }} + path: aws-sdk + - name: Cargo Check + run: cargo check + working-directory: aws-sdk + env: + RUSTFLAGS: -D warnings + test-sdk: + name: cargo test AWS SDK + needs: generate-sdk + runs-on: ubuntu-latest + steps: + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargotest + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - name: Generate a name for the SDK + id: gen-name + run: echo "name=${GITHUB_REF##*/}" >> $GITHUB_ENV + - uses: actions/download-artifact@v2 + name: Download SDK Artifact + with: + name: aws-sdk-${{ env.name }}-${{ github.sha }} + path: aws-sdk + - name: Cargo Test + run: cargo test + working-directory: aws-sdk + env: + RUSTFLAGS: -D warnings + docs-sdk: + name: cargo docs AWS SDK + needs: generate-sdk + runs-on: ubuntu-latest + steps: + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargodocs + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - name: Generate a name for the SDK + id: gen-name + run: echo "name=${GITHUB_REF##*/}" >> $GITHUB_ENV + - uses: actions/download-artifact@v2 + name: Download SDK Artifact + with: + name: aws-sdk-${{ env.name }}-${{ github.sha }} + path: aws-sdk + - name: Cargo Docs + run: cargo doc --no-deps + working-directory: aws-sdk + env: + RUSTFLAGS: -D warnings + clippy-sdk: + name: cargo clippy AWS SDK + needs: generate-sdk + runs-on: ubuntu-latest + steps: + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargoclippy + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.rust_version }} + - name: Generate a name for the SDK + id: gen-name + run: echo "name=${GITHUB_REF##*/}" >> $GITHUB_ENV + - uses: actions/download-artifact@v2 + name: Download SDK Artifact + with: + name: aws-sdk-${{ env.name }}-${{ github.sha }} + path: aws-sdk + - name: Cargo Clippy + run: cargo clippy -- -D warnings + working-directory: aws-sdk diff --git a/aws/sdk/build.gradle.kts b/aws/sdk/build.gradle.kts index 0f59e7ee4a..627a3cb6eb 100644 --- a/aws/sdk/build.gradle.kts +++ b/aws/sdk/build.gradle.kts @@ -179,6 +179,8 @@ task("generateCargoWorkspace") { } task("finalizeSdk") { + dependsOn("assemble") + outputs.upToDateWhen { false } finalizedBy( "relocateServices", "relocateRuntime",