bitrise.yml을 리포지토리에서 관리하는 방법

Bitrise는 모바일 개발을위한 CI 서비스 => 일 t 리세. 이오






무료 범위에서 iOS 빌드를 할 수 있기 때문에 개인 프로젝트에는 고맙다. 이번에는 ReactNative 프로젝트의 리포지토리를 설정하고 움직여 보았다.

bitrise.yml에서 워크플로 설정



Bitrise에 리포지토리를 설정한 초기 단계에서 bitrise.yml은 서비스 측(bitrise.io)에서 관리되지만 프로젝트 리포지토리 내에서 관리하고 싶습니다. 그럴 때.

당연히 공식에는 지침이있다 => Use bitrise.yml from repository

영어를 아는 사람이라면 아무 일도 없이 실현할 수 있지만, 자신은 공식 안내를 100% 이해할 수 없었기 때문에 약간 빠져 버렸다. 위의 가이드의 개요를 정리하면서, 빠진 포인트를 남겨두고 싶다.

트리거 맵은 bitrise.io에서 가지며, 이후에는 리포지토리에서



공식 가이드에 따르면, bitrise.yml의 트리거 맵은 bitrise.io에서 가진 것이 좋다는 것. 그 이유는 리포지토리 내에 트리거 맵을 가지면 복제 후가 아니라면 트리거의 패턴을 판정할 수 없게 되기 때문이다.

bitrise.io에서 트리거 맵을 설정하면 아래 그림의 워크플로가 시작되기 전에 트리거의 패턴에 따라 처리를 하지 않는다는 흐름도 만들 수 있지만, 모든 것을 리포지토리 내에서 가지면 반드시 클론해야 한다.






그래서 공식에서는 bitrise.yml을 나누어 가지는 것이 추천되고 있다.

위 그림의 Git Clone Repository 까지를 bitrise.io 로 설정해, 그 이후의 워크플로우를 리포지토리내에서 설정하는 느낌.

작업 절차


  • bitrise.io에서 bitrise.yml 다운로드
  • 저장소 바로 아래에 bitrise.yml을 넣습니다
  • 저장소에서 bitrise.yml의 steps 에 있는 activate-ssh-keygit-clone 설정 삭제
  • bitrise.io의 bitrise.yml 내용을 공식 설명 설정으로 덮어 씁니다.
  • 나머지는 push하면 움직입니다 (라고 하는 것이다)

  • 작업을 한 후 bitrise.io의 WorkFlows는 아래와 같은 느낌이 든다.






    흠집



    위의 단계를 따라 이동해 보았지만 continue from repo에서 오류가 발생했습니다. 에러 내용은 『ci 라는 workflow는 정의되어 있지 않다』같은 느낌이었다.

    자신이 이 시점에서 Bitrise 문서를 읽지 않았기 때문에 제대로 공부 한 후 다시 돌아 오면 아마도 bitrise.io의 bitrise.yml에서 설정했을 것입니다 bitrise run "${BITRISE_TRIGGERED_WORKFLOW_ID}" 붙었다.

    직전에 printenv를 넣어 확인해 보면, 이 변수에 ci라는 값이 들어 있었다.

    이 변수는 bitrise.io의 trigger_map에 설정되어있는 workflow의 값이 들어있는 것 같습니다.

    공식 가이드에도 제대로 쓰여 있었다(초보로 이해할 수 없었던 자신에게 에일을)

    The trick is bitrise run "\${BITRISE_TRIGGERED_WORKFLOW_ID}". The BITRISE_TRIGGERED_WORKFLOW_ID environment variable is set to the "entry"workflow, the one which started the build. So, by running the ciK BI command will be the same as bitrise run "ci".

    따라서 해법으로서는, bitrise.io의 trigger_mapworkflow 로 설정하고 있는 값과, 리포지토리내의 workflows 로 설정하고 있는 값을 대응시켜 주면 된다.

    이상




  • Bitrise 아이콘 귀엽다. 치유 ~
  • Bitrise 아이콘 귀엽다. 치유 ~
  • Bitrise 아이콘 귀엽다. 치유 ~
  • 좋은 웹페이지 즐겨찾기