Bitbucketパイプラインからビットライズビルドをトリガーする方法は?


こんにちはフェローコーダー!
最近のプロジェクトでは、Bitbucketのパイプラインからビットライズを引き起こす必要性を感じました.私は、あなたの心に来る最初の質問がそれの後の理由であることを望みます.
それで、見ましょう.
動機
あなたがプロジェクトに「ABC」を持っていると仮定しましょう.(例えばモバイル、ウェブ、サーバー)、そして、あなたはこれらの3つのプロジェクトのために同じBitbucket Repoを使いたいです.しかし、Webまたはサーバーのフォルダにいくつかの変更をプッシュするたびに、それは必要とされていないbitriseモバイルのビルドをトリガします.
基本的に、BitriseがBitbucket Repoでどんな変化を感じても、それは自動的に起動します.
ビットライズを有効にするには、現在Bitbucket Repoに対して選択的なビルド機能を使用できません.
モバイルターゲットの変更を見つけたら、モバイルビルドを実行することになります
解決方法
私たちは自動的なBitriseの引き金の代わりにbitriseのAPIを使用するつもりです、そして、我々はbitbucketパイプラインを通してbitrise API終点を打ちます.
始めましょう.
Postmanを使用したトリガのビットストリーム(省略可)
私たちは、Bitrise APIをテストするために、ここでPostmanを使用しています
  • は、bitrise(https://api.bitrise.io/v0.1/apps/$Slug_number/builds)のURLからスラグ数を集めることができます.
  • コールのヘッダーに認証トークンhttps://devcenter.bitrise.io/api/authentication/を追加します.
  • リクエストの本文に次のオブジェクトを追加します.
  • const data = {
        hook_info: {
          type: 'bitrise',
          triggered_by: '',
        },
        build_params: {
          branch: 'master',
          commit_message: "",
          commit_hash: "",
          workflow_id: 'primary',
        },
      };
    //Now post the api
    
  • オープンバケット.エディタのプロジェクトのYMLファイル.
  • テスト目的のための
  • は、最初にノードイメージを使用してBitbucketパイプラインでモバイルビルドのためのステップを作成します.
  • - step:
              name: Run Android Build
              image: node:10.15.3
              script:
                - echo "Going to trigger Android Build"
    
  • ステップ2の後にパイプラインが正常に動作した場合、さらに進む.そうでなければ、YMLファイルに何か悪いことがあります.
  • ステップで変更セット条件を適用します(このフォルダの変更を行う場合のみ実行します).
  • - step:
              name: Run Android Build
              image: node:10.15.3
              condition:
                changesets:
                  includePaths:
                    - "mobile/**"
              script:
                - echo "Going to trigger Android Build"
    
  • 私たちは名前“MobileBuilds”とプロジェクト内のフォルダを作成します.
  • フォルダ内の
  • 私たちは2ファイルを追加します.

  • ここでこれらの手順を実行します.
  • 最新のGitコミットを取得します.
  • アンドロイドの中で
  • ヒットbitrise API.js
  • アンドロイドを起動します.BitbucketパイプラインからのJSファイル.また、AxiosとGitの最後のコミットのような必要な依存関係が含まれます.
  •  - step:         
              name: Run Android Build
              image: node:10.15.3
              condition:
                changesets:
                  includePaths:
                    - "mobile/**"
              script:
                - echo "Going to trigger Android Build"
                - npm install axios
                - npm install git-last-commit
                - cd mobile/MobileBuilds
                - node Android.js $BITRISE_TOKEN
    
  • $ bitriseoundトークンはBitbucketの変数から値をAndroidに渡すことです.jsファイル.)
  • 今ちょうどパイプラインを実行します.