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

GitHub Actions #7 - Using environment variables

by 궝테스트 2020. 3. 30.

# GitHub Actions 번역하며 요약하기
https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables

 

Using environment variables - GitHub Help

Using environment variables GitHub sets default environment variables for each GitHub Actions workflow run. You can also set custom environment variables in your workflow file. GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team, GitHub E

help.github.com

  • 깃헙은 각 깃헙 액션 워크플로우 실행에 대한 기본 환경 변수를 설정한다
  • 워크플로우 파일에서 커스텀 환경변수도 설정할 수 있다

 

0. About environment variables

  • 깃헙은 워크플로우의 매 step 마다 사용가능한 기본 환경변수를 설정한다
  • 환경변수는 대소문자를 구분한다
  • Action 또는 steps 에서 실행하는 커맨드는 환경변수를 생성, 읽기 및 수정할 수 있다
  • 커스텀 환경변수를 설정하려면 워크플로우 파일에서 변수 명시하는게 필요하다
  • jobs.<job_id>.steps.envjobs.<job_id>.env, and env 키워드를 사용하여
    step, job 또는 전체 워크플로우에 대한 환경변수를 정의할 수 있다
steps:
  - name: Hello world
    run: echo Hello world $FIRST_NAME $middle_name $Last_Name!
    env:
      FIRST_NAME: Mona
      middle_name: The
      Last_Name: Octocat
  • 워크플로우에서 다음 step 이 사용할 수 있는 환경변수를 설정하기위해 'set-env' 커맨드를 사용할 수 있다 
  • 'set-env' 커맨드는 action 으로 직접 사용되거나 'run' 키워드를 사용하여 워프플로우 파일에서 shell 커맨드로 사용할 수 있다
    참고) Workflow commands for GitHub Actions

 

1. Default environment variables

  • 파일 시스템에 접근하기 위해 하드코딩된 파일 경로보다 환경변수를 사용하는 action 을 추천한다
  • 깃헙은 모든 runner 환경에서 사용하기위한 action 환경변수를 설정한다
환경변수 설명
HOME 사용자 데이터를 저장하는데 사용되는 깃헙 홈 경로
GITHUB_WORKFLOW 워크플로우 이름
GITHUB_RUN_ID 레파지토리 내에서 각 실행에 대한 고유번호로 워크플로우를 재실행해도 변경되지 않는다
GITHUB_RUN_NUMBER 레파지토리에서 특정 워크플로우의 각 실행에 대한 고유 번호로 워크플로우의 첫번째 실행이 1로 시작하여 각 새로운 실행마다 증가한다. 워크플로우를 재실행해도 변경되지 않는다
GITHUB_ACTION action 의 고유 아이디 (id)
GITHUB_ACTIONS 깃헙 액션이 워크플로우를 실행할 때 항상 true 로 설정한다. 이 변수는 테스트가 로컬 또는 깃헙 액션에 의해 실행될 때 구별할 수 있다
GITHUB_ACTOR 워크플로우에서 초기화된 사용자 또는 앱의 이름 (octocat)
GITHUB_REPOSITORY 소유자와 레파지토리 이름 (ex. octocat/Hello-Word)
GITHUB_EVENT_NAME 워크플로우에 트리거된 웹훅 이벤트 이름
GITHUB_EVENT_PATH 완전한 웹훅 이벤트 페이로드가 있는 파일 경로 (ex. /github/workflow/event.json)
GITHUB_WORKSPACE 깃헙 워크스페이스 디렉토리 경로로 워크플로우가 'actions/checkout action' 를 사용하는 경우 레파지토리 복사본의 하위 디렉토리를 포함한다
'actions/checkout action' 을 사용하지 않으면 디렉토리는 비어있다
(ex. /home/runner/work/my-repo-name/my-repo-name)
GITHUB_SHA 워크플로우를 트리거한 커밋의 SHA
(ex. ffac537e6cbbf934b08745a378932722df287a53)
GITHUB_REF 워크플로우를 트리거한 브랜치 또는 태그 참조
(ex. refs/heads/feature-branch-1)
이벤트 타입에 브랜치 또는 태그를 사용할 수 없으면 변수가 존재하지 않는다
GITHUB_HEAD_REF fork 한 레파지토리에만 설정하며 head 레파지토리의 분기이다
GITHUB_BASE_REF fork 한 레파지토리에만 설정하며 base 레파지토리의 분기이다

 

2. Naming conventions for environment variables

  • 깃헙 내부 사용을 위해 'GITHUB_' 환경 변수가 prefix 예약되어있고
    환경변수 또는 secret 을 'GITHUB_' prefix 로 설정하면 에러가 발생한다
  • 파일시스템 위치를 가리키도록 설정한 새로운 환경변수에는 '_PATH' 접미사가 있어야한다
    'home' 과 'workspace' 라는 단어는 이미 위치를 의미하기 때문에 HOME 과 GITHUB_WORKSPACE 기본 변수는
    위 규칙에서 예외이다

댓글