Update CI.yml (#20624)

This commit is contained in:
Mac Siri 2024-02-13 17:05:50 -05:00 committed by GitHub
parent 205aee8c78
commit 0ac81957ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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