やったこと
元々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への移行を実施した。
やっていることはものすごく単純なので、もっと早く移行すればよかった。