본문 바로가기
기타개발/GitHub Actions

GitHub Actions #3 - Starting with preconfigured workflow templates

by 궝테스트 2020. 3. 26.

# GitHub Actions 번역하며 요약하기

https://help.github.com/en/actions/getting-started-with-github-actions/starting-with-preconfigured-workflow-templates

 

Starting with preconfigured workflow templates - GitHub Help

Starting with preconfigured workflow templates GitHub provides preconfigured workflow templates to automate your workflow or create a CI workflow for specific languages and frameworks. GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team,

help.github.com

 

0. About workflow templates

  • 깃헙 워크플로우는 워크플로우를 자동화 하거나 특정 언어와 프레임워크에 대한 CI 워크플로우를 생성하기위해 미리 구성된 워크플로우 템플릿을 제공한다.
  • 깃헙은 코드를 분석하고 레파지토리에 가장 적합한 CI 템플릿을 보여준다
  • 예를들어 레파지토리에 Node.js 코드가 있다면, Node.js 프로젝트를 위한 제안을 볼 수 있다
  • action/starter-workflows 레파지토리에서 CI 템플릿의 전체 리스트 볼 수 있으며,
    automation templates 에서 워크플로우 자동화를 위한 템플릿도 찾을 수 있다

 

1. Adding your first workflow template

 

1. 본인의 깃헙 레파지토리 메인 페이지에서 'Action' 탭 선택

 

2. 자동으로 언어와 맞는 워크플로우 템플릿이 추천된다. 'Set up this workflow' 선택

 

3. 그럼 'repository-name/.github/workflows/blank.yml' 파일이 기본으로 작성된 페이지로 랜딩된다

  • 워크플로우 문법 확인 : Workflow syntax
  • 워크플로우 파일을 작성 후 커밋한다
  • Action 파일도 '/.github/actions/action.yml' 에 작성해서 step.uses 에 명세할 수 있다

 

  # 워크플로우의 이름
  name: CI

  # 필수. master branch 에서 아래 이벤트 (push, pull_request) 가 발생하면 jobs 를 실행한다

  # branch 생략 가능

  on:

     push:

         branches: [ master ]

     pull_request:

         branches: [ master ]

 

  # on 에서 정의한 이벤트가 발생했을 때 실행되며 워크플로우는 하나 이상의 job 으로 구성된다

  # 기본적으로 병렬로 실행되며,

  # 순차적으로 실행하려면 해당 job 을 사용하여 다른 job 에 대한 종속성을 job_id 키워드를 사용하여 정의하면 된다

  # 각 job 에는 job 과 연결 할 id 가 있어야 한다

  jobs:

      # 이 워크플로우는 build 라는 job_id 를 가진 한개의 job 으로 이루어져있다

      # job_id 는 문자나 _ 로 시작하거나 영숫자, -, _ 만 포함해야 한다

      build:

          # 각 job 은 아래 작성한 runs-on 환경에서 실행된다

          # runs-on YAML 워크플로우 라벨

          runs-on: ubuntu-latest

 

         # job 에는 step 이라는 순차적인 task 를 포함한다

         # step 은 명령 및 설정 작업을 실행하거나, 본인/public 레파지토리 또는 도커 레지스트리에서 공개된 action 을 실행할 수 있다

         # 모든 step 이 action 을 실행하지 않지만 모든 action 은 step 으로 실행된다

         # 각 step 은 runner 환경에서 자체 프로세스로 실행되고 워크스페이스와 파일시스템에 액세스할 수 있다

         # step 자체 프로세스로 실행되기 때문에, 환경 변수에 대한 변경 사항은 step 사이에 유지되지 않는다

         # 깃헙은 job 을 설정하고 완성하기 위해 빌트인된 step 을 제공한다

         # 워크플로우 사용량 제한 내에서 무제한으로 step 을 실행할 수 있다

          steps:

          # job 에서 step 의 일부로 실행 할 action 을 선택한다

          # action 은 재사용가능한 코드의 단위이다

          # 워크플로우, public 레파지토리 또는 공개된 도커 컨테이너 이미지와 동일한 레파지토리에 정의된 action 을 사용할 수 있다

          # Git ref, SHA 또는 도커 태그 번호를 사용하여 action 의 버전을 포함할 것을 권장한다

          # 버전을 지정하지 않으면 action 의 소유주가 업데이트를 배포하면 워크플로우가 깨지거나 예기치 못한 동작이 발생할 수 있다

          # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it

          - uses: actions/checkout@v2

 

          # 깃헙에 보여지는 step 의 이름으로 지정하지 않으면 기본 텍스트로 설정된다

          - name: Run a one-line script

             # OS 의 shell 을 사용하여 command-line 을 실행한다 (기본적으로 비 로그인 shell 을 시행한다)

             # 또한 사용자 지정 shell 을 사용할 수 있다

             # 각 run 키워드는 runner 환경에서 새로운 프로세스와 shell 을 나타낸다

             run: echo Hello, world!

 

          # 멀티 command-line 은 동일한 shell 에서 실행된다

          - name: Run a multi-line script

             run: |

               echo Add other actions to build,

               echo test, and deploy your project.

 

 

2. 워크플로우 확인하기

위 파일에서 작성한 이벤트 중 master 에 push 를 하는걸로 테스트해본 후,  
'Action' 탭으로 가보니 위에 만든 'CI' 라는 워크플로우가 생겨있다
develop 브랜치에서 'Create blank.yml' 이라는 파일을 master 브랜치로 커밋 & 푸시하였다 라는 정보가 나온다

 

 

해당 이벤트를 눌러서 상세 페이지로 진입하면 아래와 같다.
워크플로우 파일 탭을 누르면 위에서 작성한 blank.yml 파일을 수정할 수 있다.
'build' 라는 job_id 를 누르면 실행된 job 의 정보를 자세히 볼 수 있다

 

댓글