GitHubActions의 workflow_dispatch를 만져 보았습니다 (이어서 Github Container Registry도)
소개
마침내 GitHub Actions에서 workflow 단위의 수동 실행이 가능하게 되었다 그래서 workflow_dispatch를 사용해 보았습니다.
김에 GitHub Container Registry가 베타에서 나왔습니다. 그렇기 때문에 이쪽도 시험해 보았습니다.
이번에 작성한 리포지토리는 htps : // 기주 b. 코 m / 요헤이 - 야마자키 / rkf
GitHub Container Registry 사용 준비
GitHub Package Registry에서 GitHub Container Registry로 마이그레이션
Add your new container registry authentication personal access token (PAT) as a GitHub ACtions secret. GitHub Container Registry does not support using GITHUB_TOKEN for your PAT so you must use a different custom variable, such as CR_PAT. For more information, se storing encrypted secrets."
GitHub Container Registry는
GITHUB_TOKEN
를 지원하지 않으므로 개인 액세스 토큰을 만들어야합니다. 필요한 권한은 read:packages
, write:packages
, delete:packages
의 세 가지입니다.작성한 토큰을 대상 리포지토리의 Settings 탭의 Secrets에 등록합니다. 이번에는
CR_PAT
로 등록했다.이번 workflow 내용
이번 workflow는 이하에서 수동 실행으로 GitHub Container Registry에 push하는 workflow이다. 또, workflow내에서 input의 값을 참조할 수 있으므로, 수동 실행시에 tag명을 변경하면 Image의 tag를 변경할 수 있는 사양을 추가해 보았다.
name: manual trigger for push to GitHub Container Registry
on:
workflow_dispatch:
inputs:
tag:
description: Image tag
default: master
env:
DOMAIN: ghcr.io
jobs:
push-dhcr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login GitHub Container Registry
run: docker login ${DOMAIN} -u ${GITHUB_ACTOR} -p ${{ secrets.CR_PAT }}
- name: Build image
run: docker build -f Dockerfile -t ${DOMAIN}/${{ github.repository_owner }}/centos:${{ github.event.inputs.tag }} .
- name: Push image to GitHub Container Registry
run: docker push ${DOMAIN}/${{ github.repository_owner }}/centos:${{ github.event.inputs.tag }}
workflow_dispatch 사용
Actions 탭에서 workflow_dispatch를 사용하여 workflow를 선택합니다. 이번에는
manual trigger for push to GitHub Container Registry
를 선택하고 Run workflow
를 클릭하십시오.
workflow를 실행하는 브랜치와 inputs로 설정한 값을 지정할 수 있는 부분과 workflow를 실행하는 버튼이 나오므로 확인한 후 workflow를 실행해 보면 화면이 새로 고쳐지고 조금 후에 수동으로 실행한 workflow 실행 도중 결과가 표시되었습니다.

GitHub Container Registry에 push되어 있는지 확인
Github Container Registry 쪽을 확인해 보면, 무사 push 되어 있었다.

여담이지만 GitHub Container Registry는 리포지토리에 의존하지 않기 때문에 소유자의 패키지 탭에만 표시됩니다.
감상
workflow_dispatch에 관해서는, workflow 단위와 임의의 브랜치, 변수를 지정할 수 싶었던 기능이었으므로 좋을 것 같지만, input의 default에
github.sha
, 돌아다니는 방법을 할 필요가 있을 것 같다고 느꼈다.GitHub Container Registry에 관해서는, GitHub Package Registry에서 Docker 부분을 잘라냈다는 느낌이라고 생각하기 때문에 그런 없지만, 토큰에 대해서
GITHUB_TOKEN
가 만능? 이었던 것은 있지만, 퍼스널 액세스 토큰은 팀에서의 운용은 힘들 것 같기 때문에 GITHUB_TOKEN
사용하고 싶었다.참고문헌
Reference
이 문제에 관하여(GitHubActions의 workflow_dispatch를 만져 보았습니다 (이어서 Github Container Registry도)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-_-y/items/36ecf2ac05ecd3fd4145텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)