GitHubでのCI/CDの有効化

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

デプロイメントの安定性を向上させるため、コネクタのDevelopmentワークフローにCI/CDツールを導入することをお勧めします。 このガイドでは、GitHubとGitHub Actionsを使用している場合のプロセスについて説明します。 ただし、この同じロジックは、他のGitツールやCI/CDツールにも移植できます。

前提条件

  • GitHubリポジトリがある
  • アクションを管理できるGitHubリポジトリ内の権限
  • リポジトリシークレットを設定できるGitHubリポジトリ内の権限

GitHub Actionsの設定

次に、GitHub Actionsファイルを作成します。 このファイルは、アクションが実行するステップを定義するために使用されます。

リポジトリの.github/workflowsフォルダに、新しいruby.ymlファイルを作成します。 例:

yaml
name: Connector Unit Test

on:
  pull_request:
    branches: [ main ]

jobs:
  test:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        ruby-version: ['2.4.10', '2.5', '2.7']

    steps:
    - uses: actions/checkout@v2
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby-version }}
        bundler-cache: true
    - name: Run tests
      env: # Only needed if using encrypted files.
        WORKATO_CONNECTOR_MASTER_KEY: ${{ secrets.WORKATO_CONNECTOR_MASTER_KEY }}
      run: bundle exec rspec

この例では、プロジェクトで暗号化された設定(settings.yaml.enc)を使用しています。 暗号化を使用する場合は、次を実行してください:

  • プロジェクトのmaster.keyファイルを.gitignoreに追加し、
  • リポジトリで暗号化されたシークレットを使用してEnvironment変数を設定します。 この例では、変数の名前はWORKATO_CONNECTOR_MASTER_KEYです。

他の自動チェックの追加

コードスタイルを維持する簡単な方法であるRubocopなど、他の種類のチェックを追加することもできます。

Workatoへのデプロイメントの自動化

ここで、PRがマージされるたびにコネクタが自動的にワークスペースにデプロイされるように、コネクタのDEV Environmentへのデプロイメントも自動化したい場合があります。

リポジトリの.github/workflowsフォルダに、新しいruby.ymlファイルを作成します。 例:

yaml
name: Connector Unit Test & Deployment

on:
  push:
    branches: [ main ]

jobs:
  test:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        ruby-version: ['2.4.10', '2.5', '2.7']

    steps:
    - uses: actions/checkout@v2
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby-version }}
        bundler-cache: true
    - name: Run tests
      env: # Only needed if using encrypted files.
        WORKATO_CONNECTOR_MASTER_KEY: ${{ secrets.WORKATO_CONNECTOR_MASTER_KEY }}
      run: bundle exec rspec
    - name: Push to DEV workspace Use this to push to DEV. This can be enabled when a PR is merged.
      env: # Only needed if using encrypted files.
        WORKATO_API_TOKEN: ${{ secrets.WORKATO_DEV_ENVIRONMENT_API_TOKEN}}
      run: bundle exec workato push -n "${{ github.event.head_commit.message }}"

次の予定

Last updated: