松浦裕久のエンジニアブログ

初めまして。Androidエンジニアです。

S3への自動デプロイをやってみた

概要

Github Actions を使って、Vue.jsのビルドからS3の自動デプロイまでを自動化してみました。

経緯

自身はAndroidエンジニアではありますが、自分のWEBサイトを刷新したくて、とりあえずVue.jsを使ってみました。

全くVue.jsの恩恵を受けることなく、開発をしていたのですが、ふと自動化したいと思い、Github Actions を使って、ビルドしたファイルを自動でS3にアップできるようにしましたので、メモ書きとして残しておこうと思います。

 

実際のレポジトリは以下のURLからご覧ください。

github.com

 

内容

ビルドから自動デプロイまでの手順は、色んなサイトで記述されているので、今回は省略します。

今回は、自動デプロイを実現する上で、詰まった点を書き留めておこうと思います。

 

ワーキングディレクトリのミス

Githubでレポジトリをご覧になるとお分かりですが、ルート直下に、package.jsonがなく、appフォルダ直下に置いておりました。これが、様々な問題を引き起こしてしまいました。

Github Actions が実行されると、早速、以下のエラーコードが出ちゃいました。

Error: Process completed with exit code 254.

 

ちゃんと、コピペをするんじゃなくて、理解することが必要だと痛感しましたね。

ビルドする前に、ディレクトリを指定することで解決しました。

- name: Build
        run: npm run build  # vuejs ビルド
        working-directory: ./app

 

AWS CLI 

なぜか、以下のようなエラーが発生しちゃいました。

Process completed with exit code 255.

 

結論、AWS CLI のインストールをしてなかっただけでした(違うサイトでは、直接、AWS CLI を呼び出していたので、できるのかと思ってた)

# S3へのデプロイ準備
      - name: Configure AWS credentials from account
        uses: aws-actions/configure-aws-credentials@v1
        with:
          # Secretsで登録したキーを設定
          aws-access-key-id: ${{ secrets.AWS_ACCESS_TOKEN_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          # S3のリージョン
          aws-region: ap-northeast-1

 

なんとか、無事、自動デプロイができるようになりました。

 

ちなみに、CloudFrontも使っているので、キャッシュを削除するような仕組みも必要なので、どこかで実施しようと思います。