Skip to content

[ENG-6744] FE: Contributors can "configure" others' addons #4582

[ENG-6744] FE: Contributors can "configure" others' addons

[ENG-6744] FE: Contributors can "configure" others' addons #4582

Workflow file for this run

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