GitHub Actions 환경 변수 추가하기

GitBeginner
지금 연습하기

소개

GitHub Actions 에서 환경 변수 (environment variables) 는 워크플로 (workflow) 의 단계 (step) 에서 사용할 수 있는 키 - 값 쌍입니다. 환경 변수는 전체 워크플로, 특정 작업 (job), 또는 특정 단계에 대해 정의할 수 있습니다.

본 랩 (lab) 에서는 다음 사항을 학습합니다.

  1. GitHub Actions 워크플로 파일을 생성합니다.
  2. 워크플로 수준에서 환경 변수를 정의합니다.
  3. 단계에서 환경 변수에 접근하고 사용합니다.
  4. 변수를 업데이트하고 워크플로를 다시 트리거합니다.

이 랩은 이전 랩에서 생성한 저장소 (repository) 를 기반으로 합니다. github-actions-demo 저장소를 클론하고 환경 변수를 사용하는 워크플로를 생성할 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

'Hello'로 설정된 GREETING 변수와 함께 env 섹션 추가하기

이 단계에서는 리포지토리를 클론하고 전역 환경 변수가 포함된 새로운 GitHub Actions 워크플로 파일을 생성합니다.

  1. github-actions-demo의 GitHub 리포지토리 페이지에서 녹색 Code 버튼을 클릭합니다.
  2. HTTPS 탭이 선택되었는지 확인하고 URL 을 복사합니다. URL 은 https://github.com/your-username/github-actions-demo.git과 유사해야 합니다.
  3. LabEx 환경에서 터미널을 엽니다. 기본 경로는 ~/project입니다.
  4. git clone 명령어를 사용하여 리포지토리를 다운로드합니다. your-username을 실제 GitHub 사용자 이름으로 바꾸십시오.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
  1. 클론된 리포지토리로 이동합니다:
cd ~/project/github-actions-demo
  1. .github/workflows 디렉토리 안에 env-demo.yml이라는 새 파일을 생성합니다:
touch .github/workflows/env-demo.yml
  1. WebIDE 에서 .github/workflows/env-demo.yml을 열고 다음 내용을 추가합니다. 이 내용은 워크플로 이름, 트리거 이벤트 (push), 그리고 GREETING이라는 변수가 있는 env 섹션을 정의합니다.
name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"
  • name: 워크플로의 이름입니다.
  • on: push 이벤트가 발생할 때 이 워크플로가 실행되도록 지정합니다.
  • env: 워크플로의 모든 작업 (jobs) 및 단계 (steps) 에서 사용할 수 있는 환경 변수 맵을 정의합니다. 여기서는 GREETING을 문자열 'Hello'로 설정합니다.

run echo "${{ env.GREETING }}, World!" 명령어로 변수를 출력하는 단계 추가하기

이 단계에서는 생성한 환경 변수를 사용하기 위한 job 과 step 을 정의합니다. 워크플로우 파일 내에서 환경 변수는 ${{ env.VARIABLE_NAME }} 구문을 사용하여 접근합니다.

WebIDE 에서 .github/workflows/env-demo.yml 파일을 열고 파일 끝에 다음 내용을 추가하십시오:

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"

완성된 파일은 다음과 같아야 합니다:

name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"
  • jobs: 워크플로우가 실행하는 job 들을 정의합니다.
  • print-greeting: job 의 ID 입니다.
  • runs-on: job 을 실행할 머신 유형 (러너) 을 구성합니다.
  • steps: job 내에서 실행되는 모든 단계를 그룹화합니다.
  • run: 러너의 셸에서 명령을 실행합니다. 여기서는 echo를 사용하여 GREETING의 값과 , World!를 출력합니다.

env 가 포함된 업데이트된 워크플로 커밋 및 푸시

이 단계에서는 새 워크플로우 파일을 커밋하고 GitHub 에 푸시합니다. 이 파일을 푸시하면 GitHub Actions 에 워크플로우가 등록되고 첫 번째 실행이 트리거됩니다.

  1. 리포지토리 디렉토리에 있는지 확인합니다:
cd ~/project/github-actions-demo
  1. 워크플로우 파일을 스테이징합니다:
git add .github/workflows/env-demo.yml
  1. 변경 사항을 커밋합니다:
git commit -m "Add workflow with environment variable"
  1. 변경 사항을 GitHub 의 원격 리포지토리에 푸시합니다:
git push

