Bun アプリケーション向けの CI/CD 設定

前提条件

Bun アプリケーションのコンテナー化 から始まる、ここまでのガイドすべてを終えていること。 本節を進めるには GitHub アカウントと Docker アカウントを持っていることが必要です。

概要

本節では GitHub アクションを利用した CI/CD パイプラインの設定と利用方法について学び、Docker イメージのビルドとテストを行った上で Docker Hub へのプッシュを行います。 これより以下の手順を進めます。

  1. GitHub 上に新たなリポジトリを生成します。
  2. GitHub アクションワークフローを定義します。
  3. ワークフローを実行します。

手順 1: リポジトリの生成

GitHub リポジトリの生成、Docker Hub 機密情報の設定、ソースコードのプッシュを行います。

  1. GitHub 上に 新たなリポジトリを生成 します。

  2. リポジトリの Settings (設定) を開き、Secrets and variables > Actions に進みます。

  3. 新たな Repository variable (リポジトリ変数) として、名称を DOCKER_USERNAME、その値に自身の Docker ID を設定して生成します。

  4. Docker Hub に対しての パーソナルアクセストークン (Personal Access Token; PAT) を新たに生成します。 docker-tutorial と名付けることにします。 アクセスパーミッションは Read and Write (読み書き) とします。

  5. GitHub リポジトリの Repository secrets (リポジトリシークレット) として PAT を追加します。 その名前は DOCKERHUB_TOKEN とします。

  6. 手元のマシン内にあるローカルリポジトリにおいて、以下のコマンドを実行して origin を生成済みのリポジトリに変更します。 ここで your-username には GitHub のユーザー名、your-repository の部分は生成したリポジトリ名とします。

    $ git remote set-url origin https://github.com/your-username/your-repository.git
    
  7. 以下のコマンドを実行して、ローカルリポジトリから GitHub に向けてのステージング、コミット、プッシュを行います。

    $ git add -A
    $ git commit -m "my commit"
    $ git push -u origin main
    

手順 2: ワークフローの設定

Docker Hub に対してのイメージビルド、テスト、プッシュを行う GitHub アクションワークフローを設定します。

  1. GitHub 上の対象リポジトリにアクセスします。 そして Actions (アクション) タブを選びます。

  2. set up a workflow yourself (自分でワークフローを設定) を選びます。

    これを行うと、リポジトリないに新たな GitHub アクションワークフローファイルを生成するためのページに進みます。 そのファイルは、デフォルトでは .github/workflows/main.yml です。

  3. 編集画面において、以下の YAML 設定をコピーペーストして変更を決定します。

    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Login to Docker Hub
            uses: docker/login-action@v3
            with:
              username: ${{ vars.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKERHUB_TOKEN }}
    
          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v3
    
          - name: Build and push
            uses: docker/build-push-action@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    docker/build-push-action で利用している YAML 文法についての詳細は GitHub Action README を参照してください。

手順 3: ワークフローの実行

ワークフローファイルを保存してジョブ実行します。

  1. Commit changes... (変更のコミット) を選び、main ブランチに変更をプッシュします。

    コミットのプッシュを行うと、ワークフローは自動的に起動します。

  2. Actions (アクション) タブに移動します。 そこにワークフローが表示されます。

    ワークフローを選ぶと、全ステップが展開されて表示されます。

  3. ワークフローが完了したら Docker Hub 上のリポジトリ に移動します。

    一覧内に新たなリポジトリが表示されていれば、GitHub アクションによって Docker Hub へのイメージのプッシュが成功したということになります。

まとめ

本節では Bun アプリケーション向けの GitHub アクションワークフローの設定方法について学びました。

関連情報

次のステップ

次の節では、デプロイ前に Kubernetes 上のワークロードをローカルにおいてテスト、デバッグする方法について学びます。