2023-03-22 13:17:19 +00:00
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
2022-05-09 18:57:54 +00:00
name : Nightly Test Main
2022-04-27 19:51:51 +00:00
on :
schedule :
- cron : '0 4 * * *'
workflow_dispatch : {}
env :
2022-05-09 18:57:54 +00:00
EMBER_PARTITION_TOTAL : 4 # Has to be changed in tandem with the matrix.partition
BRANCH : "main"
BRANCH_NAME : "main" # Used for naming artifacts
2022-04-27 19:51:51 +00:00
jobs :
frontend-test-workspace-node :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
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
2023-08-23 16:53:44 +00:00
frontend-build-ce :
2022-04-27 19:51:51 +00:00
runs-on : ubuntu-latest
env :
JOBS : 2
CONSUL_NSPACES_ENABLED : 0
steps :
- uses : actions/checkout@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
cache : 'yarn'
cache-dependency-path : ./ui/yarn.lock
- name : Install
id : install
working-directory : ./ui
run : make deps
2023-08-23 16:53:44 +00:00
- name : Ember Build CE
id : build-ce
2022-04-27 19:51:51 +00:00
working-directory : ./ui/packages/consul-ui
run : make build-ci
2023-08-23 16:53:44 +00:00
- name : Upload CE Frontend
2022-04-27 19:51:51 +00:00
uses : actions/upload-artifact@v3
with :
2023-08-23 16:53:44 +00:00
name : frontend-ce-${{ env.BRANCH_NAME }}
2022-05-09 18:57:54 +00:00
path : ./ui/packages/consul-ui/dist
if-no-files-found : error
2022-04-27 19:51:51 +00:00
2023-08-23 16:53:44 +00:00
frontend-test-ce :
2022-04-27 19:51:51 +00:00
runs-on : ubuntu-latest
2023-08-23 16:53:44 +00:00
needs : [ frontend-build-ce]
2022-04-27 19:51:51 +00:00
strategy :
matrix :
2022-05-09 18:57:54 +00:00
partition : [ 1 , 2 , 3 , 4 ]
2022-04-27 19:51:51 +00:00
env :
CONSUL_NSPACES_ENABLED : 0
2023-08-23 16:53:44 +00:00
EMBER_TEST_REPORT : test-results/report-ce.xml #outputs test report for CI test summary
2022-04-27 19:51:51 +00:00
EMBER_TEST_PARALLEL : true #enables test parallelization with ember-exam
steps :
- uses : actions/checkout@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
cache : 'yarn'
cache-dependency-path : ./ui/yarn.lock
- name : Install
id : install
working-directory : ./ui
run : make deps
2023-08-23 16:53:44 +00:00
- name : Download CE Frontend
2022-05-09 18:57:54 +00:00
uses : actions/download-artifact@v3
2022-04-27 19:51:51 +00:00
with :
2023-08-23 16:53:44 +00:00
name : frontend-ce-${{ env.BRANCH_NAME }}
2022-05-09 18:57:54 +00:00
path : ./ui/packages/consul-ui/dist
2022-04-27 19:51:51 +00:00
2023-08-23 16:53:44 +00:00
- name : Ember Test CE
2022-04-27 19:51:51 +00:00
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@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
cache : 'yarn'
cache-dependency-path : ./ui/yarn.lock
- name : Install
id : install
working-directory : ./ui
run : make deps
- name : Ember Build ENT
2023-08-23 16:53:44 +00:00
id : build-ce
2022-04-27 19:51:51 +00:00
working-directory : ./ui/packages/consul-ui
run : make build-ci
- name : Upload ENT Frontend
uses : actions/upload-artifact@v3
with :
2022-05-09 18:57:54 +00:00
name : frontend-ent-${{ env.BRANCH_NAME }}
path : ./ui/packages/consul-ui/dist
if-no-files-found : error
2022-04-27 19:51:51 +00:00
frontend-test-ent :
runs-on : ubuntu-latest
needs : [ frontend-build-ent]
strategy :
matrix :
2022-05-09 18:57:54 +00:00
partition : [ 1 , 2 , 3 , 4 ]
2022-04-27 19:51:51 +00:00
env :
CONSUL_NSPACES_ENABLED : 1
2023-08-23 16:53:44 +00:00
EMBER_TEST_REPORT : test-results/report-ce.xml #outputs test report for CI test summary
2022-04-27 19:51:51 +00:00
EMBER_TEST_PARALLEL : true #enables test parallelization with ember-exam
steps :
- uses : actions/checkout@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
cache : 'yarn'
cache-dependency-path : ./ui/yarn.lock
- name : Install
id : install
working-directory : ./ui
run : make deps
- name : Download ENT Frontend
2022-05-09 18:57:54 +00:00
uses : actions/download-artifact@v3
2022-04-27 19:51:51 +00:00
with :
2022-05-09 18:57:54 +00:00
name : frontend-ent-${{ env.BRANCH_NAME }}
path : ./ui/packages/consul-ui/dist
2022-04-27 19:51:51 +00:00
- 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@v2
with :
2022-05-09 18:57:54 +00:00
ref : ${{ env.BRANCH }}
2022-04-27 19:51:51 +00:00
# Not necessary to use yarn, but enables caching
- uses : actions/setup-node@v3
with :
node-version : 14
cache : 'yarn'
cache-dependency-path : ./ui/yarn.lock
- name : Install
id : install
working-directory : ./ui
run : make deps
2022-05-09 18:57:54 +00:00
- name : Download ENT Frontend
uses : actions/download-artifact@v3
with :
name : frontend-ent-${{ env.BRANCH_NAME }}
path : ./ui/packages/consul-ui/dist
2022-04-27 19:51:51 +00:00
- name : Run ENT Code Coverage
working-directory : ./ui/packages/consul-ui
run : make test-coverage-ci
slack-failure-notification :
runs-on : ubuntu-latest
2023-08-23 16:53:44 +00:00
needs : [ frontend-test-ce, frontend-test-ent]
2022-04-27 19:51:51 +00:00
if : ${{ failure() }}
steps :
- name : Slack Notification
id : slack
2022-05-09 18:57:54 +00:00
uses : slackapi/slack-github-action@v1.19
2022-04-27 19:51:51 +00:00
with :
2022-05-09 18:57:54 +00:00
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 }}"
}
2022-04-27 19:51:51 +00:00
env :
2022-05-09 18:57:54 +00:00
SLACK_WEBHOOK_URL : ${{ secrets.CONSUL_UI_SLACK_WEBHOOK }}