인증 참고 사항:
git push를 실행하면 WebIDE 가 자동으로 인증을 요청합니다. 다음 세부 단계를 따르십시오:

  1. "The extension 'GitHub' wants to sign in using GitHub." 라는 메시지와 함께 팝업이 나타납니다. Allow를 클릭합니다.
  2. 새 알림이 나타납니다. **"Copy&Continue to GitHub"**를 클릭한 다음, 다음 프롬프트에서 **"Open"**을 클릭합니다.
  3. 열리는 브라우저 창에서 GitHub 계정에 로그인하고 복사된 인증 코드를 입력합니다. 인증을 확인하면 페이지가 자동으로 닫힙니다.
  4. 몇 초 기다리면 터미널에서 푸시 작업이 성공적으로 완료되는 것을 볼 수 있습니다.

개인 정보 보호 참고 사항: WebIDE 는 인증 목적으로 GitHub 계정에 대한 전체 액세스를 요청합니다. 개인 정보 보호에 대해 걱정할 필요가 없습니다. 현재 실습을 완료하면 LabEx VM 은 즉시 파기되며, 귀하의 자격 증명 및 인증 정보는 유지되지 않습니다.

변경 사항 푸시를 통해 워크플로 트리거하기

워크플로우는 push 이벤트에서 실행되도록 구성되어 있습니다. 이전 푸시로 이미 워크플로우가 트리거되었지만, 환경 변수를 업데이트하고 다시 트리거하는 것이 얼마나 쉬운지 살펴보겠습니다.

  1. WebIDE 에서 .github/workflows/env-demo.yml 파일을 엽니다.
  2. GREETING의 값을 "Hello"에서 "Hi"로 변경합니다.
env:
  GREETING: "Hi"
  1. 이 변경 사항을 커밋하고 푸시합니다:
git add .github/workflows/env-demo.yml
git commit -m "Update greeting variable"
git push

인증 참고 사항:
최근에 인증하지 않았다면, git push를 실행할 때 WebIDE 가 자동으로 인증을 요청할 것입니다. 이전 단계에서 설명한 것과 동일한 인증 단계를 따르십시오.

개인 정보 보호 참고 사항: WebIDE 는 인증 목적으로 귀하의 GitHub 계정에 대한 전체 액세스를 요청할 것입니다. 개인 정보 보호에 대해 걱정할 필요가 없습니다. LabEx VM 은 현재 랩을 완료하는 즉시 파기되며, 귀하의 자격 증명 및 권한 정보는 유지되지 않습니다.

이 푸시는 업데이트된 변수로 워크플로우의 새 실행을 트리거합니다.

GitHub 에서 실행 로그의 환경 변수 출력 확인

코드를 푸시하면 GitHub 에서 워크플로우가 자동으로 트리거됩니다. 워크플로우 실행 로그를 확인하여 환경 변수가 올바르게 사용되고 있는지 확인할 수 있습니다.

  1. 웹 브라우저에서 GitHub 의 저장소로 이동합니다: https://github.com/your-username/github-actions-demo
  2. 저장소 페이지 상단의 Actions 탭을 클릭합니다.
  3. "Update greeting variable"로 이름이 지정된 새로운 워크플로우 실행이 목록에 표시되어야 합니다.

참고: 코드를 푸시할 때 저장소에 여러 워크플로우 파일이 있는 경우 여러 Actions 가 트리거될 수 있습니다. 왼쪽 사이드바에서 워크플로우 이름을 확인하거나 오른쪽의 워크플로우 실행 목록을 사용하여 올바른 워크플로우 실행을 식별하십시오.

  1. 실행 제목을 클릭한 다음 print-greeting 작업을 클릭합니다.
  2. Print Greeting 단계를 확장하여 출력을 확인합니다.

다음과 같은 명령 실행을 볼 수 있습니다:

Run echo "Hi, World!"
  echo "Hi, World!"
  shell: /usr/bin/bash -e {0}
Hi, World!

${{ env.GREETING }}이 새 값인 Hi로 대체되었는지 확인하십시오.

GitHub Actions logs

요약

본 랩 (lab) 에서는 환경 변수 (environment variables) 를 사용하는 GitHub Actions 워크플로를 성공적으로 생성했습니다. 다음 사항들을 배웠습니다:

  1. env 키워드를 사용하여 워크플로 수준에서 환경 변수를 정의하는 방법.
  2. ${{ env.VARIABLE_NAME }} 구문을 사용하여 단계 (step) 에서 이러한 변수에 접근하는 방법.
  3. 변수를 업데이트하고 변경 사항을 푸시하여 워크플로를 다시 트리거하는 방법.

환경 변수는 하드 코딩된 명령어 로직을 변경하지 않고도 환경이나 실행 간에 변경될 수 있는 구성 값을 관리하는 데 필수적입니다.