[ENG-6460] [ENG-6640] Add new preprint version workflow #4573
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- develop | |
- master | |
- 'release/*' | |
- 'hotfix/*' | |
env: | |
CI: true | |
PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_number }} | |
PERCY_PARALLEL_TOTAL: -1 | |
jobs: | |
fetch-dependencies: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- if: steps.cache-node-modules.outputs.cache-hit != 'true' | |
run: yarn --frozen-lockfile --ignore-engines | |
build: | |
runs-on: ubuntu-latest | |
needs: fetch-dependencies | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- run: yarn build:test | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: ./dist | |
lint: | |
runs-on: ubuntu-latest | |
needs: fetch-dependencies | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- run: yarn lint | |
test-partition-1: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: ./dist | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- name: Run tests with percy snapshots | |
run: yarn percy exec --debug --parallel --verbose yarn test:ember --path ./dist --partition 1 | |
env: | |
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} | |
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} | |
timeout-minutes: 10 | |
test-partition-2: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: ./dist | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- name: Run tests with percy snapshots | |
run: yarn percy exec --debug --parallel --verbose yarn test:ember --path ./dist --partition 2 | |
env: | |
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} | |
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} | |
timeout-minutes: 10 | |
test-partition-3: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: ./dist | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- name: Run tests with percy snapshots | |
run: yarn percy exec --debug --parallel --verbose yarn test:ember --path ./dist --partition 3 | |
env: | |
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} | |
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} | |
timeout-minutes: 10 | |
test-partition-4: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: ./dist | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- name: Run tests with percy snapshots | |
run: yarn percy exec --debug --parallel --verbose yarn test:ember --path ./dist --partition 4 | |
env: | |
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} | |
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} | |
timeout-minutes: 10 | |
test-with-coverage: | |
needs: fetch-dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- run: yarn test:ember:cover | |
- name: Send coverage report to coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
finalize-percy: | |
needs: [test-partition-1, test-partition-2, test-partition-3, test-partition-4] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
- id: cache-node-modules | |
uses: actions/cache@v2 | |
with: | |
path: ./node_modules | |
key: cached_node_modules_${{ secrets.CACHE_VERSION }}_${{ hashFiles('**/yarn.lock') }} | |
restore-keys: cached_node_modules_${{ secrets.CACHE_VERSION }}_ | |
- run: yarn percy build:finalize | |
if: ${{ env.PERCY_TOKEN != 0 }} | |
env: | |
PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} | |
PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} |