@financial-times/n-gage
Version:
Make it so next
166 lines (142 loc) • 4.14 kB
YAML
# generator: n-circle2-cli
# template: component
references:
container_config_node8:
working_directory: ~/project/build
docker:
- image: circleci/node:8-browsers
container_config_lambda_node8:
working_directory: ~/project/build
docker:
- image: lambci/lambda:build-nodejs8.10
workspace_root:
~/project
attach_workspace:
attach_workspace:
at:
npm_cache_keys:
keys:
- v1-dependency-npm-{{ checksum "package.json" }}-
- v1-dependency-npm-{{ checksum "package.json" }}
- v1-dependency-npm-
cache_npm_cache:
save_cache:
key: v1-dependency-npm-{{ checksum "package.json" }}-{{ epoch }}
paths:
- ./node_modules/
restore_npm_cache:
restore_cache:
<<:
filters_only_master:
branches:
only: master
filters_ignore_master:
branches:
ignore: master
filters_ignore_tags:
tags:
ignore: /.*/
filters_version_tag:
tags:
only:
- /^v?\d+\.\d+\.\d+(?:-beta\.\d+)?$/
branches:
ignore: /.*/
version: 2
jobs:
build:
<<:
steps:
- checkout
- run:
name: Checkout next-ci-shared-helpers
command: git clone --depth 1 git@github.com:Financial-Times/next-ci-shared-helpers.git .circleci/shared-helpers
-
- run:
name: Install project dependencies
command: make install
- run:
name: shared-helper / npm-install-peer-deps
command: .circleci/shared-helpers/helper-npm-install-peer-deps
- run:
name: shared-helper / npm-update
command: .circleci/shared-helpers/helper-npm-update
- run:
name: shared-helper / generate-build-state-artifacts
command: .circleci/shared-helpers/helper-generate-build-state-artifacts
when: always
-
- store_artifacts:
path: build-state
destination: build-state
- persist_to_workspace:
root:
paths:
- build
test:
<<:
steps:
-
- run:
name: Run tests
command: make test
environment:
JEST_JUNIT_OUTPUT: test-results/jest/results.xml
MOCHA_FILE: test-results/mocha/results.xml
- store_test_results:
path: test-results
- store_artifacts:
path: test-results
destination: test-results
publish:
<<:
steps:
-
- run:
name: shared-helper / npm-store-auth-token
command: .circleci/shared-helpers/helper-npm-store-auth-token
- run: npx snyk monitor --org=customer-products --project-name=Financial-Times/n-gage
- run:
name: shared-helper / npm-version-and-publish-public
command: .circleci/shared-helpers/helper-npm-version-and-publish-public
workflows:
version: 2
build-test:
jobs:
- build:
filters:
<<:
- test:
requires:
- build
build-test-publish:
jobs:
- build:
filters:
<<:
- test:
filters:
<<:
requires:
- build
- publish:
filters:
<<:
requires:
- test
nightly:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
<<:
jobs:
- build:
context: next-nightly-build
- test:
requires:
- build
context: next-nightly-build
notify:
webhooks:
- url: https://ft-next-webhooks.herokuapp.com/circleci2-workflow