Skip to content

Updated note on current status #272

Updated note on current status

Updated note on current status #272

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'