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: