🐥

GitHub から AWS CodeCommitへのpush-GitHub側

2022/10/20に公開

GitHubからAWS CodeCommitへのpush

概要

AWS側の続き。

GitHub Actionsを利用してブランチへのプッシュをトリガーに、

OIDC認証を利用してAWS CodeCommitへpushを行う設定手順。

GitHubのプランによってはGitHub Actionsが使えない。

  • OpenID Connect (OIDC)
  • GitHub Actions

GitHub側の設定

  1. 「set up a workflow yourself」を押して定義を作成。

定義内容

定義内容の下記の箇所をAWS側で定義した内容に置き換える。

開発ブランチとかは不要なので、mainブランチを指定。

認証系の情報

  • AWS_ROLE_ARN: arn:aws:iam::"アカウント番号":role/"ロール名"
  • AWS_REGION: リージョン

コードコミットの情報

  • CODECOMMIT_HOST: "AWS CodeCommitホスト"
  • CODECOMMIT_REPO_URL: "AWS CodeCommit HTTPSリポジトリURL"
  • CODECOMMIT_REPOSITORY: "リポジトリ名"
name: GitHubCodeCommitSync
on:
  push:
    branches: [ "main" ]
  delete:
    branches: [ "main" ]

env:
  # 認証系の情報
  AWS_ROLE_ARN: arn:aws:iam::"アカウント番号":role/"ロール名"
  AWS_REGION: リージョン
  AWSWEB_IDENTITY_TOKEN_FILE: /tmp/awscreds
  # コードコミットの情報
  CODECOMMIT_HOST: "AWS CodeCommitホスト"
  CODECOMMIT_REPO_URL: "AWS CodeCommit HTTPSリポジトリURL"
  CODECOMMIT_REPOSITORY: "リポジトリ名"

permissions:
  id-token: write
  contents: read
jobs:
  aws-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout.
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: AWS Configure Credentials.
        uses: aws-actions/configure-aws-credentials@v1-node16
        with:
          aws-region: ${{ env.AWS_REGION }}
          role-to-assume: ${{ env.AWS_ROLE_ARN }}
          role-session-name: githubActionsAession

      - name: Configure git
        run: |
          git config --global credential.helper '!aws codecommit credential-helper $@'
          git config --global credential.UseHttpPath true

      - name: Push to AWS CodeCommit
        run: |
          git remote add codecommit ${{ env.CODECOMMIT_REPO_URL }}${{ env.CODECOMMIT_REPOSITORY }}
          git push codecommit main:main -f

保存

  1. 「Start commit」ボタンを押下。
  2. 「Commit new file」ボタンを押下。
  3. Actionsが実行される。

Actions 実行結果

AWS CodeCommit

リポジトリを確認

GitHubからプッシュされている事を確認。

GitHubからAWS CodeCommitへプッシュする事が出来た。

終わり。

Discussion