# GitHub における CI/CD の有効化

デプロイメントの安定性を高めるために、CI/CD ツールをコネクター開発のワークフローに組み入れることをお勧めします。このガイドでは、GitHub や GitHub Actions を使用している場合のプロセスについて説明します。これと同じ手法を、他の Git ツールや CI/CD ツールに移植することもできます。

# 前提条件

  • GitHub リポジトリを所有していること
  • GitHub リポジトリで Actions を管理できる権限があること
  • GitHub リポジトリでリポジトリシークレットを設定する権限があること

# GitHub Actions の設定

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

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

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 に追加する。
  • 暗号化されたシークレット (opens new window) を使用してリポジトリに環境変数を設定する。この例では、環境変数は WORKATO_CONNECTOR_MASTER_KEY という名前です。

# その他の自動検査の追加

コーディングスタイルの維持を容易にする Rubocop (opens new window) など、他の検査を追加することができます。

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

ここで、PR がマージされるたびにワークスペースへ自動的にデプロイメントされるなど、コネクターを開発環境へ自動的にデプロイできます。

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

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_EMAIL: ${{ secrets.WORKATO_DEV_ENVIRONMENT_API_EMAIL}}
        WORKATO_API_TOKEN: ${{ secrets.WORKATO_DEV_ENVIRONMENT_API_TOKEN}}
      run: workato push 

# 次のステップ

  • コネクタープロジェクトのファイルの詳細については、こちら を参照してください。


Last updated: 2023/8/31 1:07:14