Nightly Frontend Test Main #1373
This file contains hidden or 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - 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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
| 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - name: Install | |
| id: install | |
| working-directory: ./ui | |
| run: make deps | |
| - name: Download CE Frontend | |
| uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 | |
| 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - 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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
| 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - name: Install | |
| id: install | |
| working-directory: ./ui | |
| run: make deps | |
| - name: Download ENT Frontend | |
| uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 | |
| 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
| with: | |
| ref: ${{ env.BRANCH }} | |
| - name: Install PNPM | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0 | |
| with: | |
| run_install: false | |
| package_json_file: ui/package.json | |
| - name: Setup node and pnpm cache | |
| uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 | |
| with: | |
| node-version-file: "./ui/package.json" | |
| cache: "pnpm" | |
| cache-dependency-path: "ui/pnpm-lock.yaml" | |
| - name: Install | |
| id: install | |
| working-directory: ./ui | |
| run: make deps | |
| - name: Download ENT Frontend | |
| uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 | |
| 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@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.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 }} |