BitBucket Pipelines 테스트 환경과 배포 환경이 다른 이미지 사용

5460 단어 pipelinesBitbucket
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_USERPIPELINES_REQ_PASSWORD 를 설정합니다.
    curl 런타임에 자격 증명으로 사용할 사용자 이름과 암호입니다.



    확인



    master 브랜치에 push되면 테스트가 실행되고, 성공하면 deploy_to_production 도 실행됩니다.

    master 브랜치 이외에 push 하면 테스트만 하면 됩니다.



    좋은 웹페이지 즐겨찾기