GitHub ActionsでPulumiをCI/CDしてみた
はじめに
個人趣味のインフラをPulumiで管理しています。
Pulumiの公式からGitHub Actionsが公開されていたので、こちらを利用してGitHubのmainブランチへpushしたら自動でデプロイされるように設定してみました。
手順
GitHub Actionsのワークフロー作成
GitHub: pulumi/actionsのリポジトリ内にワークフローのサンプルがあるので、これを参考にしてYAMLを書きます。
ファイルは .github/workflows/pulumi.yml
に配置します。
name: Pulumi deploy
on:
push:
branches:
- main
jobs:
up:
name: Update
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
- name: Setup Go ✨
uses: actions/setup-go@v3
with:
go-version: "1.21"
- name: Downloading dependencies 📦
run: go mod download
- name: Applying infrastructure 🚀
uses: pulumi/actions@v4
with:
command: up
stack-name: prod
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
Pulumiのアクセストークン取得
Pulumi Cloudへアクセスして、アクセストークンを取得します。
アクセストークンをGitHub ActionsのSecretsに登録
取得したアクセストークンをGitHub ActionsのSecretsに登録します。
おわりに
もう少し凝ったことをやろうとすると、GitHub Actions力が必要そうですが、公式のサンプルがあったので簡単にできました。
Pulumiは公式のドキュメントであったり、サンプルが充実しているので、初心者でも簡単に始められて良いですね。