Mobile Foundation에 대한 Tekton 파이프라인 작성

improve this page | report issue

Cloud Pak for Apps의 Mobile Foundation은 Mobile Foundation과 관련된 공통 DevOps 태스크를 자동화하기 위한 Tekton 파이프라인과 함께 번들로 제공됩니다.

OCP(OpenShift Container Platform)에 Mobile Foundation을 배치하는 단계는 OCP 인타이틀먼트를 확보한 방법과 상관없이 동일합니다.

전제조건

다음은 Mobile Foundation Operator를 사용하여 Mobile Foundation 인스턴스를 설치하는 프로세스를 시작하기 전의 전제조건입니다.

Tekton 파이프라인

다음 Tekton 파이프라인을 Cloud Pak for Apps의 Mobile Foundation에 사용할 수 있습니다.

  1. 모바일 앱 구성 파이프라인(mobile-app-registration-pipeline)
  2. Android용 모바일 앱 빌드 파이프라인(mobile-app-build-android-pipeline)
  3. iOS용 모바일 앱 빌드 파이프라인(mobile-app-build-ios-pipeline)
  4. 모바일 앱 배포 파이프라인(application-center-deploy)
  5. Android용 모바일 앱 테스트 파이프라인(mobile-app-test-android-pipeline)

파이프라인을 실행하기 위한 단계

  • Mobile Foundation용 PPA를 다운로드하십시오.
  • IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz 파일의 압축을 푸십시오.
  • 압축을 푼 폴더의 위치로 cd하십시오.
  • 아래 명령을 사용하여 Cloud Pak For Apps 인스턴스에 로그인하십시오.
    oc login --token=<access_token> --server=<server_instance>
    

참고: 파이프라인을 기본 네임스페이스/프로젝트에 배치해야 합니다. 권한 문제로 인해 다른 네임스페이스에서 파이프라인이 실행되지 않을 수 있습니다.

모바일 앱 구성 파이프라인

다음 명령을 실행하십시오.

oc apply -f pipeline/mobile-app-registration -n <projectname>

다음은 생성된 출력입니다.

pipelineresource.tekton.dev/mobile-app-registration-git-resource created
pipeline.tekton.dev/mobile-app-registration-pipeline created
task.tekton.dev/mobile-app-registration-task created

Android용 모바일 앱 빌드 파이프라인

파이프라인을 배치하려면 다음 명령을 실행하십시오.

oc apply -f pipeline/mobile-app-build-android -n <projectname>

다음은 생성된 출력입니다.

pipelineresource.tekton.dev/mobile-app-build-android-git-sresource created
pipeline.tekton.dev/mobile-app-build-android-pipeline created
task.tekton.dev/mobile-app-build-android-task created

iOS용 모바일 앱 빌드 파이프라인

전제조건

공용으로 액세스할 수 있는 Mac 시스템에 Xcode Server 설정이 있어야 합니다. iOS 앱을 빌드하기 위한 Xcode Server 설정 섹션을 참조하십시오.

전제조건을 처리한 후 다음 명령을 실행하십시오.

oc apply -f pipeline/mobile-app-build-ios -n <projectname>

다음은 생성된 출력입니다.

pipeline.tekton.dev/mobile-app-build-ios-pipeline created
task.tekton.dev/mobile-app-build-ios-task created
pipelineresource.tekton.dev/mobile-app-build-ios-git-resource created

모바일 앱 배포 파이프라인

다음 명령을 실행하십시오.

oc apply -f pipeline/mobile-app-publish -n <projectname>

다음은 생성된 출력입니다.

pipelineresource.tekton.dev/appcenter-git-resource created
pipeline.tekton.dev/application-center-deploy created
task.tekton.dev/application-center-upload created

Android용 모바일 앱 테스트 파이프라인

전제조건

Android 애플리케이션 테스트 파이프라인을 실행하려면 API 키, 디바이스 ID, 프레임워크 ID 및 프로젝트 ID가 포함된 BitBar 계정이 있어야 합니다.

다음 명령을 실행하십시오.

oc apply -f pipeline/mobile-app-test-android -n <projectname>

다음은 생성된 출력입니다.

pipelineresource.tekton.dev/mobile-app-test-android-git-resource created
pipeline.tekton.dev/mobile-app-test-android-pipeline created
task.tekton.dev/mobile-app-test-android-task created

위의 명령은 태스크, 파이프라인 및 리소스를 작성합니다. Tekton 대시보드에서 태스크, 리소스 및 파이프라인을 볼 수 있습니다.

Tekton 대시보드 태스크

Tekton 대시보드 리소스

Tekton 대시보드 파이프라인

