Update CI.yml (#20624)
This commit is contained in:
parent
205aee8c78
commit
0ac81957ea
1 changed files with 23 additions and 26 deletions
49
.github/workflows/ci.yml
vendored
49
.github/workflows/ci.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue