@typed/fp
Version:
Data Structures and Resources for fp-ts
118 lines (104 loc) • 2.74 kB
YAML
version: 2.1
description: Provide common CircleCI patterns used within Seasoned node projects
orbs:
node:
orbs:
node: circleci/node@2.0.3
executors:
node:
parameters:
version:
type: string
default: lts
docker:
- image: circleci/node:<<parameters.version>>
commands:
build-workspace:
description: Run build steps and persist to workspace
steps:
- checkout
- node/install-packages:
with-cache: true
include-branch-in-cache-key: false
cache-version: v2
cache-key: package-lock.json
- run: npm run build
- persist_to_workspace:
root: ./
paths:
- ./*
with-workspace:
description: Run commands with workspace attached
parameters:
steps:
type: steps
steps:
- attach_workspace:
at: ./
- steps: << parameters.steps >>
audit:
steps:
- run: |
pwd
ls
npm version
for n in {1..5}; do
audit=`npm --color always audit -uction 2>&1`
echo "$audit"
if [[ "$audit" != *"ENOAUDIT"* ]]; then
break
fi
done
jobs:
build-workspace:
parameters:
executor:
type: string
default: node
executor: <<parameters.executor>>
steps:
- build-workspace
lint-workspace:
parameters:
executor:
type: string
default: node
executor: <<parameters.executor>>
steps:
- with-workspace:
steps:
- run: npm run lint
test-workspace:
parameters:
executor:
type: string
default: node
executor: <<parameters.executor>>
steps:
- with-workspace:
steps:
- run: npm run unit-test
audit-workspace:
parameters:
executor:
type: string
default: node
executor: <<parameters.executor>>
steps:
- with-workspace:
steps:
- audit
workflows:
version: 2.1
build-test-deploy:
jobs:
- node/build-workspace
- node/lint-workspace:
requires:
- node/build-workspace
- node/test-workspace:
requires:
- node/build-workspace
# - node/audit-workspace:
# requires:
# - node/build-workspace