BitBucket Pipelines 테스트 환경과 배포 환경이 다른 이미지 사용
그 중에서, 만들고 있는 어플리케이션이 Node였으므로 테스트는 Node의 Docker 이미지 사용하고 싶지만, 배포는 Python이 필요하므로 Python의 Docker 이미지 사용하고 싶다.
라는 말을 깨닫기 위해 해본 것을 정리해 둔다.
(더 괜찮습니까? 어떤 방법을 아는 분이 있으면 알려주세요)
하고 싶은 일
node:7.4.0
이미지에서 테스트를 실행하고 싶습니다 python:3.5.1
이미지에서 배포를 실행하고 싶습니다 결론
할 수 있었습니다.
다음을 수행합니다.
script/run_custom_pipelines.sh 만들기
파이프라인의 step에서 다른 파이프라인을 킥하기 위해 curl을 실행하는 스크립트를 준비합니다.
script/run_custom_pipelines.sh#!/bin/bash
###
# set variables:
#
# $PIPELINES_REQ_USER
# $PIPELINES_REQ_PASSWORD
# $CUSTOM_PATTERN
###
curl -X POST -is -u "$PIPELINES_REQ_USER":"$PIPELINES_REQ_PASSWORD" \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/"$BITBUCKET_REPO_OWNER"/"$BITBUCKET_REPO_SLUG"/pipelines/ \
-d '
{
"target": {
"commit": {
"hash": "'$BITBUCKET_COMMIT'",
"type": "commit"
},
"selector": {
"type": "custom",
"pattern": "'$CUSTOM_PATTERN'"
},
"type": "pipeline_commit_target"
}
}'
bitbucket-pipelines.yml 만들기
master 브랜치의 파이프라인 끝에서 이전 스크립트를 실행하고 있습니다.
(여기에서는 실제로 배포하는 스크립트가 아니라 파이썬 버전을 출력하고 있습니다)
bitbucket-pipelines.yml# This is a sample build configuration for Javascript.
# Check our guides at https://confluence.atlassian.com/x/VYk8Lw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:7.4.0
pipelines:
default:
- step:
script: # Modify the commands below to build your repository.
- npm install --global mocha
- npm install
- npm test
branches:
master:
- step:
script:
- npm install --global mocha
- npm install
- npm test
- export CUSTOM_PATTERN=deploy_to_production
- bash script/run_custom_pipelines.sh
custom:
deploy_to_production:
- step:
image: python:3.5.1
script:
- python -V
리포지토리의 환경 변수 설정
PIPELINES_REQ_USER
와 PIPELINES_REQ_PASSWORD
를 설정합니다.
curl 런타임에 자격 증명으로 사용할 사용자 이름과 암호입니다.
확인
master 브랜치에 push되면 테스트가 실행되고, 성공하면 deploy_to_production
도 실행됩니다.
master 브랜치 이외에 push 하면 테스트만 하면 됩니다.
Reference
이 문제에 관하여(BitBucket Pipelines 테스트 환경과 배포 환경이 다른 이미지 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TAKEDA-Takashi/items/92482be100b2bb5bce33
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/bin/bash
###
# set variables:
#
# $PIPELINES_REQ_USER
# $PIPELINES_REQ_PASSWORD
# $CUSTOM_PATTERN
###
curl -X POST -is -u "$PIPELINES_REQ_USER":"$PIPELINES_REQ_PASSWORD" \
-H 'Content-Type: application/json' \
https://api.bitbucket.org/2.0/repositories/"$BITBUCKET_REPO_OWNER"/"$BITBUCKET_REPO_SLUG"/pipelines/ \
-d '
{
"target": {
"commit": {
"hash": "'$BITBUCKET_COMMIT'",
"type": "commit"
},
"selector": {
"type": "custom",
"pattern": "'$CUSTOM_PATTERN'"
},
"type": "pipeline_commit_target"
}
}'
# This is a sample build configuration for Javascript.
# Check our guides at https://confluence.atlassian.com/x/VYk8Lw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:7.4.0
pipelines:
default:
- step:
script: # Modify the commands below to build your repository.
- npm install --global mocha
- npm install
- npm test
branches:
master:
- step:
script:
- npm install --global mocha
- npm install
- npm test
- export CUSTOM_PATTERN=deploy_to_production
- bash script/run_custom_pipelines.sh
custom:
deploy_to_production:
- step:
image: python:3.5.1
script:
- python -V
Reference
이 문제에 관하여(BitBucket Pipelines 테스트 환경과 배포 환경이 다른 이미지 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TAKEDA-Takashi/items/92482be100b2bb5bce33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)