GitHub 작업 소개

GitHub 작업은 특정 이벤트가 발생할 때마다 하나 이상의 작업을 실행하는 방법입니다. 예를 들어 PR이 열릴 때마다(이벤트) 검토자(작업)를 설정합니다.

어떻게 사용합니까?



워크플로우 생성. Aworkflow는 (a) 수신하려는 이벤트를 정의하고 (b) 실행할 작업을 설명하는 .yml 파일입니다. Ajob는 앞에서 언급한 작업으로 하나 이상의 단계로 구성됩니다. 이제 astep는 명령 또는 작업이지만 조금 더 자세히 설명합니다.

이러한 정의를 명확히 하기 위해 간단한 워크플로를 살펴보겠습니다.




새롭거나 업데이트된 PR이 있을 때마다 실행되고 두 개의 작업을 실행하는 PR 확인이라는 워크플로입니다(여기서는 병렬이지만 순차적으로 실행하도록 구성할 수 있음).



  • 이름이 check-pr-quality인 첫 번째 작업에는 6단계가 있으며 각 단계에서 echo 명령을 실행하여 메시지를 인쇄합니다.
  • set-reviewer라는 이름의 두 번째 작업에는 2단계가 있으며 첫 번째 작업과 마찬가지로 각 단계에서 echo 명령을 실행하여 메시지를 인쇄합니다.


분명히 이것은 가치 있는 워크플로우는 아니지만 유효한 워크플로우입니다! .github/workflows 폴더(여기에 모든 워크플로우가 추가되어야 함) 아래의 리포지토리 내 .yml 파일에 복사하여 붙여넣은 다음 새 PR을 생성하십시오. GitHub로 푸시한 후 작업 탭으로 이동하면 다음과 유사한 내용이 표시됩니다.





내부적으로 일어나는 일은 각 작업에 대해 다음과 같습니다.



  • Ubuntu의 깨끗한 새 인스턴스(runs-on 키로 구성됨)가 가상 시스템에서 부팅 중임
  • 몇 가지 필요한 환경 변수를 설정 중이며
  • 정의된 실행을 시작할 준비가 된/home/runner/work/our-repo-name/our-repo-name(기억할 필요 없음, GITHUB_WORKSPACE 환경 변수를 사용할 수 있음) 경로에 "착륙"합니다. 계단

단계



앞서 언급했듯이 단계는 명령 또는 작업이 될 수 있습니다.



Acommand는 OS 내에서 실행할 수 있는 모든 것입니다. 우리는 다양한 도구가 설치된 가상 머신 안에 있다는 사실을 잊지 말자. 우리는 우리가 본 것과 같은 간단한 bash 명령(echo)에서 추가 소프트웨어를 설치하고 실행하는 데 도움이 되는 여러 명령까지 실행할 수 있습니다. 예:



- run: |
    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh" && sdk install kotlin


이 스니펫은 sdkman을 설치한 다음 이를 사용하여 kotlin을 설치합니다. 이제 Ubuntu 인스턴스에 Kotlin이 생겼습니다!



Anaction은 몇 가지 명령으로 충분하지 않을 때 사용할 것입니다. 입력을 받고 출력을 생성하며 우리가 원하는 거의 모든 작업을 수행하도록 프로그래밍할 수 있는 본격적인 프로그램과 같은 작업을 생각해 보세요.



모든 echo 명령을 이전에 설명한 작업을 실제로 수행할 작업 및 명령으로 대체하여 위 워크플로의 첫 번째 작업을 변경해 보겠습니다.



<script id="gist-ltag"src="https://gist.github.com/le0nidas/3d13709c640a144a132cd01528f0b7ec.js"/>


이전과 마찬가지로 6단계로 구성된 작업을 실행하는 워크플로가 있습니다.



이번에만 action을 사용하여 리포지토리를 GITHUB_WORKSPACE에 다운로드하고 action을 사용하여 Java 환경을 설정하고 작업 공간에 있는 프로젝트를 컴파일하고 테스트하기 위한 몇 가지 명령을 사용합니다(gradlew는 프로젝트의 일부) 및 ktlint를 실행하고 오류가 있는 경우 PR에 의견을 제시하는 action.



요약



여러 명령을 실행하고 결합하여 결과를 생성하는 터미널에 있는 것과 같다고 생각하십시오. 작업은 터미널이고 작업은 해당 명령입니다. 프로세스에서 시간이 걸리는 모든 것을 자동화하기 위해 혼합하고 일치시킵니다.



GitHub 작업에 대한 자세한 내용은 해당 항목documentation을 읽거나 일부 항목official training을 수행하거나 사용 가능한 모든 코드actions in the marketplace를 읽어보세요!

좋은 웹페이지 즐겨찾기