Tekton 대시보드에서 적절한 리소스로 파이프라인 실행

  1. 애플리케이션의 적절한 Git 저장소 URL로 리소스 파일을 편집하십시오.
     pipeline/mobile-app-registration/appregistrationgitresource.yaml
     pipeline/mobile-app-build-android/ buildandoridgitresource.yaml
     pipeline/mobile-app-build-ios/ buildiosgitresource.yaml
     pipeline/mobile-app-publish/mobileapppublishgitresource.yaml
     pipeline/mobile-app-test-android/testandroidappgitresource.yaml
    
  2. Tekton 파이프라인 mobile-app-registration의 리소스를 업데이트하기 위한 명령을 실행하십시오.
    oc apply -f pipeline/mobile-app-registration/appregistrationgitresource.yaml -n <projectname>
    

    다음은 생성된 출력입니다.

    pipelineresource.tekton.dev/mobile-app-registration-git-resource configured
    
  3. Tekton 파이프라인 mobile-app-build-android의 리소스를 업데이트하기 위한 명령을 실행하십시오.
    oc apply -f pipeline/mobile-app-build-andorid/buildandoridgitresource -n <projectname>
    

    다음은 생성된 출력입니다.

    pipelineresource.tekton.dev/mobile-app-build-android-git-resource configured
    
  4. Tekton 파이프라인 mobile-app-build-ios의 리소스를 업데이트하기 위한 명령을 실행하십시오.
    oc apply -f pipleline/mobile-app-build-ios/buildiosgitresource -n <projectname>
    

    다음은 생성된 출력입니다.

    pipelineresource.tekton.dev/mobile-app-build-ios-git-resource configured
    
  5. Tekton 파이프라인 mobile-app-publish의 리소스를 업데이트하기 위한 명령을 실행하십시오.
    oc apply -f pipeline/mobile-app-publish/mobileapppublishgitresource.yaml -n <projectname>
    

    다음은 생성된 출력입니다.

    pipelineresource.tekton.dev/appcenter-git-resource configured
    
  6. Tekton 파이프라인 mobile-app-test-android의 리소스를 업데이트하기 위한 명령을 실행하십시오.
      oc apply -f pipeline/mobile-app-test-android/testandroidappgitresource.yaml -n <projectname>
    

    다음은 생성된 출력입니다.

      pipelineresource.tekton.dev/mobile-app-test-android-git-resource configured
    

PipelineRun을 사용하여 파이프라인 실행

Tekton 대시보드를 열고 파이프라인 섹션을 클릭하십시오.

  1. 실행할 파이프라인을 클릭하십시오. PipelineRun

  2. PipelineRun 작성을 클릭하십시오. PipelineRun

  3. 위에서 작성된 PipelineResources git-source를 선택하십시오.
  4. 필수 매개변수 및 서비스 계정을 기본값으로 제공하십시오.
  5. PipelineRun 작성을 클릭하십시오. PipelineRun
  6. PipelineRun의 로그 및 상태를 보려면 Tekton 대시보드로 이동하여 PipelineRuns를 선택하십시오. PipelineRun

웹 후크에 대한 tekton 트리거 배치

참고: 이러한 단계는 웹 후크를 사용하려는 경우에만 필요합니다.

Android 빌드 파이프라인용 tekton 트리거 구성

전제조건

Android 빌드용 tekton 트리거를 사용하기 전에 트리거 바인딩 yaml 파일에 github-token을 추가해야 합니다. pipeline/android-pipeline-trigger/mfpandroidtriggerbinding.yaml 파일로 이동하고 플레이스홀더 {githubToken}을 유효한 github-token으로 편집하십시오.

다음 명령을 실행하십시오.

oc apply -f pipeline/android-pipeline-trigger -n <projectname>

다음은 생성된 출력입니다.

eventlistener.tekton.dev/mfp-android-webhook-listener created
route.route.openshift.io/mfp-android-webhook-route created
triggerbinding.tekton.dev/mfp-android-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-android-trigger-binding created
serviceaccount/mfp-android-triggers-sa created
triggertemplate.tekton.dev/mfp-android-trigger-template created
role.rbac.authorization.k8s.io/mfp-trigger-role created

iOS 빌드 파이프라인용 tekton 트리거 구성

전제조건

ios용 tekton 트리거를 사용하기 전에 몇 개의 필드를 트리거 바인딩 yaml 파일에 추가해야 합니다. pipeline/ios-pipeline-trigger/mfpiostriggerbinding.yaml 파일로 이동하고 다음 매개변수 {githubToken}, {xcodeServerBotId}xcodeServerHost를 유효한 값으로 편집하십시오.

다음 명령을 실행하십시오.

oc apply -f pipeline/ios-pipeline-trigger -n <projectname>

다음은 생성된 출력입니다.

eventlistener.tekton.dev/mfp-ios-webhook-listener created
route.route.openshift.io/mfp-ios-webhook-route created
triggerbinding.tekton.dev/mfp-ios-trigger-binding created
rolebinding.rbac.authorization.k8s.io/mfp-ios-trigger-binding created
serviceaccount/mfp-ios-triggers-sa created
triggertemplate.tekton.dev/mfp-ios-trigger-template created

