🤝
GitHubへのPush時にAWS CodeCommitにリポジトリを同期する
AWS AmplifyでWebアプリを開発していてAWS CodeCommitへのpushをトリガーにデプロイされる、という環境で開発していたのですが、コードの管理はGitHubで行うという機会が有りました。
そのため、GitHub Actionsから任意のタイミングでAWS CodeCommitに同期してデプロイが実行されるという環境を作りたかったので、その時のメモです。
AWS CodeCommit SSHキーのアップロード
まずはAWSのIAMコンソールから、CodeCommitのSSHパブリックキーをアップロードして、SSHキーIDを取得します。
GitHubのSecretsにSSHキー情報を登録
GitHubの管理画面で、「Settings」 -> 「Secrets」から、先程取得したSSHキーIDと、SSHパブリックキーに対応するシークレットキーを登録します。
今回は例として、 CODECOMMIT_SSH_KEY_ID
にSSHキーID、 CODECOMMIT_SSH_PRIVATE_KEY
にシークレットキーを登録しました。
GitHub Actionsを設定
下記のコードを、GitHub Actionsのワークフローとして登録します。
target_repo_url
には、CodeCommitのリポジトリのURLを指定してください。
name: "Deploy"
on: [ workflow_dispatch ]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Push to AWS CodeCommit
uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url:
ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/hoge
ssh_private_key:
${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY }}
ssh_username:
${{ secrets.CODECOMMIT_SSH_KEY_ID }}
以上でGitHub Actions実行時にCodeCommitにリポジトリが同期されます。
意外と簡単ですね!
Discussion