Push에서 GitHub에 이르는 경우 AWS CodeCommiit와 분기 동기화
그러나 이 방법은 창고 전체를 거울로 옮기는 것이기 때문에 특정한 지점만 동기화할 때 사용할 수 없다.
이번에는 CodeCommiit의 임의 지점에서 (위) GiitHub Actions에서 동기화하는 방법을 논의했기 때문에 GiitHub의 임의 지점을 미리 기록합니다.
GiitHub의 Secrets 등록에 필요한 정보
GiitHub의 관리 화면에서 "Settings"-> "Secrets"에서 필요한 정보를 등록합니다.
등록 정보는 다음과 같습니다.
CODECOMMIT_REPO_URL
공유 저장소의 URLCODECOMMIT_SSH_CONFIG
SSH 연결에 대한 구성 정보Host git-codecommit.*.amazonaws.com
User {CodeCommitのSSHキーID}
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
CODECOMMIT_SSH_PRIVATE_KEY
SSH 비밀 키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에서 동기화하려는 분기를 변경하여 분기와 동기화할 수 있습니다.
Reference
이 문제에 관하여(Push에서 GitHub에 이르는 경우 AWS CodeCommiit와 분기 동기화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/itouuuuuuuuu/articles/3d9ba9cd92cc33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)