리포지토리 B를 수정하는 동안 리포지토리 A를 변경하시겠습니까? Github 작업은 여기
예는 다음과 같습니다.
보시다시피 저는 새 복사본이나 기존 복사본의 수정 사항이 푸시될 때마다 파일 '파일'이 리포지토리 B에 복제되기를 원했습니다.
그래서 이 문제에 Github Actions를 사용하기로 했습니다. Github Actions는 Github 이벤트에서 무언가를 할 수 있는 도구를 제공합니다. 우리의 경우 이벤트는 내 저장소로 푸시입니다.
Github 작업에서는 프로젝트 경로의 ./github/workflows 폴더에 .yaml 파일을 생성하기만 하면 됩니다. 단계를 통해 '작업'을 나누어 다음 접근 방식을 취하기로 결정했습니다.
푸시
ProjectA 및 ProjectB 복제
ProjectA에서 ProjectB로 파일을 복제하고 ProjectB로 푸시합니다.
Push -> Clone ProjectA -> Clone ProjectB -> Copy from ProjectA the file and paste it in ProjectB -> Commit and Push on ProjectB
.yaml 파일을 살펴보겠습니다.
on: push
jobs:
replicate-file:
runs-on: ubuntu-latest
name: Replicate File
steps:
- name: Checkout Project A
uses: actions/checkout@v2
with:
path: ./projectA
- name: Checkout Project B
uses: actions/checkout@master
with:
repository: tomassirio/projectB
token: ${{ secrets.ACTIONS_TOKEN }}
path: ./projectB
- name: Copy/Create file
run: |
FILE=./projectA/file
if [ -f "$FILE" ]; then
echo "Copying $FILE"
cp -R ./projectA/file ./projectB
else
echo "Creating $FILE"
touch ./projectB/file
fi
- name: Push Project B
run: |
cd ./projectB
git add .
git config user.name github-actions
git config user.email [email protected]
git commit -am "File Replicated from Project A"
git push
Github Actions의 기술적 측면에 관심이 없다면 건너뛸 수 있는 것
보시다시피. 기본 .yaml 파일입니다. 첫 번째 줄은 작업을 트리거할 이벤트를 결정합니다. 다음으로 작업을 정의합니다(모듈화할 수 있음). 그런 다음 각 작업에서 작업이 수행할 단계를 정의합니다.
이 경우 우분투 컨테이너 생성을 요청합니다. 해당 컨테이너의 ./projectA 경로에서 projectA 리포지토리를 체크아웃하고 ./projectB 경로에서 projectB 리포지토리를 복제합니다. 중요 Github에서 PAT(개인 액세스 토큰)를 정의하고 PAT를 값으로 사용하여 projectA 리포지토리에 비밀을 생성해야 합니다.
세 번째와 네 번째 단계는 거의 자명합니다. 파일이 존재하면 projectA에서 projectB로 복사하고, 존재하지 않으면(어떤 이유로든) projectB에 파일을 생성합니다. 마지막으로 git con projectB를 사용하여 파일을 푸시합니다.
동작 확인
마지막으로 이벤트가 트리거되면 Github가 뒤에서 어떻게 작동하는지 확인하고 싶을 것입니다. 따라서 Github의 Actions 탭으로 이동하여 워크플로가 올바르게 형식화된 경우(손가락 교차) 다음과 같은 창이 표시됩니다.
물론 파일이 projectB 리포지토리에 복제되었는지 확인하고 싶을 것입니다(물론 아무도 그들의 솔루션이 처음 100번에서 작동한다고 믿지 않기 때문입니다)
하지만 이번에는 내 것이 :D
확인하고 복제하고 가지고 놀고 싶다면 여기에 리포지토리를 남겨 두겠습니다.
Project A
Project B
Reference
이 문제에 관하여(리포지토리 B를 수정하는 동안 리포지토리 A를 변경하시겠습니까? Github 작업은 여기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tomassirio/make-changes-on-repository-a-while-modifying-repository-b-github-actions-is-here-50g8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)