Git 태그 push로 CircleCI 2.0 빌드 실행
6886 단어 CircleCI시CircleCI2.0Git
여기에서는 다음 조건에서 빌드를 시작하는 작업을 만듭니다.
v〇〇
) 또는 master
브랜치를 푸시하면 배포 프로세스도 실행됩니다 빌드와 배포 작업을 분리하지 않는 방법
별로 멋지지 않지만, 이쪽이 간단하고 간단합니다. 포인트는 다음 두 점입니다.
filters/tags/only
를 지정하고 Git 태그를 푸시하면 작업이 시작되도록합니다 deploy
단계에서 푸시 된 Git 태그 또는 분기를 식별하고 배포 프로세스를 수행할지 여부를 결정합니다..circleci/config.yml
version: 2
jobs:
build:
docker:
- image: circleci/golang:latest
steps:
- checkout
- run: echo "Hello, World"
- deploy:
name: deploy build artifact
command: |
if [ "${CIRCLE_TAG}" != "" -o "${CIRCLE_BRANCH}" == "master" ]; then
[ "${CIRCLE_TAG}" != "" ] && TAG=${CIRCLE_TAG} || TAG=latest
echo "Deploy! ${TAG}"
fi
workflows:
version: 2
build-and-deploy:
jobs:
- build:
filters:
tags:
only: /v.*/
빌드 및 배포 작업을 분리하는 방법
Workflow답게 두 개의 작업을 사용하여 실현하는 방법은 이쪽입니다. 포인트는, 다음의 1점에 따릅니다. 사양이 너무 이해하기 어렵습니다
deploy
작업뿐만 아니라 build
작업에도 filters/tags/only
를 지정 .circleci/config.yml
version: 2
jobs:
build:
docker:
- image: circleci/golang:latest
steps:
- checkout
- run: echo "Hello, World"
deploy:
docker:
- image: circleci/golang:latest
steps:
- checkout
- run:
name: deploy
command: |
[ "${CIRCLE_TAG}" != "" ] && TAG=${CIRCLE_TAG} || TAG=latest
echo "Deploy! ${TAG}"
workflows:
version: 2
build-and-deploy:
jobs:
- build:
filters:
tags:
only: /v.*/
- deploy:
requires:
- build
filters:
tags:
only: /v.*/
branches:
only: master
첫 번째 방법과 달리 작업이 두 가지로 분리되어 있기 때문에 배포 작업에서 빌드 작업의 출력을 사용하려면 주의해야 합니다.
persist_to_workspace
, attach_workspace
등을 사용하여 작업에서 작업으로 아티팩트를 전달해야합니다..circleci/config.yml
jobs:
build:
steps:
- ...
- persist_to_workspace:
root: /tmp/workspace
paths:
- build/*
deploy:
steps:
- ...
- attach_workspace:
at: /tmp/workspace
- run: cat /tmp/workspace/build/output.txt
Reference
이 문제에 관하여(Git 태그 push로 CircleCI 2.0 빌드 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oohira/items/09aa91cc01109f8d053b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)