mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
179 lines
4.4 KiB
YAML
179 lines
4.4 KiB
YAML
version: 2.1
|
|
|
|
parameters:
|
|
maintenance-node-version:
|
|
type: string
|
|
default: '20.18'
|
|
active-node-version:
|
|
type: string
|
|
default: '22.11'
|
|
current-node-version:
|
|
type: string
|
|
default: '24.1'
|
|
|
|
aliases:
|
|
- &restore-cache
|
|
restore_cache:
|
|
key: dependency-cache-{{ checksum "package.json" }}
|
|
- &save-cache
|
|
save_cache:
|
|
key: dependency-cache-{{ checksum "package.json" }}
|
|
paths:
|
|
- ./node_modules
|
|
- &install-deps
|
|
run:
|
|
name: Install dependencies
|
|
command: npm install --legacy-peer-deps
|
|
- &build-packages
|
|
run:
|
|
name: Build
|
|
command: npm run build
|
|
- &run-unit-tests
|
|
run:
|
|
name: Test
|
|
command: npm run test
|
|
|
|
jobs:
|
|
build:
|
|
working_directory: ~/nest
|
|
docker:
|
|
- image: cimg/node:<< pipeline.parameters.maintenance-node-version >>
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Update NPM version
|
|
command: 'sudo npm install -g npm@^9'
|
|
- *restore-cache
|
|
- *install-deps
|
|
- *save-cache
|
|
- *build-packages
|
|
|
|
test:
|
|
parameters:
|
|
node-version:
|
|
type: string
|
|
working_directory: ~/nest
|
|
docker:
|
|
- image: cimg/node:<< parameters.node-version >>
|
|
steps:
|
|
- checkout
|
|
- *restore-cache
|
|
- *install-deps
|
|
- *build-packages
|
|
- when:
|
|
condition:
|
|
equal:
|
|
[
|
|
'<< parameters.node-version >>',
|
|
'<< pipeline.parameters.maintenance-node-version >>',
|
|
]
|
|
steps:
|
|
- run:
|
|
name: Test (coverage)
|
|
command: npm run test:cov
|
|
- run:
|
|
name: Collect coverage
|
|
command: npm run coverage
|
|
- store_artifacts:
|
|
path: coverage
|
|
- when:
|
|
condition:
|
|
not:
|
|
equal:
|
|
[
|
|
'<< parameters.node-version >>',
|
|
'<< pipeline.parameters.maintenance-node-version >>',
|
|
]
|
|
steps:
|
|
- *run-unit-tests
|
|
|
|
lint:
|
|
working_directory: ~/nest
|
|
docker:
|
|
- image: cimg/node:<< pipeline.parameters.active-node-version >>
|
|
steps:
|
|
- checkout
|
|
- *restore-cache
|
|
- *install-deps
|
|
- run:
|
|
name: Lint
|
|
command: npm run lint:ci
|
|
|
|
integration_tests:
|
|
working_directory: ~/nest
|
|
machine: true
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Prepare nvm
|
|
command: |
|
|
echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
|
|
echo ' [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV
|
|
- run:
|
|
name: Upgrade Node.js
|
|
command: |
|
|
nvm install << pipeline.parameters.maintenance-node-version >>
|
|
node -v
|
|
nvm alias default << pipeline.parameters.maintenance-node-version >>
|
|
- run:
|
|
name: Install Docker Compose
|
|
command: |
|
|
curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
|
|
chmod +x ~/docker-compose
|
|
sudo mv ~/docker-compose /usr/local/bin/docker-compose
|
|
- *install-deps
|
|
- run:
|
|
name: Prepare tests
|
|
command: |
|
|
bash ./scripts/prepare.sh
|
|
sleep 10
|
|
- run:
|
|
name: List containers
|
|
command: docker ps
|
|
- run:
|
|
name: Integration tests
|
|
command: npm run test:integration
|
|
|
|
samples:
|
|
working_directory: ~/nest
|
|
docker:
|
|
- image: cimg/node:<< pipeline.parameters.maintenance-node-version >>
|
|
- image: redis:8-alpine
|
|
name: redis
|
|
environment:
|
|
DISABLE_OPENCOLLECTIVE: 'true'
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
steps:
|
|
- checkout
|
|
- *restore-cache
|
|
- *install-deps
|
|
- run:
|
|
name: Build all samples
|
|
command: npm run build:samples
|
|
|
|
workflows:
|
|
build-and-test:
|
|
jobs:
|
|
- build
|
|
- test:
|
|
requires:
|
|
- build
|
|
matrix:
|
|
parameters:
|
|
node-version:
|
|
[
|
|
'<< pipeline.parameters.maintenance-node-version >>',
|
|
'<< pipeline.parameters.active-node-version >>',
|
|
'<< pipeline.parameters.current-node-version >>',
|
|
]
|
|
- lint:
|
|
requires:
|
|
- build
|
|
- integration_tests:
|
|
requires:
|
|
- build
|
|
- samples:
|
|
requires:
|
|
- build
|