1
0
mirror of https://github.com/nostalgic-css/NES.css.git synced 2025-09-01 18:13:32 +02:00

build(circleci): add node build matrix

This commit is contained in:
Pete Colapietro
2020-06-02 10:23:02 -04:00
parent cefe57ba6f
commit f623f8d5bc

View File

@@ -1,20 +1,23 @@
orbs:
node: circleci/node@2.1.0
version: 2.1 version: 2.1
defaults: &defaults defaults: &defaults
docker:
- image: circleci/node
working_directory: ~/app working_directory: ~/app
supported-node-versions: &supported-node-versions
node-version: ["10.20.1", "12.16.3", "13.14.0", "14.2.0"]
jobs: jobs:
commitlint: commitlint:
docker: docker:
- image: williamlauze/circleci-commitlint:latest - image: secretbase/circleci-commitlint:1.0.2
working_directory: ~/app working_directory: ~/app
environment:
CIRCLE_COMPARE_URL: << pipeline.project.git_url >>/compare/<< pipeline.git.base_revision >>..<<pipeline.git.revision>>
steps: steps:
- checkout - checkout
@@ -25,6 +28,9 @@ jobs:
checkout: checkout:
<<: *defaults <<: *defaults
docker:
- image: circleci/node:lts
steps: steps:
- restore_cache: - restore_cache:
name: Restore Repository Cache name: Restore Repository Cache
@@ -50,38 +56,73 @@ jobs:
install-dependencies: install-dependencies:
<<: *defaults <<: *defaults
parameters:
node-version:
type: string
docker:
- image: "circleci/node:<< parameters.node-version >>"
steps: steps:
- attach_workspace: - attach_workspace:
at: . at: .
- restore_cache: - restore_cache:
name: Restore npm Package Cache name: Restore npm Package Cache
keys: keys:
- npm-{{ checksum "package-lock.json" }} - "npm-<< parameters.node-version >>-{{ checksum \"package-lock.json\" }}"
- npm-
- run:
name: Move node_modules to correct location for install
command: "[ ! -d \"node_modules_<< parameters.node-version >>\" ] || mv \"node_modules_<< parameters.node-version >>\" node_modules"
- run: - run:
name: Install Dependencies name: Install Dependencies
command: npm install command: npm install
- run:
name: Move node_modules to correct location for cache
command: mv node_modules "node_modules_<< parameters.node-version >>"
- save_cache: - save_cache:
name: Save npm Package Cache name: Save npm Package Cache
key: npm-{{ checksum "package-lock.json" }} key: "npm-<< parameters.node-version >>-{{ checksum \"package-lock.json\" }}"
paths: paths:
- node_modules - "node_modules_<< parameters.node-version >>"
- persist_to_workspace: - persist_to_workspace:
root: . root: .
paths: paths:
- node_modules - "node_modules_<< parameters.node-version >>"
build: build:
<<: *defaults <<: *defaults
docker:
- image: "circleci/node:lts"
steps:
- checkout
build-in-all-supported-versions-of-node:
<<: *defaults
parameters:
node-version:
type: string
docker:
- image: "circleci/node:<< parameters.node-version >>"
steps: steps:
- attach_workspace: - attach_workspace:
at: . at: .
- run:
name: Move node_modules to correct location for build
command: "[ ! -d \"node_modules_<< parameters.node-version >>\" ] || mv \"node_modules_<< parameters.node-version >>\" node_modules"
- restore_cache: - restore_cache:
name: Restore Build Cache name: Restore Build Cache
keys: keys:
@@ -108,13 +149,18 @@ jobs:
lint: lint:
<<: *defaults <<: *defaults
docker:
- image: "circleci/node:lts"
steps: steps:
- attach_workspace: - attach_workspace:
at: . at: .
- run:
command: npm i -D stylelint-config-prettier stylelint-config-recess-order stylelint-config-standard stylelint-prettier stylelint-scss
- run: - run:
name: Lint styles name: Lint styles
command: npx stylelint -- --fix command: npx stylelint scss/**/*.scss "--fix"
# test: # test:
# <<: *defaults # <<: *defaults
@@ -149,6 +195,9 @@ jobs:
release: release:
<<: *defaults <<: *defaults
docker:
- image: circleci/node:lts
steps: steps:
- attach_workspace: - attach_workspace:
at: . at: .
@@ -160,10 +209,6 @@ jobs:
name: Release name: Release
command: npx semantic-release command: npx semantic-release
workflows: workflows:
version: 2 version: 2
@@ -177,6 +222,9 @@ workflows:
- install-dependencies: - install-dependencies:
requires: requires:
- checkout - checkout
matrix:
parameters:
<<: *supported-node-versions
# - test: # - test:
# requires: # requires:
# - install-dependencies # - install-dependencies
@@ -185,14 +233,19 @@ workflows:
# - install-dependencies # - install-dependencies
- lint: - lint:
requires: requires:
- install-dependencies - checkout
- build: - build
- build-in-all-supported-versions-of-node:
requires: requires:
- install-dependencies - install-dependencies
matrix:
parameters:
<<: *supported-node-versions
- release: - release:
requires: requires:
- commitlint - commitlint
- build - build-in-all-supported-versions-of-node
- lint - lint
# - test # - test
filters: filters: