ru
en
Непрерывная интеграция с Circle CI v2 на примерах code style check в Node.js и PHP
Вторая версия конфигурации для Circle CI перетерпела множество измененений.
В качестве pipe используются так называемые workflow.
Каждый workflow может включать в себя множество шагов (steps).
Пример запуска для Node.js:
.circleci/config.yml
version: 2
jobs:
build:
working_directory: ~/attraction-wars-server
docker:
- image: circleci/node:10.0.0
steps:
- checkout
- run:
name: install-npm
command: 'sudo npm install -g npm@latest'
- restore_cache: # special step to restore the dependency cache
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: install-dependencies
command: npm install
- save_cache: # special step to save the dependency cache
key: dependency-cache-{{ checksum "package.json" }}
paths:
- ./node_modules
- run:
name: lint
command: npm run lint
Здесь используется кеш для ускорения последующих запусков.
Рабочая команда описана у package.json (eslint/tslint, или любая другая)
Пример запуса для php:
version: 2
jobs:
build:
docker:
- image: circleci/php:7.2-cli-node-browsers
steps:
- checkout
- restore_cache:
keys:
- composer-{{ checksum "composer.lock" }}
- run:
name: install
command: composer install
- save_cache:
key: composer-{{ checksum "composer.lock" }}
paths:
- ./vendor
- run:
name: lint
command: ./vendor/bin/php-cs-fixer --diff --dry-run --verbose fix ./src
Здесь также кешируются вендора.
Ресурсы: