2023-03-22 13:17:19 +00:00
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
2022-07-27 20:59:00 +00:00
name : Nightly Test 1.13.x
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
2022-07-27 20:59:00 +00:00
BRANCH : "release/1.13.x"
2022-07-28 16:49:15 +00:00
BRANCH_NAME : "release-1.13.x" # 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
2022-07-27 20:59:00 +00:00
run : make deps
2022-04-27 19:51:51 +00:00
- 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-oss :
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
2022-07-27 20:59:00 +00:00
run : make deps
2022-04-27 19:51:51 +00:00
- name : Ember Build OSS
id : build-oss
working-directory : ./ui/packages/consul-ui
run : make build-ci
- name : Upload OSS Frontend
uses : actions/upload-artifact@v3
with :
2022-05-09 18:57:54 +00:00
name : frontend-oss-${{ env.BRANCH_NAME }}
path : ./ui/packages/consul-ui/dist
if-no-files-found : error
2022-04-27 19:51:51 +00:00
frontend-test-oss :
runs-on : ubuntu-latest
needs : [ frontend-build-oss]
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
EMBER_TEST_REPORT : test-results/report-oss.xml #outputs test report for CircleCI test summary
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
2022-07-27 20:59:00 +00:00
run : make deps
2022-04-27 19:51:51 +00:00
- name : Download OSS 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-oss-${{ env.BRANCH_NAME }}
path : ./ui/packages/consul-ui/dist
2022-04-27 19:51:51 +00:00
- name : Ember Test OSS
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
2022-07-27 20:59:00 +00:00
run : make deps
2022-04-27 19:51:51 +00:00
- name : Ember Build ENT
id : build-oss
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
EMBER_TEST_REPORT : test-results/report-oss.xml #outputs test report for CircleCI test summary
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
2022-07-27 20:59:00 +00:00
run : make deps
2022-04-27 19:51:51 +00:00
- 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
2022-07-27 20:59:00 +00:00
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
needs : [ frontend-test-oss, frontend-test-ent]
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 }}