Nightly Frontend Test Main #321
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
# Copyright (c) HashiCorp, Inc. | |
# SPDX-License-Identifier: MPL-2.0 | |
name: Nightly Frontend Test Main | |
on: | |
schedule: | |
- cron: '0 4 * * *' | |
workflow_dispatch: {} | |
env: | |
EMBER_PARTITION_TOTAL: 4 # Has to be changed in tandem with the matrix.partition | |
BRANCH: "main" | |
BRANCH_NAME: "main" # Used for naming artifacts | |
GOPRIVATE: github.com/hashicorp # Required for enterprise deps | |
jobs: | |
frontend-test-workspace-node: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Workspace Tests | |
id: workspace-test | |
working-directory: ./ui | |
run: make test-workspace | |
- name: Node Tests | |
id: node-test | |
working-directory: ./ui/packages/consul-ui | |
run: make test-node | |
frontend-build-ce: | |
runs-on: ubuntu-latest | |
env: | |
JOBS: 2 | |
CONSUL_NSPACES_ENABLED: 0 | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Ember Build CE | |
id: build-ce | |
working-directory: ./ui/packages/consul-ui | |
run: make build-ci | |
- name: Upload CE Frontend | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: frontend-ce-${{ env.BRANCH_NAME }} | |
path: ./ui/packages/consul-ui/dist | |
if-no-files-found: error | |
frontend-test-ce: | |
runs-on: ubuntu-latest | |
needs: [frontend-build-ce] | |
strategy: | |
matrix: | |
partition: [ 1, 2, 3, 4 ] | |
env: | |
CONSUL_NSPACES_ENABLED: 0 | |
EMBER_TEST_REPORT: test-results/report-ce.xml #outputs test report for CI test summary | |
EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Download CE Frontend | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: frontend-ce-${{ env.BRANCH_NAME }} | |
path: ./ui/packages/consul-ui/dist | |
- name: Ember Test CE | |
id: cache | |
working-directory: ./ui/packages/consul-ui | |
run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit | |
frontend-build-ent: | |
runs-on: ubuntu-latest | |
env: | |
JOBS: 2 | |
CONSUL_NSPACES_ENABLED: 1 | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Ember Build ENT | |
id: build-ce | |
working-directory: ./ui/packages/consul-ui | |
run: make build-ci | |
- name: Upload ENT Frontend | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: frontend-ent-${{ env.BRANCH_NAME }} | |
path: ./ui/packages/consul-ui/dist | |
if-no-files-found: error | |
frontend-test-ent: | |
runs-on: ubuntu-latest | |
needs: [frontend-build-ent] | |
strategy: | |
matrix: | |
partition: [ 1, 2, 3, 4 ] | |
env: | |
CONSUL_NSPACES_ENABLED: 1 | |
EMBER_TEST_REPORT: test-results/report-ce.xml #outputs test report for CI test summary | |
EMBER_TEST_PARALLEL: true #enables test parallelization with ember-exam | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Download ENT Frontend | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: frontend-ent-${{ env.BRANCH_NAME }} | |
path: ./ui/packages/consul-ui/dist | |
- name: Ember Test ENT | |
id: cache | |
working-directory: ./ui/packages/consul-ui | |
run: node_modules/.bin/ember exam --split=$EMBER_PARTITION_TOTAL --partition=${{ matrix.partition }} --path dist --silent -r xunit | |
frontend-test-coverage-ent: | |
runs-on: ubuntu-latest | |
needs: [frontend-build-ent] | |
steps: | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
with: | |
ref: ${{ env.BRANCH }} | |
# Not necessary to use yarn, but enables caching | |
- uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: ./ui/yarn.lock | |
- name: Install | |
id: install | |
working-directory: ./ui | |
run: make deps | |
- name: Download ENT Frontend | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: frontend-ent-${{ env.BRANCH_NAME }} | |
path: ./ui/packages/consul-ui/dist | |
- name: Run ENT Code Coverage | |
working-directory: ./ui/packages/consul-ui | |
run: make test-coverage-ci | |
slack-failure-notification: | |
runs-on: ubuntu-latest | |
needs: [frontend-test-ce, frontend-test-ent] | |
if: ${{ failure() }} | |
steps: | |
- name: Slack Notification | |
id: slack | |
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 | |
with: | |
payload: | | |
{ | |
"message": "One or more nightly UI tests have failed on branch ${{ env.BRANCH }} for Consul. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }} |