はじめに
レガシーなサイトをcssフレームワークをいれてリニューアルし、独自ドメインをとってAWS S3にWebホスティングするところまで前回実施しました。
今回はCircleCIとGithub連携編です。これによってgitへのpushと連動してS3(本番環境)の更新を自動的に起こします。
CircleCI
社内のような閉じた環境だとJenkinsを使っていますが、CircleCIも気になってたのでいいチャンスです。使ってみます。
github連携でサインアップできますね!
buildに失敗したようです。何も設定してないしな。
IAMユーザの作成
deployするためのユーザを作成します。AWSのサービスからIAMを選びます。
s3-deploy-userというユーザで、S3へのアクセスを許可するポリシーを選びます。
ユーザを作成します。
この画面で見えるアクセスキーとシークレットアクセスキーは必ずコピペで保存しておいてください。長いです。
CircleCIでAWSアカウントと連携
プロジェクトからAWSのアカウント連携で、先ほど表示されたアクセスキーとシークレットアクセスキーを入力します。
プロジェクトのtopにcircle.ymlを以下の内容で設置します。
machine: timezone: Asia/Tokyo dependencies: override: - sudo pip install awscli post: - aws configure set region ap-northeast-1 test: override: - echo "Nothing to do here" deployment: production: branch: master commands: - aws s3 sync . s3://toketenakunaru.com/ --delete
toketenakunaru/circle.yml at master · takeshe12/toketenakunaru · GitHub
build成功しました。(何度か失敗してるのはご愛嬌。)
おわりに
これにてgitのmasterにpush時に自動的にCircleCIがまわって本番環境(S3)にdeployされるようになりました。とっても楽ですね。もっとちゃんとするならstaging環境を作ってそこでテストして、okならマージとしてもよいかもしれませんね。
しばらくは自分のHPをおもちゃにいろいろ遊んでいきます!無事やりたいことができてよかった。
以下の記事が大変参考になりました。