LoginSignup
0
0

【GitHub Actions】Git管理外のファイルを扱った時のエラー

Last updated at Posted at 2023-07-17

はじめに

最近GitHub Actionsの学習を始めました。
GitHub Actions×S3で静的ウェブサイトのホスティングを実装中、少し詰まったので記事にしました。ホスティング方法の詳しい解説は行いません。

環境

MacBook Pro intel
macOS Monterey バージョン12.6

GitHub Actions×S3で静的ウェブサイトのホスティング

ひとまずデプロイだけ挑戦してみたかったので、GitHub Actions上ではテストもビルドも行いません。ローカルでビルドした成果物をデプロイします。

name: frontend

on:
  push:
    branches:
      - main

defaults:
  run:
    working-directory: frontend

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
        uses: actions/checkout@v3

      - name: デプロイ
        run: aws s3 cp dist s3://hogehoge-123 --recursive
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.FRONTEND_AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.FRONTEND_AWS_SECRET_ACCESS_KEY }}
          AWS_DEFAULT_REGION: ap-northeast-1

エラー

「distディレクトリはありません」と出力されました。
手動でのデプロイは確認済みなのになぜ...working-directoryをfrontend/distに変更してみたり、AWSのクレデンシャルをaws-actions/configure-aws-credentialsで設定してもだめでした。なぜ...

スクリーンショット 2023-07-17 18.29.48.png

# ローカルのfrontend配下
$ tree -L 1
.
├── Dockerfile
├── README.md
├── dist
├── index.html
├── node_modules
├── package-lock.json
├── package.json
├── public
├── src
└── vite.config.js

本当にdistディレクトリが無かった

最初のエラーの通り本当にdistディレクトリがありませんでした!まずは最初に(ちゃんと)エラーを読みましょう!

name: frontend

on:
  push:
    branches:
      - main

defaults:
  run:
    working-directory: frontend

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
        uses: actions/checkout@v3

      - name: ディレクトリの確認
        run: pwd && ls

スクリーンショット 2023-07-17 18.52.00.png

原因と解決

原因はdistディレクトリをGit管理外に設定していたからです。管理下に設定すると最初のコードで無事デプロイできました。
当たり前ですがactions/checkoutではGit管理外のファイルを取得することはできません。distディレクトリが管理外であることを忘れていました。

distは基本Gitで管理しない、でもどうやってデプロイする?

ビルド"成果物"です。成果物を差分管理する必要性は低いですし、デフォルトでも管理しない設計になっています。
今回のGitHub Actionsのコードはデプロイしか行っていません。基本GitHub Actions上でビルドを行いGitHub Actions上に生成された成果物をデプロイすることになります。

あとがき

エラー内容は本当でした!(当たり前)
最初からビルドとセットでデプロイしていたら出会えなかったエラーです。私みたいに「GitHub Actions難しそうだし、とりあえずS3のデプロイだけやってみるか!」と思う方は参考になると思います。

余談ですが記事を書く為にエラーの再現中、distをGit管理外に戻せない事象が発生しました。下記の記事を参考に解決しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0