커뮤니티 기여를 인식하기 위해 github 워크플로를 사용하는 방법(파트-1)

최근 Developer Circles Facebook은 Open Source Immersion Program을 종료했으며 DevC Pune에서는 이 프로그램 동안 커뮤니티에서 만든 모든 PR을 인식할 수 있는 저장소를 만들려고 생각했고 동일한 리더보드가 있는 저장소를 만들기로 결정했습니다. 모든 데이터를 수집하는 것은 어려웠고 PR에 대한 데이터를 수집하고 리포지토리에 게시하는 프로세스를 쉽게 만든 GitHub 워크플로가 있습니다. 이야기로 충분합니다! 실제로 무엇을 했는지 이야기해 봅시다.

시작하기 전에 워크플로가 무엇이고 어떻게 작동하는지 이해합시다.

GitHub 워크플로란 무엇입니까?



GitHub 워크플로는 프로젝트 수명 주기를 자동화하는 데 사용되는 메커니즘입니다. Java, JavaScript 등과 같은 다른 언어에서 이벤트 처리를 기억하십니까? 예, 이것은 GitHub 이벤트와 동일합니다.
  • onClick , onHover 등 대신 PR opened , Issue opened , Issue edited
  • 등의 이벤트가 있습니다.
  • 이벤트가 발생하면 워크플로에는 실행할 jobs 목록이 있습니다. 작업에서 일부 처리를 수행하고 일부 actions 를 사용할 수 있습니다. 이는 일반 프로그래밍 언어의 함수와 같습니다.

  • GitHub 워크플로는 어떻게 작동합니까?



    모든 워크플로에는 이벤트를 식별하는 다양한 섹션과 이벤트에 따라 반응하는 작업 목록이 포함된 .yml가 있어야 합니다. yml 파일은 다른 스크립트를 호출하여 일부 처리를 수행할 수도 있습니다. 작업이 실행되면 도커 이미지와 같이 클라우드에 저장소 인스턴스가 생성되고 이제 이 인스턴스는 로컬 머신에 있는 저장소 복사본과 같습니다. 처리가 완료되면 변경 사항을 푸시해야 합니다. 변경 사항을 보려면 GitHub로 돌아가십시오. 따라서 이 인스턴스를 사용하여 터미널에서 수행하는 모든 작업을 수행할 수 있습니다.

    yml 파일 생성


  • 첫 번째 줄에서 워크플로의 이름을 지정해야 합니다.

  • name: add-project
    # This workflow gets executed when someone opens an issue for adding a project
    


    해당 워크플로가 수행하는 작업을 설명하는 주석을 추가할 수도 있습니다.
  • 다음과 같이 워크플로가 트리거되는 이벤트를 정의할 수 있습니다.

  • on:
      issues:
          types: [opened,edited]
    


    이제 jobs 목록이 나옵니다. job를 다음과 같이 정의할 수 있습니다.

    jobs:
      add_project_job:
        if: startsWith(github.event.issue.title, 'add|')
        name: add-project
        runs-on: ubuntu-latest
        steps:
    


    여기add_project_job는 작업 이름입니다. 특정 작업을 실행할지 여부를 결정하는 조건을 지정할 수도 있습니다.runs-on 매개변수는 작업을 실행하기 위해 생성될 환경을 지정합니다. 다음으로 작업 내에서 실행될 단계를 정의해야 합니다.

    이것이 GitHub 워크플로의 기본 구조입니다. 다음 파트에서 전체 워크플로에 대해 자세히 논의할 것입니다! 그때까지 계속 자동화하십시오!

    참조:



    Official Documentation
    Link to Full Code

    좋은 웹페이지 즐겨찾기