shades
Version:
Lens-like functionality with a lodash-style interface.
107 lines (101 loc) • 2.67 kB
YAML
version: 2.1
commands:
with_cache:
description: Run a set of steps with JS dependencies cached.
parameters:
steps:
type: steps
cache_key:
default: v1
description: >-
Add a custom suffix to your cache key in the event you need to work with
multiple caches.
type: string
steps:
- restore_cache:
key: >-
<< parameters.cache_key>>-deps-{{ checksum "package-lock.json" }}
- restore_cache:
key: >-
<< parameters.cache_key>>-deps-{{ checksum "lens-gen/bower.json" }}
- restore_cache:
key: >-
<< parameters.cache_key>>-deps-$CIRCLE_BUILD_NUMBER
- steps: << parameters.steps >>
- save_cache:
key: >-
<< parameters.cache_key>>-deps-{{ checksum "package-lock.json" }}
paths:
- node_modules
- save_cache:
key: >-
<< parameters.cache_key>>-deps-{{ checksum "lens-gen/bower.json" }}
paths:
- lens-gen/bower_components
- save_cache:
key: >-
<< parameters.cache_key>>-deps-$CIRCLE_BUILD_NUMBER
paths:
- types
- test
jobs:
build:
docker:
- image: cimg/node:18.7.0
steps:
- checkout
- with_cache:
steps:
- run:
name: 'Build JS resources'
command: 'npm ci'
- run:
name: 'Install bower components for purescript'
command: 'cd lens-gen; npx bower install'
- run:
name: 'Compile types'
command: 'npm run doc-dev'
unit_test:
docker:
- image: cimg/node:18.7.0
steps:
- checkout
- with_cache:
steps:
- run:
name: 'Run unit tests'
command: 'npm run test:mocha'
test_types:
docker:
- image: cimg/node:18.7.0
steps:
- checkout
- with_cache:
steps:
- run:
name: 'Run type tests'
command: 'npm run test:types'
test_lens_generator:
docker:
- image: cimg/node:18.7.0
steps:
- checkout
- with_cache:
steps:
- run:
name: 'Run lens generator'
command: 'npm run test:lens-generator'
# Orchestrate our job run sequence
workflows:
build_and_test:
jobs:
- build
- unit_test:
requires:
- build
- test_types:
requires:
- build
- test_lens_generator:
requires:
- build