GiitHub Actions에서 "분기 생성 → json 파일 업데이트 → 제출 → 요청 제출"을 실행합니다.
14848 단어 GitGitHubGitHub Actionstech
작업 절차만 실행하면 '분기 생성 → json 파일 업데이트 → 제출 → 제출 요청' 을 실행할 수 있습니다.
이번에 예를 들면, json 파일 업데이트 부분에 대해 하드 코드가 진행되었다.
작업흐름
워크플로우는 다음과 같습니다.
.github/workflows/create_pr.yml
name: "Create PR"
on: [ workflow_dispatch ]
env:
JSON_FILE_PATH: sample.json
PR_TITLE: プルリクエストタイトル
PR_LABEL: hoge,foo
PR_TEMPLATE: .github/PULL_REQUEST_TEMPLATE.md
DEST_BRANCH: main
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set current datetime as env variable
env:
TZ: 'Asia/Tokyo'
run: echo "CURRENT_DATETIME=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
- name: Create new branch
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git switch -c fix/hoge_${{ env.CURRENT_DATETIME }}
git push -u origin fix/hoge_${{ env.CURRENT_DATETIME }}
# 任意の更新処理
- name: Update json file
run: |
cat ${{ env.JSON_FILE_PATH }} | jq '.+ {"user":{"name": "hoge","age": 30}}' > tmp && mv tmp ${{ env.JSON_FILE_PATH }}
- name: Add and Commit
uses: EndBug/add-and-commit@v7
with:
branch: fix/hoge_${{ env.CURRENT_DATETIME }}
message: ${{ env.PR_TITLE }}
add: ${{ env.JSON_FILE_PATH }}
- name: Create pull request
uses: repo-sync/pull-request@v2
with:
source_branch: fix/hoge_${{ env.CURRENT_DATETIME }}
destination_branch: ${{ env.DEST_BRANCH }}
pr_title: ${{ env.PR_TITLE }}
pr_template: ${{ env.PR_TEMPLATE }}
pr_label: ${{ env.PR_LABEL }}
github_token: ${{ secrets.GITHUB_TOKEN }}
각 처리에 대한 설명
현재 시간 가져오기
- name: Set current datetime as env variable
env:
TZ: 'Asia/Tokyo'
run: echo "CURRENT_DATETIME=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
현재 시간CURRENT_DATETIME
을 환경 변수로 설정합니다.이 처리는 필수적이지 않지만, 제작된 지점 이름에 다른 지점 이름을 덮어쓰지 않으려는 의도가 있습니다.
브랜치 생성
- name: Create new branch
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git switch -c fix/hoge_${{ env.CURRENT_DATETIME }}
git push -u origin fix/hoge_${{ env.CURRENT_DATETIME }}
새 브랜치를 생성합니다.분기 이름은
fix/hoge_${{ env.CURRENT_DATETIME }}
이며 현재 시간 및 기타 분기 이름은 포함되지 않습니다.이 지점의 명칭은 임의이다.
파일 업데이트
# 任意の更新処理
- name: Update json file
run: |
cat ${{ env.JSON_FILE_PATH }} | jq '.+ {"user":{"name": "hoge","age": 30}}' > tmp && mv tmp ${{env.JSON_FILE_PATH }}
이것은 예로 열거한 처리다.json 파일이 업데이트되었지만, 실제로는 inputs 폼에서 입력하거나 GiitHubAction용 API 업데이트하고자 하는 값을 제출할 수 있습니다.
커밋
- name: Add and Commit
uses: EndBug/add-and-commit@v7
with:
branch: fix/hoge_${{ env.CURRENT_DATETIME }} # ブランチ名
message: ${{ env.PR_TITLE }} # コミットメッセージ
add: ${{ env.JSON_FILE_PATH }} # addするファイル
업데이트된 파일을 제출합니다.EndBug/add-and-commit@v7라는 프로그램 라이브러리를 사용합니다.
제출처에서 방금 만든 지점을 지정하고 메시지를 등록합니다.
재설정 요청
- name: Create pull request
uses: repo-sync/pull-request@v2
with:
source_branch: fix/hoge_${{ env.CURRENT_DATETIME }} # プルリクエストを作成するブランチ
destination_branch: ${{ env.DEST_BRANCH }} # マージ先のブランチ
pr_title: ${{ env.PR_TITLE }} # プルリクエストのタイトル
pr_template: ${{ env.PR_TEMPLATE }} # プルリクエストのテンプレート
pr_label: ${{ env.PR_LABEL }} # プルリクエストのラベル(カンマ区切りで複数指定可能)
github_token: ${{ secrets.GITHUB_TOKEN }}
호출 라이브러리 repo-sync/pull-request.필요한 항목을 지정하고 요청을 만들 수 있습니다.
사용PULL_REQUEST_TEMPLATE도 가능합니다.
Reference
이 문제에 관하여(GiitHub Actions에서 "분기 생성 → json 파일 업데이트 → 제출 → 요청 제출"을 실행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/itouuuuuuuuu/articles/ad75acc2a22828텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)