@@ -3,7 +3,7 @@ name: Build and Push Docker Image
33on :
44 push :
55 branches :
6- - main # メインブランチへのプッシュ時にトリガー
6+ - main # メインブランチへのプッシュ時に実行
77 workflow_dispatch : # 手動でトリガー可能
88
99jobs :
@@ -22,38 +22,21 @@ jobs:
2222 node-version : 22
2323 cache : " yarn"
2424
25- # 3. Yarn を使ってプロジェクトをインストール
26- - name : Install Dependencies Using Yarn
27- run : yarn install
28-
29- # 4. Next.js をビルド(SSG ページの生成)
30- - name : Build Next.js App
31- run : yarn build
32-
33- # 5. ユーザー名とリポジトリ名をフォーマットする
34- - name : Format Username and Repository Name
35- id : format
36- run : |
37- FORMATTED_USERNAME=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
38- FORMATTED_REPO_NAME=$(echo "${{ github.event.repository.name }}" | sed -E 's/([a-z])([A-Z])/\1-\2/g' | tr '[:upper:]' '[:lower:]')
39-
40- echo "FORMATTED_USERNAME=${FORMATTED_USERNAME}" >> $GITHUB_ENV
41- echo "FORMATTED_REPO_NAME=${FORMATTED_REPO_NAME}" >> $GITHUB_ENV
42-
43- # 6. Docker にログイン(GitHub Container Registry)
25+ # 3. Docker にログイン(GitHub Container Registry)
4426 - name : Log in to GitHub Container Registry
45- uses : docker/login-action@v2
27+ uses : docker/login-action@v3.3.0
4628 with :
4729 registry : ghcr.io
48- username : ${{ env.FORMATTED_USERNAME }}
49- password : ${{ secrets.GITHUB_TOKEN }} # GitHub Actions が自動提供するトークン
30+ username : ${{ secrets.GITHUB_ACTOR }}
31+ password : ${{ secrets.GITHUB_TOKEN }}
5032
51- # 7 . Docker イメージをビルド
33+ # 4 . Docker イメージをビルド
5234 - name : Build Docker Image
5335 run : |
54- docker build -f infra/docker/Dockerfile . -t ghcr.io/${{ env.FORMATTED_USERNAME }}/${{ env.FORMATTED_REPO_NAME }}:latest
36+ docker build -f infra/docker/Dockerfile . \
37+ -t ghcr.io/${{ github.repository_owner }}/${{ github.repository }}:latest
5538
56- # 8 . Docker イメージをプッシュ
39+ # 5 . Docker イメージをプッシュ
5740 - name : Push Docker Image
5841 run : |
59- docker push ghcr.io/${{ env.FORMATTED_USERNAME }}/${{ env.FORMATTED_REPO_NAME }}:latest
42+ docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository }}:latest
0 commit comments