2020-04-04 15:55:20 +02:00
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name : "Continuous Integration"
on :
- "pull_request"
- "push"
jobs :
continuous-integration-front :
name : "Continuous Integration Front"
runs-on : "ubuntu-latest"
steps :
- name : "Checkout"
uses : "actions/checkout@v2.0.0"
- name : "Setup NodeJS"
2020-04-04 15:58:59 +02:00
uses : actions/setup-node@v1
2020-04-04 15:55:20 +02:00
with :
node-version : '12.x'
- name : "Install dependencies"
run : yarn install
working-directory : "front"
- name : "Build"
run : yarn run build
2020-04-04 16:02:41 +02:00
env :
API_URL : "http://localhost:8080"
2020-04-04 15:55:20 +02:00
working-directory : "front"
2020-04-04 16:16:20 +02:00
- name : "Lint"
run : yarn run lint
working-directory : "front"
2020-04-04 15:55:20 +02:00
continuous-integration-back :
name : "Continuous Integration Back"
runs-on : "ubuntu-latest"
steps :
- name : "Checkout"
uses : "actions/checkout@v2.0.0"
- name : "Setup NodeJS"
2020-04-04 15:58:59 +02:00
uses : actions/setup-node@v1
2020-04-04 15:55:20 +02:00
with :
node-version : '12.x'
- name : "Install dependencies"
run : yarn install
working-directory : "back"
- name : "Build"
run : yarn run tsc
working-directory : "back"
- name : "Lint"
run : yarn run lint
working-directory : "back"
2020-04-06 15:48:19 +02:00
- name : "Jasmine"
2020-04-06 17:59:35 +02:00
run : yarn test
working-directory : "back"
2020-04-14 20:16:51 +02:00
e2e :
name : "End to end testing with cypress"
runs-on : "ubuntu-latest"
steps :
- name : "Checkout"
uses : "actions/checkout@v2.0.0"
- name : "Init .env"
run : "cp .env.template .env"
- name : "Init containers"
run : "docker-compose -f docker-compose.yaml -f docker-compose.ci.yml run --rm wait_app" #start the containers and then wait for the website to be online
- name : "Run cypress"
run : "docker-compose -f docker-compose.yaml -f docker-compose.ci.yml up --exit-code-from cypress cypress" # run cypress in docker-compose and get its exit code
2020-04-14 20:42:57 +02:00
- name : "Upload the screenshot on test failure"
uses : actions/upload-artifact@v1
if : failure()
with :
name : "screenshot"
path : "./e2e/cypress/screenshots/spec.js/WorkAdventureGame -- loads (failed).png"