Github Actionsとの統合

Github Actionsは、コードがコミットされるたびにソフトウェアワークフローを起動させることで、CI/CD統合をサポートします。Incredibuild は Github Actions と統合し、利用可能なヘルパーエージェントに配布することで、これらのソフトウェアのワークフローを高速化することができます。

Github Actionsは、ランナーと呼ばれるマシンを使って、コードがコミットされるたびにワークフローを実行します。これらのランナー に Incredibuild Initiator Agent をインストールすることで、Incredibuild はGithub Actions と統合します。ワークフローは、すべての Incredibuild ヘルパーエージェントに分散させることができます。

セルフホストランナーランナー 、またはGithubホスト型ランナー のどちらを使用しているかによって、統合の仕方が異なります。

この統合は、Incredibuild のあらゆるタイプのライセンスで動作します。

セルフホスティングランナー使用時のGithub Actionsとの統合

Incredibuild は、セルフホストランナーに Initiator Agent をインストールすることで統合します。

  1. Incredibuildのセットアップと前提条件

    1. Github Actions は、Windows を使用してセルフホストランナー で起動している必要があります。

    2. Incredibuild Coordinator は、すでにインストールされている必要があります。.

    3. Github のセルフホストランナーを持つマシンに Incredibuild をインストールし、それらを Incredibuild Coordinator と関連付けます。

    4. Incredibuildのビルドコマンドでバッチファイルを用意する。これは、ビルドする内容によって異なります。詳しくは、ビルドの実行 をご覧ください。

  2. Github Actionのワークフローを追加する

    Github Actions がトリガーされるたびに Incredibuild を呼び出すワークフローを定義します。すでにGithub Actionのワークフローをお持ちの方は、以下のコードを例として、既存のワークフローに関連する修正を行うことができます。

    1. GitHubプロジェクトのリポジトリから、「Actions」タブに移動し、新しいワークフローを追加します。

    2. 手動ワークフロー を選択し、設定 をクリックします。

    3. 内容を以下のコードに置き換えてください。

      コピー
      name: IB trigger

      # Controls when the workflow will run
      on:
        # Triggers the workflow on push or pull request events but only for the master branch
        push:
          branches: [ master ]
        pull_request:
          branches: [ master ]

      jobs:
        # This workflow contains a single job called "build"
        build:
          # The type of runner that the job will run on
          runs-on: self-hosted

            # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
            - uses: actions/checkout@v2

            # Runs a single command using the runners shell
            - name: Run Rebuild batch file and distridute the tasks within helpers
              run: powershell <path to batch file you just created>

            # Runs a set of commands using the runners shell
      #      - name: Run a multi-line script
      #        run: |
      #         echo Add other actions to build,
      #         echo test, and deploy your project.
    4. <先ほど作成したバッチファイルのパス>を正しいパスに置き換えてください。

 

Githubでホストされたランナー使用時のGithub Actionsとの統合

Githubにホストされたランナーは動的に作成されるため、統合プロセスでは Github Actions を設定して、作成したマシンに Incredibuild を自動的にインストールし、Coordinator に接続する必要があります。この操作では、Github がホストするランナーマシンで、Incredibuildフローティングイニシエータライセンス を使用する必要があります。

  1. Github Actions がGithub でホストされたランナー で Windows を使って起動している必要があります。

  2. Incredibuild Coordinator は、すでにインストールされている必要があります。.

  3. Coordinator マシンのポート31104 が、ランナーマシンからのトラフィックのために開かれていることを確認します。Incredibuild Initiators がそれらのランナーにインストールされ、Incredibuild Coordinator に接続されます。

  4. Incredibuild のインストールファイルを、Github ランナーがアクセスできる場所にコピーします。

  5. Github Actionsで、手動ワークフローを作成します。すでにGithub Actionのワークフローをお持ちの方は、以下のコードを例として、既存のワークフローに関連する修正を行うことができます。

    1. GitHubプロジェクトのリポジトリから、「Actions」タブに移動し、新しいワークフローを追加します。

    2. 手動ワークフロー を選択し、設定 をクリックします。

    3. 内容を以下のコードに置き換えてください。

      コピー
      name: Build on Windows
      on: push
      jobs:
        build:
          runs-on: windows-2019
          steps:
            -  run: |
                choco install wget -y
                cd C:\ 
                wget "<path to original IB install file>/IBSetupConsole.exe" -O "C:\IBSetupConsole.exe" 
                ./IBSetupConsole.exe /Install /Components=Agent /Coordinator=<IP of Coordinator Machine> the /Agent:AgentRole=Initiator /Agent:InitiatorType=Floating /AddToPath=ON /Agent:InstallAddins=OFF
                                            
            - name: Add msbuild to PATH
              uses: microsoft/setup-msbuild@v1.1
                    
            - name: Clone Repository and Rebuild with Incredibuild
              run: |
                  cd C:\
                  git clone <URL to your Github repository>
                  cd C:\<name of your Github project>
                  $env:Path = 'C:\Program Files (x86)\IncrediBuild'
                  BuildConsole.exe '<path to your solution>' /rebuild /cfg="Debug|x64" /usemsbuild ##Replace with your build command
                                                   
            - name: Upload artifacts
              if: always()    
              uses: actions/upload-artifact@v2
              with:
                 name: my-artifact
                 path: |
                   C:\Program Files (x86)\IncrediBuild\History
                   C:\Program Files (x86)\IncrediBuild\Logs
    4. Github リポジトリの実際の URL、Github プロジェクトの名前、ビルドコマンド (BuildConsole.exe...) の行の代わりに、コードを修正します。ビルドコマンドを定義するには、ビルドの実行 を参照してください。Incredibuild のインストールコマンド (IBSetupConsole.exe) を変更したい場合は、Silent Installation を参照してください。