Эффективные продуктовые конвейеры — главная опора любой здоровой команды разработчиков. Здесь цель будет состоять в том, чтобы быстро интегрировать изменения кода в существующую базу кода, запустить его в соответствии со стандартным тестом и развернуть в рабочей среде, когда тестовые задания будут успешными.
Автоматизация всех этих процессов из выбранного центрального хранилища дает огромное преимущество в скорости, производительности и эффективности. Конвейеры позволяют нам внедрять гибкие методологии разработки.
Непрерывная интеграция, 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