From 0ac81957ea9c81ba328fe4e4c34933f2f8824470 Mon Sep 17 00:00:00 2001 From: Mac Siri Date: Tue, 13 Feb 2024 17:05:50 -0500 Subject: [PATCH] Update CI.yml (#20624) --- .github/workflows/ci.yml | 49 +++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 93e0891c3..5fddb6650 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,6 +60,7 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' precompile_assets: + needs: [bundle_install, yarn_install] runs-on: ubuntu-latest env: E2E: true @@ -68,35 +69,32 @@ jobs: - uses: actions/checkout@v4 - name: Look up if compiled assets exist uses: actions/cache@v4 - id: precompiled-asset + id: cache with: fail-on-cache-miss: false path: | public/assets - tmp/cache/webpacker - key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }} + key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', '**/package.json', '**/yarn.lock') }} restore-keys: ${{ runner.os }}-compiled-assets-v3- - name: setup ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true - if: steps.precompiled-asset.outputs.cache-hit != 'true' + if: steps.cache.outputs.cache-hit != 'true' - name: Cache node_modules uses: actions/cache/restore@v4 with: path: node_modules key: ${{ runner.os }}-node-modules-v2-${{ hashFiles('**/yarn.lock') }} restore-keys: ${{ runner.os }}-node-modules-v2- - if: steps.precompiled-asset.outputs.cache-hit != 'true' + if: steps.cache.outputs.cache-hit != 'true' - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: yarn - if: steps.precompiled-asset.outputs.cache-hit != 'true' - - run: yarn install --immutable - if: steps.precompiled-asset.outputs.cache-hit != 'true' + if: steps.cache.outputs.cache-hit != 'true' - run: bundle exec rails assets:precompile - if: steps.precompiled-asset.outputs.cache-hit != 'true' + if: steps.cache.outputs.cache-hit != 'true' audit: runs-on: ubuntu-latest @@ -129,7 +127,7 @@ jobs: rspec: runs-on: ubuntu-latest - needs: [bundle_install, yarn_install, precompile_assets] + needs: [precompile_assets] timeout-minutes: 20 env: KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }} @@ -162,8 +160,7 @@ jobs: fail-on-cache-miss: true path: | public/assets - tmp/cache/webpacker - key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }} + key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', '**/package.json', '**/yarn.lock') }} restore-keys: ${{ runner.os }}-compiled-assets-v3- - name: Restore node_modules uses: actions/cache/restore@v4 @@ -183,17 +180,17 @@ jobs: - name: RSpec run: bin/knapsack_pro_rspec - name: Upload RSpec artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: - name: rspec-artifacts + name: rspec-artifacts-${{ matrix.ci_node_index }} path: tmp/capybara - name: Rename folder run: mv coverage/simplecov coverage/simplecov-${{ matrix.ci_node_index }} - name: Upload test coverage result - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: coverage + name: coverage-rspec-${{ matrix.ci_node_index }} path: coverage/ - name: Upload test results to BuildPulse for flaky test detection if: '!cancelled()' # Run this step even when the tests fail. Skip if the workflow is cancelled. @@ -233,9 +230,9 @@ jobs: key: ${{ secrets.BUILDPULSE_ACCESS_KEY_ID }} secret: ${{ secrets.BUILDPULSE_SECRET_ACCESS_KEY }} - name: Upload test coverage result - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: coverage + name: coverage-jest path: coverage/ storybook: @@ -258,7 +255,7 @@ jobs: build_test: runs-on: ubuntu-latest - needs: [bundle_install, yarn_install, precompile_assets] + needs: [bundle_install, yarn_install] timeout-minutes: 20 env: RAILS_ENV: production @@ -306,7 +303,7 @@ jobs: cypress: runs-on: ubuntu-latest timeout-minutes: 20 - needs: [bundle_install, yarn_install, precompile_assets] + needs: [precompile_assets] env: E2E: true @@ -336,8 +333,7 @@ jobs: fail-on-cache-miss: true path: | public/assets - tmp/cache/webpacker - key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }} + key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', '**/package.json', '**/yarn.lock') }} restore-keys: ${{ runner.os }}-compiled-assets-v3- - name: Restore node_modules uses: actions/cache/restore@v4 @@ -374,10 +370,10 @@ jobs: run: CREATOR_ONBOARDING_SEED_DATA=1 E2E_FOLDER=creatorOnboardingFlows E2E=true bin/rails cypress:run if: ${{ matrix.ci_node_index == 'non-seed' }} - name: Upload Cypress artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() with: - name: cypress-artifacts + name: cypress-artifacts-${{ matrix.ci_node_index }} path: | tmp/cypress_screenshots cypress/logs @@ -396,9 +392,10 @@ jobs: needs: [rspec, jest, cypress] steps: - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: - name: coverage + pattern: coverage-* + merge-multiple: true - run: | mkdir coverage coverage/simplecov coverage/cypress mv simplecov-* coverage/simplecov