위의 명령은 Tekton 대시보드에서 액세스할 수 있는 EventListener, TriggerBinding 및 TriggerTemplate를 작성합니다.

트리거

트리거

트리거

또한 웹 후크를 구성하는 데 사용할 수 있는 두 개의 라우트를 공개합니다. Openshift 대시보드에서 네트워킹 및 라우트로 이동합니다. 하나는 android 빌드용이고 다른 하나는 iOS 빌드용입니다.

트리거

웹 후크를 사용하여 파이프라인 트리거

애플리케이션 Git 저장소에 변경사항이 있을 때마다 자동으로 PipelineRun을 트리거하려면 웹 후크를 사용하여 파이프라인을 실행하십시오.

웹 후크 작성

  1. 웹 후크를 구성할 Git 저장소로 이동하십시오.
  2. 저장소의 Settings 탭으로 이동하십시오. 웹 후크
  3. 왼쪽 탐색 메뉴에서 웹 후크를 클릭한 다음 Add webhook를 클릭하십시오.
  4. tekton 트리거가 구성될 때 이전에 작성된 라우트 중 하나를 Payload URL 필드에 제공하십시오. Content typeapplication/json으로 설정하고 웹 후크를 실행하려는 경우 이벤트를 선택해야 합니다. Webhooks
  5. 웹 후크 추가를 클릭하십시오.

git 저장소에 대한 이벤트는 해당 라우트에 대해 구성된 PipelineRun의 작성을 트리거해야 합니다. PipelineRun의 로그 및 상태를 보려면 Tekton 대시보드로 이동하여 PipelineRuns를 선택하십시오.

iOS 앱을 빌드하기 위한 Xcode Server 설정

  1. Mac 시스템에서 Xcode를 설정하십시오.
  2. Xcode를 여십시오.
  3. 맨 위 메뉴에서 Xcode Server를 선택하십시오.
  4. 통합을 실행하기 위해 Xcode Server를 켜십시오.
  5. 서버가 켜진 후 권한 섹션으로 이동하여 봇 작성 및 보기 옵션을 all users로 변경하십시오.
  6. 계정 섹션으로 이동하여 계정 유형이 Xcode Server인 새 계정을 추가한 후 사용 가능한 서버를 선택하십시오.
  7. Xcode Server가 설정된 후 통합을 실행하고 ipa를 생성하기 위해 봇을 구성해야 합니다. Xcode에서 빌드하려는 iOS 프로젝트를 여십시오.
  8. 프로젝트에 대한 빌드 로그로 이동하여 그룹별 옵션을 선택하십시오. 구성된 서버가 표시되어야 합니다.
  9. 서버를 마우스 오른쪽 단추로 클릭한 후 봇 작성을 클릭하십시오.
  10. 봇에 이름을 지정하고 다음을 클릭하십시오. 봇 이름에 공백이 포함되지 않았는지 확인하십시오. 봇에 대한 소스 제어를 구성하고 다음을 클릭하십시오.
  11. 조치 섹션의 빌드 구성에서 아카이브 옵션이 선택되었는지 확인하십시오. 내보내기 옵션에서 사용자 정의 내보내기 Plist 사용을 선택하십시오. 다음 형식의 plist 파일이 있는지 확인하십시오. XCode
  12. 봇 통합 스케줄 섹션에서 수동으로 실행하는 통합을 선택한 후 다음을 클릭하십시오. XCode
  13. 프로젝트에 대한 관련 빌드 옵션을 선택하고 다음을 클릭하십시오.
  14. 인증서 및 프로파일 섹션에서 ipa 생성에 필요한 관련 인증서 및 프로파일이 서버에 추가되었는지 확인하고 다음을 클릭하십시오.
  15. 이러한 인수를 추가하고 인수 및 환경 변수 섹션에서 xcodebuild 명령에 관련 값을 제공하고 다음을 클릭하십시오. XCode
  16. 트리거 ** 섹션에서 **추가를 클릭하고 사전 통합 스크립트를 선택한 후 해당 스크립트에 이름을 지정하고 스크립트 섹션에서 앱에 대한 CocoaPod 종속 항목을 다운로드하는 다음 스크립트를 추가한 후 작성을 클릭하십시오.
    #!/bin/sh
    cd $XCS_PRIMARY_REPO_DIR
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands"
    . ~/.bash_profile
    bundle install
    npm install
    ionic cordova platform add ios
    ionic cordova prepare ios
    

    XCode

  17. 봇이 작성된 후 통합이 실행될 때까지 대기하십시오. 통합이 완료된 후 통합으로 이동하고 로그로 이동하십시오. 로그에서 botId를 볼 수 있어야 합니다. Tekton 파이프라인에서 통합을 실행하려면 botId가 필요합니다. XCode
  18. 이제 Xcode Server 설정이 완료되었습니다. 봇 ID를 사용하여 iOS 빌드 파이프라인을 트리거하십시오.
Last modified on June 29, 2020