Bitbucket Pipelines를 사용해 본 메모 쓰기

6282 단어 도커Bitbucket
Bitbucket에서 자동 실행이 가능한 Pipeline이 있으므로 사용해 보았으므로, 그것의 메모 쓰기.

2017/09/21 현재의 일이므로, 향후 기능이 늘어나거나 변경되거나 할 가능성은 있을지도.

see: Build, test and deploy with Pipelines - BitBucket Support

PipeLine의 특징


  • Docker 컨테이너에서 지정된 명령을 실행
  • 실행 트리거는 bitbucket으로 push하거나 스케줄 지정할 수 있습니다
  • 무료 플랜에서도 사용할 수 있다.
  • 실행 시간에 상한이 있습니다. 과금으로 상한을 올릴 수 있다.
  • BitBucket의 Pipeline에서 움직이는 시간의 일을 「빌드 시간」이라고 쓰여 있다.


  • 계획



    클라우드 쪽으로 계산하고 있다. 자사 호스트 타입의 경우는 잘 모른다.

    시간은 프로젝트 단위가 아니라 BitBucket 계정 단위가 된다. 한 팀에 5명이 있고, 프로젝트가 10개 있었을 때, 팀이 등록하고 있는 프로젝트의 경우는, 그 프로젝트의 실행 시간은 팀에 가산된다.

    더 이상의 세세한 것은 모르기 때문에, Atlasian의 사람에게 들어 줘.


    계획
    시간


    무료 계정
    50분/월

    아카데믹
    500분/월

    스탠다드
    500분/월

    프리미엄
    1000분/월


    see: Pricing bitbucket

    기능 특징


  • Docker 컨테이너를 지정해 그 이미지상에서 이동한다.
  • 다만 windows 는 아직 미대응. 최선을 다하고 있습니다.
  • 실행 환경의 상한
  • 4GB Ram
  • 실행 시간은 최대 2시간
  • 5GB 디스크 공간


  • SSH-Key 지정을 할 수 있으므로, 외부 서버에 로그인해 운용도 가능
  • 요점은 전개할 수 있어.

  • 실행 방법은, 시간 지정의 정기 실행과 git-push의 트리거로 실행시키는 2종류가 있다.
  • 두 종류를 조합하는 것도 가능. 실행 시간이 에라이하게 된다고 생각하지만.

  • 캐시 기능이 있음
  • 아직 잘 이해하지 못했습니다.
  • composer 라든지의 실행 결과라든지, composer 그 자체를 매회 넣는 것은 실행 시간 만큼 뿐이므로, 한 번 사용하면 어딘가에 갖게 해 캐쉬 시키는 기능 같다.
  • see: ㅡㅜㅜㅜㅜㅜㅜㅜ 아 t ぁしあん. 이 m / bit t c t / kachin g에서 pendenshie s-895552876. HTML


  • 서식



    리포지토리의 최상위 디렉토리에 bitbucket-pipelines.yml라는 이름으로 yaml 형식의 파일을 저장합니다.

    예를 들어, PHP에서 gd나 mysql을 사용하고 있어, 우선 여러가지를 사용하고 있어, git-push했을 때에 자동 실행하는 경우.

    bitbucket-pipelines.yml
    image: php:7.1.1
    pipelines:
      default:
        - step:
            script:
              - apt-get update && apt-get install -y unzip libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
              - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
              - docker-php-ext-install -j$(nproc) gd
              - docker-php-ext-install mcrypt && docker-php-ext-install pdo_mysql && docker-php-ext-install zip
              - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
              - composer install
              - vendor/bin/phpunit
            services:
              - mysql
      unittest:
        - step:
            script:
              - apt-get update && apt-get install -y unzip libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
              - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
              - docker-php-ext-install -j$(nproc) gd
              - docker-php-ext-install mcrypt && docker-php-ext-install pdo_mysql && docker-php-ext-install zip
              - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
              - composer install
              - vendor/bin/phpunit
            services:
              - mysql
    
    definitions:
      services:
        mysql:
          image: mysql
          environment:
            MYSQL_DATABASE: 'homestead'
            MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
            MYSQL_USER: 'homestead'
            MYSQL_PASSWORD: 'secret'
    

    시간 지정



    bitbucket 지정 리포지토리의 Pipelines에서 설정할 수 있습니다. 설정하려면 bitbucket-pipelines.ymlpipelines 아래에 default 이외의 이름으로 단계를 작성한 실행 계획이 없어야 합니다. 위 예제의 경우 unittest 만 설정할 수 있습니다.

    주 지정 설정 예.



    여기서 힘이 다한, 뭔가 쓰고 싶을 수 있으면 추기해 온다.

    todo: workflow 것

    좋은 웹페이지 즐겨찾기