Эффективные продуктовые конвейеры — главная опора любой здоровой команды разработчиков. Здесь цель будет состоять в том, чтобы быстро интегрировать изменения кода в существующую базу кода, запустить его в соответствии со стандартным тестом и развернуть в рабочей среде, когда тестовые задания будут успешными.

Автоматизация всех этих процессов из выбранного центрального хранилища дает огромное преимущество в скорости, производительности и эффективности. Конвейеры позволяют нам внедрять гибкие методологии разработки.

Непрерывная интеграция, CI, означает добавление новых изменений в кодовую базу при условии, что она проходит стандартные тесты. Непрерывная доставка, процесс непрерывного предоставления артефактов кода, продукта процесса сборки, для развертывания. Непрерывное развертывание, автоматическое развертывание артефактов в рабочей или промежуточной среде по выбору.

Эти сообщения являются начальными шаблонами CICD для проекта реагирования, которые можно изменить для различных вариантов использования и дополнительных сложностей. Сделайте правильный отступ в файле config.yml и настройте его в соответствии с вашим проектом.

Шаблон 1:

version: 2.1
orbs:
node: circleci/[email protected]
aws-s3: circleci/[email protected]
jobs:
test-and-build:
docker:
-   image: circleci/node:<put_prefered_node_version>
steps:
- checkout
- run: npm install
- run: npm run build
- persist_to_workspace:
root: ~/
paths:
- project/build
deploy-to-s3:
machine:
image: circleci/classic:latest
steps:
- checkout
- attach_workspace:
at: ~/
- aws-s3/sync:
arguments: |
--acl public-read\
--cache-control "max-age=86400"
from: build
to: 's3://<your_s3_bucket_name>'
overwrite: true
workflows:
build-and-deploy:
jobs:
- test-and-build
- deploy-to-s3:
context: <your_project_context>
requires:
- test-and-build
filters:
branches:
only: master

Шаблон 2:

version: 2.1
orbs:
node: circleci/[email protected]
aws-s3: circleci/[email protected]
jobs:
test-and-build:
executor:
name: node/default
steps:
- checkout
- node/with-cache:
steps:
- run: npm install
- run: npm test
- run: npm run build
- persist_to_workspace:
root: ~/
paths:
- project/build
deploy-to-s3:
machine:
image: circleci/classic:latest
steps:
- checkout
- attach_workspace:
at: ~/
- aws-s3/sync:
arguments: |
--cache-control "max-age=86400"
from: build
to: 's3://<put your s3 bucket name here'
overwrite: true
workflows:
deploy-to-production:
jobs:
- test-and-build
- deploy-to-s3:
requires:
- test-and-build
filters:
branches:
only: master