Bitrise Step 만드는 법

개시하다


CI/CD 서비스의 Bitrise에서 여러 Step을 사용하여 워크플로우를 작성합니다.
이 단계에는 '응용 프로그램의 구축', '슬랙 알림' 등 다양한 내용이 있다.
하지만 꼭 필요한 스텝이 있는 것은 아니다.
이 경우, 예를 들어 조개 스크립트를 실행하는 Step을 사용해서 혼자서 처리하기도 한다.
하지만 공통적으로 사용할 수 있는 처리라면 스텝을 만들 수도 있다.
따라서 본고는 비트리스의 스텝 제작 방법을 명확히 할 것이다.
※ Bitrise 공식 문서를 참고하지만, 일본어판은 정보가 부족한 부분이 있으니 주의하시기 바랍니다.※
제작 방법의 대략적인 절차는 다음과 같다.
이것들을 순서대로 설명하다.
  • (1) 설정
  • (2) Step의 개발
  • (3) 1단계 공개
  • (1) 설치


    다음은 비트리즈 스텝을 만들기 위해 사전에 진행해야 할 일들을 설명한다.

    Bitrise CLI 설치


    참조: https://devcenter.bitrise.io/jp/bitrise-cli/installation/
    다음은 brew 설치의 예입니다.
    $ brew install bitrise
    $ bitrise --version
    1.47.2
    

    Step용 디렉토리 만들기


    다음 명령을 실행합니다.
    $ bitrise setup
    $ bitrise plugin update step
    $ bitrise :step create
    
    마지막 명령을 실행하면template가 생성됩니다.
    그때는 몇 가지 질문에 대답해야 한다.
    Step에서 사용하는 언어는 "bash"및 "go"중에서 선택할 수 있습니다.
    bash를 선택할 때 생성된 파일은 다음과 같습니다.
     - .bitrise.secrets.yml
     - bitrise.yml
     - step.sh
     - step.yml
     - README
     - LICENSE
     - .gitignore
    

    (2) 2단계 개발


    위에서 생성한 파일을 기반으로 Step의 개발 방법을 설명합니다.

    (2-1) 구조


    bash를 선택할 때 처음 만든 디렉터리 구조는 다음과 같습니다.
     - .bitrise.secrets.yml(※3)
     - bitrise.yml(※4)
     - step.sh(※1)
     - step.yml(※2)
     - README
     - LICENSE
     - .gitignore
    
    스텝을 개발할 때는 (※ 1)과(※ 2)를 주로 사용한다.
    (※ 3)와 (※ 4)는 주로 테스트에 사용됩니다.
    고를 선택할 때의 구성에서 step.shmain.go로 변한다.

    (2−2) step.sh와 step.yml 편집


    Step에서 수행된 내용은 step.sh에 기재됩니다.step.yml 에서 이 케이스 스크립트에 사용할 값을 정의할 수 있습니다.
    step.yml
    inputs:
      - sample_token:
        opts:
          title: 表示されるタイトル
          summary:
          description: |-
          説明を記載
          is_required: true
          is_sensitive: true
    
    이렇게 기재하면 step.sh에서sample_token 환경 변수를 사용할 수 있다.
    또한opts에서 지정한 두 키의 용도는 다음과 같다.
  • is_required: 이 값이 반드시 필요합니까? (정말: 반드시)
  • is_sensitive: 진짜 경우 Secrets 환경 변수만 허용
  • 단계step.yml에서 다음과 같은 환경 변수를 정의할 수 있습니다.
    후속 Step에서 다양한 Step을 사용할 수 있도록 이 Step 자체의 성과물에 대해 환경 변수를 정의했다.
    step.yml
    outputs:
      - SAMPLE_OUTPUT:
        opts:
          title: 表示されるタイトル
          summary: 
          description: 
    
    summary와 description에 관해서는 현재 Bitrise에 표시되지 않은 것 같습니다. (단, 어디에 표시됩니까?)

    (2-3) 테스트(동작 확인)


    참조: https://devcenter.bitrise.io/jp/contributors/testing-and-versioning-your-steps/
    제작된 스텝은 공개 전 동작을 확인하는 것이 중요하다.
    시험에 관해서는 다음과 같은 방법이 있다.
  • (2-3-1) 손 옆에서 실행
  • GiitHub의 창고를 지정하여 실행
  • StopLib 저장소를 지정한 후 수행
  • 이번 할애
  • (2-3-1) 손 옆에서 수행


    다음 명령을 실행하여 손으로 만든 Step의 동작을 확인할 수 있습니다.
    $ cd my_step_directory
    $ bitrise run test
    
    위 명령을 실행하면 주변 환경bitrise.yml에서 이름test이 있는 작업흐름이 이동합니다.
    (bitrise.yml에 대한 정보는 https://devcenter.bitrise.io/bitrise-cli/basics-of-bitrise-yml/
    Step에서 사용할 매개변수를 지정하려면 bitrise를 사용합니다.yml로 업데이트inputs:합니다.
    bitrise.yml
        - path::./:
            title: Step Test
            description: |-
              The example input has a default value,
              you can overwrite it if you want to, just like we did below,
              but the step would use the default value specified in the `step.yml`
              file if you would not specify another value.
            run_if: true
            inputs:
            - example_step_input: Example Step Input's value
    
    Secrets 환경 변수를 사용하려면 .bitrise.secrets.yml에 정의합니다.
    이 명령을 실행하면 다음과 같은 결과가 발생합니다.

    현지의 시험은 가볍게 실시하고 빠르게 진행하는 것이 비교적 좋다.
    그러나 주의해야 할 것은 실제 Bitrise 환경과 달리 설치된 응용 프로그램도 같지 않기 때문에 결과가 반드시 일치하지는 않는다는 것이다.
    따라서 Bitrise 환경에서 실제로 실행하는 다른 방법도 있습니다.

    (2-3-2) GiitHub의 웨어하우스를 지정한 후 수행


    Bitrise 심사를 통과하기 전 실제 테스트를 통과하는 방법으로 GiitHub의 창고를 직접 지정해 사용할 수 있다.
    bitrise.yml에서, 아래와 같이 GiitHub의 주소와 지점을 지정합니다.
    ※ 단, 공용 창고여야 합니다.
    bitrise.yml
        - git::[GitHubのアドレス]@main:
            inputs:
            - 入力パラメータ:入力値
    
    inputs의 위치는 step에서 사용할 수 있는 입력 매개 변수입니다.
    이렇게 하면 실제 Bitrise 환경에서 동작을 확인할 수 있다.

    (2-4) 아이콘(옵션)


    Step을 추가할 때 표시되는 Step 아이콘은 다음 요구 사항을 충족해야 합니다.
    - Its background color should not be transparent.
    - Size: 256x256 px.
    - Margin: 60 px.
    - Format: SVG.
    
    작성 아이콘의 배치 위치는 Step에 대해 작성된 저장소와 다른 위치에 저장됩니다.
    생성된 아이콘은 다음 위치에 배치됩니다.
    다음 위치에 대한 자세한 내용은 (3)의 스텝 공개에서 언급됐다.
    STEPLIB_FORK_ROOT/steps/YOUR_STEP_ID/assets/icon.svg
    

    (3) 1단계 공개


    Bitrise에서 생성된 Step을 사용하는 방법은 다음과 같습니다.
  • (3-1) 사전 준비된 Step Lib
  • 지정 및 사용
  • (3-2) GiitHub을 이용한 창고 직접 지정
  • 생략
  • (3-3) Bitrise Step 일반 공개
  • Bitrise 워크플로우 검색은 누구나 이용할 수 있음
  • 이러한 중 (3-1)에 관해서는 위에서 말한 바와 같다.
    다음은 (3-3)에 대한 설명입니다.

    (3-3) Bitrise Step 일반 공개


    Bitrise의 Step을 공개하는 절차는 다음과 같습니다.
    지령을 수행할 때의 일지에 무엇을 했는지, 그 다음에 무엇을 해야 하는지를 기록했기 때문에 일지도 잘 검사해야 한다.

    1. Step 바디 창고에 태그 붙이기


    이 탭 이름은 나중에 사용합니다. (step-version-tag로 사용합니다.)

    2.Fork StopLib


    https://github.com/bitrise-io/bitrise-steplib
    사전 팩스.

    3. 명령의 집행(1)


    Fork의 주소를 지정하고 다음을 수행합니다.
    $ bitrise share start -c https://github.com/[your-username]/bitrise-steplib.git
    
    - c 옵션의 주소 지정[email protected]:[your-username]/bitrise-steplib.git도 가능합니다.

    4. 명령 실행(2)


    1에 지정된 레이블 이름과 Step의 GiitHub의 창고 및 Step의 Id를 지정하여 다음을 수행합니다.
    $ bitrise share create --tag [step-version-tag] --git [step-git-uri].git --stepid [step-id]
    
    수중에 있는 Step Lib에 추가된step.yml 파일을 확인합니다.
    문제가 없으면 다음 단계로 넘어가세요.

    5. 아이콘 준비(옵션)


    아이콘을 추가하려면 생성된 branch의 다음 위치에 준비된 아이콘을 놓으십시오.
    STEPLIB_FORK_ROOT/steps/YOUR_STEP_ID/assets/icon.svg
    

    6. 명령 실행(3)

    $ bitrise share finish
    
    이 명령을 실행하면 변경 내용이 지정된 StepLib에서 특정 분기 이름([step-id]-[step-versiong])으로 push를 수행합니다.

    7. 초대 요청 작성


    생성된 분기를 기반으로 Bitrise의 Stiplib 창고를 요청합니다.

    8. 리뷰 지원


    Bitrise에서 코드 리뷰를 드릴게요.
    지적된 내용 등에 대응해 최종적으로 알림이 뜨면 비트리스를 이용할 수 있다.

    끝말


    앞으로는 정기적으로 스텝을 만들 기회가 있기 때문에 메모도 겸했다.
    또 스텝을 만들 때 이 기사를 읽고 이해가 안 되는 부분이 있다면 언제든 덧붙이겠다.
    이 단계는 Bitrise에서 중요한 기능입니다.
    편한 스텝을 하나씩 하나씩 공개해 더 편하게 만들어야 한다.

    참고 자료

  • Bitrise의 공식 문서(Step의 제작 방법)
  • https://devcenter.bitrise.io/jp/contributors/create-your-own-step/
  • Step 테스트 방법
  • https://devcenter.bitrise.io/jp/contributors/testing-and-versioning-your-steps/
  • bitrise.yml 정보

  • https://devcenter.bitrise.io/bitrise-cli/basics-of-bitrise-yml/
  • 좋은 웹페이지 즐겨찾기