GitHub 작업을 사용하여 업데이트합니다.NET 종속성 자동 생성
나는 이것이 가장 놀라운 화제가 아니라는 것을 알고 있지만, 그것은 나를 위해 현실 세계의 문제를 해결했고, 나도 너희들 중 일부를 희망한다.
저는 백엔드 엔지니어로 C#를 많이 썼습니다. 이것은 제가 최종적으로 얻은 해결 방안이 NuGet 소프트웨어 패키지에 의존한다는 것을 의미합니다.이것들은 확실히 수시로 업데이트가 필요하다. 왜냐하면 다른 엔지니어들이 놀라운 일을 하고 있기 때문이다. 왜냐하면 그들의 소프트웨어 패키지를 최신으로 유지하고 있기 때문이다. 나는 나의 의존 관계를 최신으로 유지하는 것을 좋아한다.이것이 바로 내가 자신의 문제점을 발견한 것이다. 지점을 만들고 가방을 갱신하고 제출한 다음에 홍보 승인을 받아야 한다. 단지 작은 업데이트를 통과하기 위해서이다.이것은 매우 짜증나니, 나는 이 문제를 해결하고 싶다.
우리가 시작하기 전에, 이 지시들은 나에게 준 것입니까?
1단계: 계획 작업 만들기
이것은 가장 간단한 부분이며, 이 조작은 매주 한 번 실행될 것이다.너는 자신의 의사에 따라 스케줄을 바꿀 수 있다.GitHub 작업은 완전히 제 시간에 실행되지는 않지만 실행할 수 있습니다.계획 작업과 설정 계획에 대한 더 많은 정보는 GitHub Documentation을 읽고 Crontab Guru에서 예시를 보십시오.
name: Automated Dependency Updates
on:
schedule:
- cron: '0 0 * * 0'
2단계: 작업 설정
이어서 우리는 일을 시작한다.이것이 바로 우리가 운행할 절차를 정의하는 곳이다.이 작업은 최신 버전의 Ubuntu에서 실행됩니다.다음은 기본
actions/checkout
단계와 설치할 actions/setup-dotnet
버전을 설정합니다.Dell 솔루션에 필요한 NET SDK필요해.이 일은 순익이 6점이다.너는 반드시 AUTOMATED_DEPENDENCY_UPDATES_TOKEN
이 계산할 때의 영패를 바꾸었다는 것을 알아차렸을 것이다. 이것은 5단계에서 매우 편리하다. 나는 아래가 무엇인지 설명할 것이다. dependencies:
name: Update Dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
with:
token: ${{ secrets.AUTOMATED_DEPENDENCY_UPDATES_TOKEN }}
- name: Setup
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
3단계: 종속성 업데이트
NuGet 패키지를 업데이트하는 기본 단계입니다.먼저 dotnet-outdated tool을 설치한 다음 추가 조치가 필요한지 확인해야 합니다.만약 우리가
dotnet outdated
을 실행하고 업데이트할 가방이 없다면, 우리는 이 작업의 나머지 절차를 취소해야 한다.이것은 완성할 수 있지만 검증 단계에서 출력 변수를 설정하면 작업 중의 다른 모든 단계에서 이 변수를 사용하여 실행해야 하는지 여부를 확인할 수 있습니다.업데이트가 없으면 출력 변수를
false
으로 설정합니다.업데이트를 진행하는 경우
dotnet outdated -u
을 실행하여 NuGet을 강제로 업데이트합니다.성공하면 다음 절차를 실행하기 위해 출력 변수를 true
으로 설정합니다.- name: Tools
id: tools
run: dotnet tool install --global dotnet-outdated-tool
- name: Update
id: update
run: |
OUTPUT=$(dotnet outdated)
if [[ $OUTPUT =~ "No outdated dependencies" ]]; then
echo "::set-output name=updated::false"
else
dotnet outdated -u
echo "::set-output name=updated::true"
fi
shell: bash
4단계: 테스트 실행
NuGet 패키지를 업데이트한 후 코드가 손상되지 않았는지 확인해야 합니다.이 점을 실현하는 가장 좋은 방법은 해결 방안을 구축하고 테스트하는 것입니다.이것은 해결 방안에서 모든 테스트를 실행하는 간단한
dotnet test
명령입니다.필요에 따라 이 문장을 업데이트할 수 있습니다. 기본적으로 모든 테스트를 실행해야 합니다.- name: Test
id: test
if: ${{ steps.update.outputs.updated == 'true' }}
run: dotnet test -c Release -v minimal
5단계: 제출 및 푸시
마지막 단계는 NuGet 패키지 업데이트를 커밋하고 푸시하는 것입니다. 테스트가 통과되면 이 절차를 실행하고 자동 패키지 업데이트를 완료합니다.우리가 결산 단계에서
AUTOMATED_DEPENDENCY_UPDATES_TOKEN
을 사용할 때, 이것은 내장된 GITHUB_TOKEN
이 후속 작업 흐름을 촉발하지 않는다는 사실을 빙빙 돌려서 하기 위해서이다.코드를 체크 아웃할 때 특정한 Personal Access Token을 생성하면 코드를 전송한 후 다른 자동 작업 흐름이 있으면 터치합니다.마지막으로, 우리는 제출 메시지와 저자를 설정합니다.이렇게 하면 설정 작업이 아닌 GitHub 작업 사용자에 대한 등록이 제출됩니다.
- name: Push
id: push
if: ${{ steps.update.outputs.updated == 'true' }}
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
commit_user_name: github-actions[bot]
commit_user_email: 41898282+github-actions[bot]@users.noreply.github.com
commit_message: Automated Dependency Updates
우리 망했어!
이제 다른 저장소에서 사용할 수 있도록 모든 절차를 간단한 요점에 두겠습니다.이것도 네가 이 무료한 임무를 자동화하는 데 도움을 줄 수 있기를 바란다.이것은 다른 CI/CD 도구에 적용됩니다.이러한 개념은 동일하며 서명, 갱신, 테스트, 전송 과정을 따르기만 하면 된다.
뒷받침
당신이 이것을 좋아한다면 GitHub에서 나의 다른 예시를 보고 Buy Me a Coffee에서 나를 지지할 것을 고려하십시오
Reference
이 문제에 관하여(GitHub 작업을 사용하여 업데이트합니다.NET 종속성 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stphnwlsh/using-github-actions-to-update-net-dependencies-automatically-4chb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)