1 | version: 2.1
|
2 |
|
3 | orbs:
|
4 | node: circleci/node@4
|
5 | slack: circleci/slack@3
|
6 |
|
7 | jobs:
|
8 | lint:
|
9 | resource_class: small
|
10 | executor:
|
11 | name: node/default
|
12 | steps:
|
13 | - checkout
|
14 | - node/install-packages
|
15 | - run:
|
16 | name: Lint (Prettier)
|
17 | command: npm run lint:prettier
|
18 | - run:
|
19 | name: Lint (ESLint)
|
20 | command: npm run lint:eslint -- --format junit --output-file reports/eslint/results.xml
|
21 | - store_test_results:
|
22 | path: reports
|
23 | test:
|
24 | resource_class: small
|
25 | parameters:
|
26 | node-version:
|
27 | type: string
|
28 | docker:
|
29 | - image: cimg/node:<< parameters.node-version >>
|
30 | - image: circleci/postgres:alpine-ram
|
31 | environment:
|
32 | POSTGRES_DB: objection-authorize
|
33 | POSTGRES_USER: knex
|
34 | POSTGRES_HOST_AUTH_METHOD: trust
|
35 | steps:
|
36 | - checkout
|
37 | - node/install-packages
|
38 | - run:
|
39 | name: Test with node.js-<< parameters.node-version >>
|
40 | command: npm test -- --ci --runInBand --reporters=default --reporters=jest-junit
|
41 | environment:
|
42 | JEST_JUNIT_OUTPUT_NAME: results.xml
|
43 | JEST_JUNIT_OUTPUT_DIR: reports/jest-node<< parameters.node-version >>
|
44 | - store_test_results:
|
45 | path: reports
|
46 | - slack/notify-on-failure
|
47 |
|
48 | workflows:
|
49 | build-and-test:
|
50 | jobs:
|
51 | - lint
|
52 | - test:
|
53 | context: shared-vars
|
54 | requires:
|
55 | - lint
|
56 | matrix:
|
57 | parameters:
|
58 | node-version:
|
59 | - lts
|
60 | - current
|