💬

AppRun 専有型のデプロイに便利なアクションを作ってみた

に公開

先日、さくらのクラウドで AppRun 専有型の提供が開始されました。これにより、閉域環境でのコンテナ実行環境が容易に構築出来るようになります。

クラスタとオートスケーリンググループ・ロードバランサーなどの設定をあらかじめしておけば、アプリケーションを定義してアプリケーションバージョンを定義するだけでアプリケーションをどんどんデプロイできるので便利です。

さて、近年では、アプリケーションのデプロイには github actions を利用している方も多いかと思います。github actions でイメージをビルドして、それをシュッとクラウド環境にデプロイするところまでを workflow_dispatch で行う、というようなフローも一般的かなと思います。

さて、このような場合に、AppRun専有型に最新のイメージが更新された旨を通知しなくてはなりません。AppRun専有型はAPIを提供しているので、APIを呼べば良いのですが、API をいくつも呼ぶのはちょっと大変です。

そこで、github actions 用の設定を用意してみました(現時点ではこれは僕個人が提供しているOSSのソフトウェアです。無保証。)。
以下のように設定すれば、デプロイワークフローのできあがりです。簡単ですね。

https://github.com/tokuhirom/apprun-dedicated-update-image-action

name: Deploy to AppRun

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Build and push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: ghcr.io/${{ github.repository }}:${{ github.sha }}

      - name: Update AppRun application
        uses: tokuhirom/apprun-dedicated-update-image-action@v1
        with:
          applicationID: ${{ vars.APPLICATION_ID }}
          sakuraAccessToken: ${{ vars.SAKURA_ACCESS_TOKEN }}
          sakuraAccessTokenSecret: ${{ secrets.SAKURA_ACCESS_TOKEN_SECRET }}
          image: ghcr.io/${{ github.repository }}:${{ github.sha }}

      - name: Show deployed version
        run: echo "Deployed version ${{ steps.update.outputs.activeVersion }}"

お気軽にご利用ください。

さくらインターネット株式会社

Discussion