Push에서 GitHub에 이르는 경우 AWS CodeCommiit와 분기 동기화

기존에는 GiitHub에 Push를 적용할 때 AWS CodeCommiit와 창고를 동기화하는 방법을 총괄했다.
https://zenn.dev/itouuuuuuuuu/articles/9fd140ee7862f2
그러나 이 방법은 창고 전체를 거울로 옮기는 것이기 때문에 특정한 지점만 동기화할 때 사용할 수 없다.
이번에는 CodeCommiit의 임의 지점에서 (위) GiitHub Actions에서 동기화하는 방법을 논의했기 때문에 GiitHub의 임의 지점을 미리 기록합니다.

GiitHub의 Secrets 등록에 필요한 정보


GiitHub의 관리 화면에서 "Settings"-> "Secrets"에서 필요한 정보를 등록합니다.
github secrets
등록 정보는 다음과 같습니다.
  • CODECOMMIT_REPO_URL공유 저장소의 URL
  • CODECOMMIT_SSH_CONFIGSSH 연결에 대한 구성 정보
  • Host git-codecommit.*.amazonaws.com
      User {CodeCommitのSSHキーID}
      IdentityFile ~/.ssh/id_rsa
      StrictHostKeyChecking no
    
  • CODECOMMIT_SSH_PRIVATE_KEYSSH 비밀 키
  • GiitHub Action 설정


    다음 코드를 GiitHub Action의 워크플로우로 등록합니다.
    name: "Deploy: main"
    
    on: [ workflow_dispatch ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
        timeout-minutes: 5
    
        steps:
          - name: Checkout
            uses: actions/checkout@v2
            with:
              fetch-depth: 0
    
          - name: Extract branch name
            shell: bash
            run: echo "::set-output name=branch::${GITHUB_REF#refs/heads/}"
            id: extract_branch
    
          - name: Push to AWS CodeCommit
            env:
              CODECOMMIT_HOST: git-codecommit.ap-northeast-1.amazonaws.com # ap-northeast-1の部分は自身のリージョンを指定
              CODECOMMIT_REPO_URL: ${{ secrets.CODECOMMIT_REPO_URL }}
              CODECOMMIT_SSH_CONFIG: ${{ secrets.CODECOMMIT_SSH_CONFIG }}
              CODECOMMIT_SSH_PRIVATE_KEY: ${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY }}
              BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
            shell: bash
            run: |
              mkdir ~/.ssh
              echo "$CODECOMMIT_SSH_PRIVATE_KEY" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
              echo "$CODECOMMIT_SSH_CONFIG" > ~/.ssh/config && chmod 600 ~/.ssh/config
              ssh-keyscan "$CODECOMMIT_HOST" >> ~/.ssh/known_hosts && chmod 600 ~/.ssh/known_hosts
              git remote add codecommit "$CODECOMMIT_REPO_URL"
              git push codecommit ${{ env.BRANCH_NAME }}:main -f # mainの部分はCodeCommitの同期したいブランチを指定
    

    GiitHub Action에서 동기화 시작


    GiitHub Actions에서 CodeCommiit와 동기화할 분기를 선택하고 "Run workflow"를 실행하면 임의의 분기를 CodeCommiit의main 분기로 push할 수 있습니다.
    워크플로의 CodeCommiit에서 동기화하려는 분기를 변경하여 분기와 동기화할 수 있습니다.
    github actions

    좋은 웹페이지 즐겨찾기