send/circle.yml

141 lines
3.5 KiB
YAML
Raw Normal View History

2018-02-25 23:44:46 +00:00
version: 2.0
jobs:
build:
docker:
- image: circleci/node:8
steps:
- checkout
- restore_cache:
key: send-{{ checksum "package-lock.json" }}
- run: npm install
- save_cache:
key: send-{{ checksum "package-lock.json" }}
paths:
- node_modules
- run: npm run build
- persist_to_workspace:
root: .
paths:
- ./*
test:
docker:
- image: circleci/node:8-browsers
steps:
- checkout
- restore_cache:
key: send-{{ checksum "package-lock.json" }}
- run: npm install
- save_cache:
key: send-{{ checksum "package-lock.json" }}
paths:
- node_modules
- run: npm run check
- run: npm run lint
- run: npm run test
2018-02-26 18:09:28 +00:00
- store_artifacts:
path: coverage
integration_tests:
working_directory: ~/send
machine: true
steps:
- checkout
- restore_cache:
keys:
- uitest-cache-{{ checksum "test/integration/Pipfile" }}
- uitest-cache-{{ checksum "test/integration/pipenv.txt" }}
- run:
name: Install Docker Compose
command: |
set -x
pip install docker-compose>=1.18
docker-compose --version
- run:
name: Install Tox
command: |
set -x
pip install tox
- run:
name: Start docker container
command: docker-compose up -d
- run:
name: Run User Integration Tests
command: |
npm run start:integration-docker
npm run test-integration-docker
environment:
MOZ_HEADLESS: 1
- store_artifacts:
path: send-test.html
- save_cache:
key: uitest-cache-{{ checksum "test/integration/Pipfile" }}
paths:
- test/integration/.tox
- save_cache:
key: uitest-cache-{{ checksum "test/integration/pipenv.txt" }}
paths:
- test/integration/.tox
2018-02-25 23:44:46 +00:00
deploy_dev:
machine: true
steps:
- attach_workspace:
at: .
2018-02-26 01:06:28 +00:00
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
2018-02-25 23:44:46 +00:00
- run: docker build -t mozilla/send:latest .
- run: docker push mozilla/send:latest
deploy_stage:
machine: true
steps:
- attach_workspace:
at: .
2018-02-26 01:06:28 +00:00
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
2018-02-25 23:44:46 +00:00
- run: docker build -t mozilla/send:$CIRCLE_TAG .
- run: docker push mozilla/send:$CIRCLE_TAG
workflows:
version: 2
test_pr:
jobs:
- test:
filters:
branches:
ignore: master
- integration_tests
2018-02-25 23:44:46 +00:00
build_and_deploy_dev:
jobs:
- build:
filters:
branches:
only: master
tags:
ignore: /^v.*/
2018-02-26 01:06:28 +00:00
- deploy_dev:
2018-02-25 23:44:46 +00:00
requires:
- build
filters:
branches:
only: master
tags:
ignore: /^v.*/
build_and_deploy_stage:
jobs:
- build:
filters:
branches:
ignore: /.*/
2018-02-25 23:44:46 +00:00
tags:
only: /^v.*/
- test:
filters:
branches:
ignore: /.*/
2018-02-25 23:44:46 +00:00
tags:
only: /^v.*/
- deploy_stage:
requires:
- build
- test
filters:
branches:
ignore: /.*/
2018-02-25 23:44:46 +00:00
tags:
only: /^v.*/