9796 publish shell workflow #107
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: Tests | |
on: | |
push: | |
branches: | |
- master | |
- 'release-*' | |
pull_request: | |
branches: | |
- master | |
- 'release-*' | |
workflow_dispatch: | |
environment: | |
description: 'Environment to run tests against' | |
type: environment | |
required: true | |
env: | |
TEST_USERNAME: admin | |
TEST_PASSWORD: password | |
CATTLE_BOOTSTRAP_PASSWORD: password | |
TEST_BASE_URL: https://127.0.0.1:8005 | |
API: https://127.0.0.1 | |
TEST_PROJECT_ID: rancher-dashboard | |
CYPRESS_API_URL: http://139.59.134.103:1234/ | |
TEST_RUN_ID: ${{github.run_number}}-${{github.run_attempt}}-${{github.event.pull_request.title || github.event.head_commit.message}} | |
CYPRESS_coverage: true | |
# Build the dashboard to use in tests. When set to false it will grab `latest` from CDN (useful for running e2e tests quickly) | |
BUILD_DASHBOARD: true | |
jobs: | |
e2e-test: | |
if: "!contains( github.event.pull_request.labels.*.name, 'ci/skip-e2e')" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: Install Chrome 116 | |
run: | | |
sudo apt-get install -y wget | |
cd /tmp | |
wget -q http://mirror.cs.uchicago.edu/google-chrome/pool/main/g/google-chrome-stable/google-chrome-stable_116.0.5845.187-1_amd64.deb | |
sudo apt-get install -y --allow-downgrades ./google-chrome-stable_116.0.5845.187-1_amd64.deb | |
google-chrome --version | |
- name: Install packages | |
run: yarn install:ci | |
- name: Prepare build | |
run: yarn e2e:pre-prod | |
- name: Run admin user tests | |
run: | | |
yarn e2e:prod | |
[ "$BUILD_DASHBOARD" != "false" ] || exit 0 | |
mkdir -p coverage-artifacts/coverage | |
cp coverage/e2e/coverage-final.json coverage-artifacts/coverage/coverage-e2e-admin.json | |
cp -r coverage/e2e/ coverage-artifacts/coverage/e2e-admin/ | |
env: | |
GREP_TAGS: '@adminUser' | |
TEST_USERNAME: admin | |
- name: Run standard user tests | |
if: ${{ success() || failure() }} | |
run: | | |
yarn e2e:prod | |
yarn docker:local:stop | |
[ "$BUILD_DASHBOARD" != "false" ] || exit 0 | |
mkdir -p coverage-artifacts/coverage | |
cp coverage/e2e/coverage-final.json coverage-artifacts/coverage/coverage-e2e-user.json | |
cp -r coverage/e2e/ coverage-artifacts/coverage/e2e-user/ | |
env: | |
GREP_TAGS: '@standardUser' | |
TEST_USERNAME: standard_user | |
- name: Upload coverage | |
uses: actions/upload-artifact@v3 | |
if: env.BUILD_DASHBOARD != 'false' | |
with: | |
name: ${{github.run_number}}-${{github.run_attempt}}-coverage | |
path: coverage-artifacts/**/* | |
- name: Upload screenshots | |
uses: actions/upload-artifact@v3 | |
if: ${{ failure() }} | |
with: | |
name: ${{github.run_number}}-${{github.run_attempt}}-screenshots | |
path: cypress/screenshots | |
unit-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: Install packages | |
run: yarn install:ci | |
- name: Run tests | |
run: | | |
yarn test:ci | |
mkdir -p coverage-artifacts/coverage | |
cp coverage/unit/coverage-final.json coverage-artifacts/coverage/coverage-unit.json | |
cp -r coverage/unit/ coverage-artifacts/coverage/unit/ | |
- name: Upload coverage | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{github.run_number}}-${{github.run_attempt}}-coverage | |
path: coverage-artifacts/**/* | |
i18n: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: Install packages | |
run: yarn install:ci | |
- name: Run i18n linters | |
run: yarn lint-l10n | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: Install packages | |
run: yarn install:ci | |
- name: Run linters | |
run: yarn lint | |
coverage: | |
if: "!contains( github.event.pull_request.labels.*.name, 'ci/skip-e2e')" | |
runs-on: ubuntu-latest | |
needs: | |
- unit-test | |
- e2e-test | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: Download Coverage Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: ${{github.run_number}}-${{github.run_attempt}}-coverage | |
- name: Merge coverage files | |
run: | | |
ls | |
yarn coverage | |
ls coverage | |
- name: Upload merged coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: merged | |
files: ./coverage/coverage.json | |
fail_ci_if_error: false |