mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-24 18:32:41 +00:00
102 lines
2.4 KiB
YAML
102 lines
2.4 KiB
YAML
# Javascript Node CircleCI 2.0 configuration file
|
|
#
|
|
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
|
|
#
|
|
version: 2.1
|
|
|
|
orbs:
|
|
node: circleci/node@5.1.0
|
|
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: cimg/node:20.17.0
|
|
- image: mongo:4.4
|
|
|
|
working_directory: ~/homebrewery
|
|
executor: node/default
|
|
|
|
steps:
|
|
- checkout:
|
|
path: ~/homebrewery
|
|
|
|
# Download and cache dependencies
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "package.json" }}
|
|
# fallback to using the latest cache if no exact match is found
|
|
- v1-dependencies-
|
|
|
|
- run: sudo npm install -g npm@10.8.2
|
|
- node/install-packages:
|
|
app-dir: ~/homebrewery
|
|
cache-path: node_modules
|
|
override-ci-command: npm i
|
|
|
|
- save_cache:
|
|
paths:
|
|
- node_modules
|
|
key: v1-dependencies-{{ checksum "package.json" }}
|
|
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- .
|
|
|
|
test:
|
|
docker:
|
|
- image: cimg/node:20.17.0
|
|
|
|
working_directory: ~/homebrewery
|
|
parallelism: 1
|
|
|
|
steps:
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
# run tests!
|
|
- run:
|
|
name: Test - API Unit Tests
|
|
command: npm run test:api-unit
|
|
- run:
|
|
name: Test - Basic
|
|
command: npm run test:basic
|
|
- run:
|
|
name: Test - Mustache Spans
|
|
command: npm run test:mustache-syntax
|
|
- run:
|
|
name: Test - Definition Lists
|
|
command: npm run test:definition-lists
|
|
- run:
|
|
name: Test - Hard Breaks
|
|
command: npm run test:hard-breaks
|
|
- run:
|
|
name: Test - Non-Breaking Spaces
|
|
command: npm run test:non-breaking-spaces
|
|
- run:
|
|
name: Test - Variables
|
|
command: npm run test:variables
|
|
- run:
|
|
name: Test - Emojis
|
|
command: npm run test:emojis
|
|
- run:
|
|
name: Test - Routes
|
|
command: npm run test:route
|
|
- run:
|
|
name: Test - HTML sanitization
|
|
command: npm run test:safehtml
|
|
- run:
|
|
name: Test - Coverage
|
|
command: npm run test:coverage
|
|
- run:
|
|
name: Test - Content Negotiation
|
|
command: npm run test:content-negotiation
|
|
|
|
workflows:
|
|
build_and_test:
|
|
jobs:
|
|
- build
|
|
- test:
|
|
requires:
|
|
- build
|