Updated note on current status #272
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: Test and deploy | |
on: [ push, pull_request ] | |
env: | |
# Version required to run itwêwina: | |
ACTIONS_PYTHON_VERSION: 3.9 | |
# Version required to run npm build: | |
ACTIONS_NODE_VERSION: 14 | |
jobs: | |
# Skips deploy if [skip deploy] is present in the commit message | |
should-deploy: | |
runs-on: ubuntu-latest | |
outputs: | |
should-run: ${{ steps.ci-skip.outputs.ci-skip-not }} | |
if: github.repository_owner == 'UAlbertaALTLab' && github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# ci-skip needs to do a partial checkout | |
fetch-depth: '0' | |
- id: ci-skip | |
uses: mstachniuk/ci-skip@v1 | |
with: | |
commit-filter: '[skip deploy]' | |
# Runs Cypress acceptance tests | |
integration-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: 🐍 Set up Python ${{ env.ACTIONS_PYTHON_VERSION }} | |
uses: actions/setup-python@v2 | |
id: setup-python | |
with: | |
python-version: ${{ env.ACTIONS_PYTHON_VERSION }} | |
- name: Setup Node ${{ env.ACTIONS_NODE_VERSION }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ env.ACTIONS_NODE_VERSION }} | |
cache: npm | |
- name: 🖥 Install system dependencies | |
run: sudo apt-get install -y libfoma0 libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb | |
- name: ☤ Install pipenv | |
run: python3 -m pip install pipenv==2021.11.9 | |
# This started out life as a copy-paste from | |
# https://github.com/actions/cache/blob/main/examples.md#python---pipenv | |
- uses: actions/cache@v2 | |
with: | |
path: ~/.local/share/virtualenvs | |
key: ${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-pipenv-${{ hashFiles('Pipfile.lock') }} | |
- name: 📥 Install Python dependencies | |
run: | | |
pipenv install --dev | |
- name: Do LFS checkout | |
# actions/checkout@v2 has a `with: lfs: true` option, but it only | |
# knows how to talk to GitHub’s LFS server. | |
# | |
# These actions are automatic if you have run `git lfs install` | |
# even once on your dev machine. | |
run: git lfs install --local && git lfs fetch && git lfs checkout | |
- name: 📥 Install Node dependencies | |
run: npm ci | |
- name: 🛑 Halt tests if Cypress tests are marked as '.only' | |
run: npm run stop-only | |
- name: 🏗 Build frontend | |
run: npm run build | |
- name: 🌲 Run Cypress tests | |
env: | |
DEBUG: "True" | |
# NOTE: only set on the upstream repo, i.e., UAlbertaALTLab/morphodict | |
CYPRESS_RECORD_KEY: "${{ secrets.CYPRESS_RECORD_KEY }}" | |
run: | | |
# Enables uploading test runs to Cypress Dashboard: | |
if [ -n "$CYPRESS_RECORD_KEY" ] ; then export CYPRESS_OPTS="--key $CYPRESS_RECORD_KEY" ; fi | |
pipenv run ./scripts/run-cypress --no-interactive | |
- name: Archive cypress videos | |
uses: actions/upload-artifact@v2 | |
with: | |
name: cypress-videos | |
path: | | |
cypress/videos | |
trigger-deployment: | |
runs-on: ubuntu-latest | |
needs: | |
- should-deploy | |
# - integration-test | |
if: needs.should-deploy.outputs.should-run == 'true' | |
steps: | |
- name: 🐍 Set up Python ${{ env.ACTIONS_PYTHON_VERSION }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ env.ACTIONS_PYTHON_VERSION }} | |
- name: Install requests | |
run: pip install requests | |
- name: send HTTP request to deploy.altlab.dev webhook for crkeng | |
# Be careful with spacing here. | |
# | |
# What https://yaml-multiline.info *doesn’t* warn you about: although | |
# `>-` means “replace newlines with spaces,” if you have an extra | |
# space on the next line, the newline gets preserved! | |
# | |
# So although | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# means `{ "foo": "a a" }`, | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# turns into `{ "foo": "a\n a" }` ! | |
run: >- | |
curl -X POST https://deploy.altlab.dev/crkeng-frontend --fail | |
-d '{ "secret": "${{ secrets.DEPLOY_ALTLAB_DEV_CRKENG_FRONTEND_KEY }}" }' | |
-H 'Content-Type: application/json' | |
- name: send HTTP request to deploy.altlab.dev webhook for cwdeng | |
# Be careful with spacing here. | |
# | |
# What https://yaml-multiline.info *doesn’t* warn you about: although | |
# `>-` means “replace newlines with spaces,” if you have an extra | |
# space on the next line, the newline gets preserved! | |
# | |
# So although | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# means `{ "foo": "a a" }`, | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# turns into `{ "foo": "a\n a" }` ! | |
run: >- | |
curl -X POST https://deploy.altlab.dev/cwdeng-frontend --fail | |
-d '{ "secret": "${{ secrets.DEPLOY_ALTLAB_DEV_CWDENG_FRONTEND_KEY }}" }' | |
-H 'Content-Type: application/json' | |
- name: send HTTP request to deploy.altlab.dev webhook for srseng | |
# Be careful with spacing here. | |
# | |
# What https://yaml-multiline.info *doesn’t* warn you about: although | |
# `>-` means “replace newlines with spaces,” if you have an extra | |
# space on the next line, the newline gets preserved! | |
# | |
# So although | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# means `{ "foo": "a a" }`, | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# turns into `{ "foo": "a\n a" }` ! | |
run: >- | |
curl -X POST https://deploy.altlab.dev/srseng-frontend --fail | |
-d '{ "secret": "${{ secrets.DEPLOY_ALTLAB_DEV_SRSENG_FRONTEND_KEY }}" }' | |
-H 'Content-Type: application/json' | |
- name: send HTTP request to deploy.altlab.dev webhook for arpeng | |
# Be careful with spacing here. | |
# | |
# What https://yaml-multiline.info *doesn’t* warn you about: although | |
# `>-` means “replace newlines with spaces,” if you have an extra | |
# space on the next line, the newline gets preserved! | |
# | |
# So although | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# means `{ "foo": "a a" }`, | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# turns into `{ "foo": "a\n a" }` ! | |
run: >- | |
curl -X POST https://deploy.altlab.dev/arpeng-frontend --fail | |
-d '{ "secret": "${{ secrets.DEPLOY_ALTLAB_DEV_ARPENG_FRONTEND_KEY }}" }' | |
-H 'Content-Type: application/json' | |
- name: send HTTP request to deploy.altlab.dev webhook for hdneng | |
# Be careful with spacing here. | |
# | |
# What https://yaml-multiline.info *doesn’t* warn you about: although | |
# `>-` means “replace newlines with spaces,” if you have an extra | |
# space on the next line, the newline gets preserved! | |
# | |
# So although | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# means `{ "foo": "a a" }`, | |
# | |
# foo: >- | |
# a | |
# a | |
# | |
# turns into `{ "foo": "a\n a" }` ! | |
run: >- | |
curl -X POST https://deploy.altlab.dev/hdneng-frontend --fail | |
-d '{ "secret": "${{ secrets.DEPLOY_ALTLAB_DEV_HDNENG_FRONTEND_KEY }}" }' | |
-H 'Content-Type: application/json' |