tkancf.com

GitHub ActionsでPulumiをCI/CDしてみた

投稿日: 2023/09/15

はじめに

個人趣味のインフラを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へアクセスして、アクセストークンを取得します。

Pulumi Cloudのアクセストークン取得画面

アクセストークンをGitHub ActionsのSecretsに登録

取得したアクセストークンをGitHub ActionsのSecretsに登録します。

GitHub Actionsの設定画面

おわりに

もう少し凝ったことをやろうとすると、GitHub Actions力が必要そうですが、公式のサンプルがあったので簡単にできました。
Pulumiは公式のドキュメントであったり、サンプルが充実しているので、初心者でも簡単に始められて良いですね。

参考資料