다른 리포지토리에 의존하는 Github Action 릴리스 자동화
6789 단어 actionshackathongithubopensource
문제
나는
Detekt CLI
의 새 릴리스에 의존하는 repository 을 유지합니다. Detekt CLI
의 새 버전이 있으면 여유 시간이 있을 때마다 이메일을 받고 내 저장소의 새 릴리스를 만듭니다. 이 접근 방식을 사용하여 아래 단계에 따라 새 릴리스를 만들곤 했습니다.Dockerfile
및 README.md
의 버전을 업데이트합니다. 새 릴리스의 타이밍이 중요하지만 1단계에서 2단계까지의 시간 차이는 사용자를 만족시키지 못할 수 있는 내 상황에 따라 다를 수 있음이 분명합니다. 새 릴리스의 타이밍과 내 저장소 사용자를 행복하게 유지하는 것 외에도 자동화할 수 있는 일부 작업을 수동으로 수행하는 것보다 더 흥미로운 일에 사용할 수 있는 개인적인 시간도 중요합니다.
해결책
문제를 알고 있고 단계를 기록해 놓았으므로 이 문제에 접근하는 방법을 생각할 수 있습니다. 내가 만들고 싶었던 솔루션에는 다음과 같은 기능이 필요했습니다.
Detekt CLI
의 새 릴리스를 확인하십시오. Detekt CLI
의 최신 릴리스가 내 저장소의 최신 태그와 다른 경우,Detekt CLI
및 Dockerfile
에서 README.md
버전 업데이트새로운 릴리스 브랜치를 생성하고 새로운 풀 리퀘스트를 생성하는 것은 이전에 수동으로 릴리스를 만들 때 하지 않았던 일입니다. 깨진 코드가 마스터 브랜치에 병합되지 않도록 변경 사항을 검토할 수 있도록 앞서 언급한 단계를 추가했습니다. 새 릴리스를 확인하고 my Python script을 실행하기 위해 the first workflow이 24시간마다 스크립트를 실행하고 the second workflow이 새 릴리스 분기가 생성될 때 풀 요청을 생성하는 두 개의 워크플로를 만들었습니다. 24시간마다 릴리스 스크립트를 실행하는 워크플로 외에도 GitHub 작업의 트리거
workflow_dispatch
를 사용하여 워크플로를 수동으로 실행할 수 있음을 확인했습니다.Detekt
의 출시 이력에 따르면 매월 약 2~3개의 새로운 출시가 있습니다. GitHub Actions와 Python을 사용하여 만든 간단한 솔루션으로 매월 최소 20~30분을 절약하는 것이 목표입니다. 게다가 총 시간을 훨씬 더 많이 절약할 수 있는 다른 프로젝트에서 이 솔루션을 사용할 수 있습니다.내 워크플로우
name: Create Release
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
check_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
python -m pip install --upgrade pip
if [ -f .release-manager/requirements.txt ]; then pip install -r .release-manager/requirements.txt; fi
- name: Run script
run: |
python .release-manager/create_release.py
제출 카테고리:
메인테이너 머스트해브
Yaml 파일 또는 코드 링크
natiginfo / 모두 행동 감지
모든 파일에 대해 detekt 실행
GitHub 작업: 모두 검색
실행을 위한 GitHub 작업detekt은 모범 사례를 적용하기 위한 검사입니다. Detekt는 Kotlin용 정적 코드 분석 도구입니다.
작업의 버전은 detekt versions 과 일치합니다.
사용 예
name: detekt
on:
push:
branches: [ master ]
jobs:
detekt:
runs-on: ubuntu-latest
steps:
- name: "checkout"
uses: actions/checkout@v2
- name: "detekt"
uses: natiginfo/[email protected]
CLI 매개변수 사용
name: detekt
on:
push:
branches: [ master ]
jobs:
detekt:
runs-on: ubuntu-latest
steps:
- name: "checkout"
uses: actions/checkout@v2
- name: "detekt"
uses: natiginfo/[email protected]
with:
args: --fail-fast --config detekt.yml
사용 가능한 CLI 매개변수를 확인할 수 있습니다here.
View on GitHub
종결
이 제출의 목적은 기존 도구를 활용하고 작업을 자동화하여 시간을 절약하도록 권장하는 것입니다. 보시다시피 단계를 적어두면 사용하는 도구로 쉽게 자동화할 수 있습니다. 기존actions을 확인하면 필요에 맞는 작업 흐름을 만들 수 있습니다.
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(다른 리포지토리에 의존하는 Github Action 릴리스 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/natiginfo/automating-releases-of-github-action-that-depends-on-another-repository-2mgh
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
name: detekt
on:
push:
branches: [ master ]
jobs:
detekt:
runs-on: ubuntu-latest
steps:
- name: "checkout"
uses: actions/checkout@v2
- name: "detekt"
uses: natiginfo/[email protected]
name: detekt
on:
push:
branches: [ master ]
jobs:
detekt:
runs-on: ubuntu-latest
steps:
- name: "checkout"
uses: actions/checkout@v2
- name: "detekt"
uses: natiginfo/[email protected]
with:
args: --fail-fast --config detekt.yml
Reference
이 문제에 관하여(다른 리포지토리에 의존하는 Github Action 릴리스 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/natiginfo/automating-releases-of-github-action-that-depends-on-another-repository-2mgh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)