Date

やったこと

元々circleCIでS3にaws s3 cpによるdeployをGithubActionsでS3にaws s3 cpする様に変更した。

まず始めに、GithubActions用の.ymlファイルを作成する。

$ mkdir .github/workflows
$ touch .github/workflosw/s3.yml

次に、s3.ymlを以下の様に修正する。

name: Amazon S3

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-northeast-1

      - name: Output file contents
        run: |
          sudo pip install --upgrade pip
          sudo pip install -r ./requirements.txt
          make html

      - name: Upload file to S3
        env: 
          S3_UPLOAD_BUCKET: ${{ secrets.S3_UPLOAD_BUCKET }}
        run: |
          aws s3 cp ./output s3://$S3_UPLOAD_BUCKET/ --recursive

最後に、Githubの対象レポジトリでsettings-> srcrets-> Actionsの順に進んでいき、
s3.ymlで宣言している3つのsecretを定義する。

変数名
AWS_ACCESS_KEY_ID awsのアクセスキー
AWS_SECRET_ACCESS_KEY_ID awsのシークレットアクセスキー
S3_UPLOAD_BUCKET アップロード対象Bucket名

動作

このs3.ymlでGithubActionsを実行するには、masterブランチへのpushが必要となる。
ただ、僕の環境ではdevelopブランチ-> masterブランチへのPRをhookにしたかったが、
上記の記載で動作しているので一旦保留とすることにした。

まとめ

今回、久しぶりにblogを書いていてcircleCIがエラーを吐いたので勢いでGithubActionsへの移行を実施した。
やっていることはものすごく単純なので、もっと早く移行すればよかった。