Skip to main content

GitHub Actions의 필수 기능

GitHub Actions은(는) 강력하고 동적인 자동화를 빌드하는 데 도움이 되도록 설계되었습니다. 이 가이드에서는 환경 변수, 사용자 지정된 스크립트 등을 포함하는 GitHub Actions 워크플로를 만드는 방법을 보여줍니다.

개요

GitHub Actions을(를) 사용하면 애플리케이션 및 팀의 고유한 요구 사항에 맞게 워크플로를 사용자 지정할 수 있습니다. 이 가이드에서는 변수 사용, 스크립트 실행, 작업 간에 데이터 및 아티팩트 공유와 같은 몇 가지 필수 사용자 지정 기술에 대해 설명합니다.

워크플로에서 변수 사용

GitHub Actions에는 각 워크플로 실행에 대한 기본 환경 변수가 포함됩니다. 사용자 지정 환경 변수를 사용해야 하는 경우 YAML 워크플로 파일에서 해당 변수를 설정할 수 있습니다. 이 예제에서는 POSTGRES_HOSTPOSTGRES_PORT로 명명된 사용자 지정 변수를 만드는 방법을 보여줍니다. 그런 다음 해당 변수를 node client.js 스크립트에 사용할 수 있습니다.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Connect to PostgreSQL
        run: node client.js
        env:
          POSTGRES_HOST: postgres
          POSTGRES_PORT: 5432

자세한 내용은 "variables"을 참조하세요.

워크플로에 스크립트 추가

GitHub Actions 워크플로를 사용하여 스크립트 및 셸 명령을 실행할 수 있으며, 이후 할당된 실행기에서 실행됩니다. 이 예제에서는 작업에서 run 키워드를 사용하여 실행기에서 npm install -g bats 명령을 실행하는 방법을 보여줍니다.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - run: npm install -g bats

워크플로를 사용하여 리포지토리에 저장된 스크립트를 실행하려면 먼저 리포지토리를 실행기로 검사 합니다. 이렇게 하면 run 키워드를 사용하여 실행기에서 스크립트를 실행할 수 있습니다. 다음 예제에서는 각각 별도의 작업 단계에서 두 개의 스크립트를 실행합니다. 실행기에서 스크립트의 위치는 실행 명령에 대한 기본 작업 디렉터리를 설정하여 지정됩니다. 자세한 내용은 "작업에 대한 기본값 설정"을 참조하세요.

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Run a script
        run: ./my-script.sh
      - name: Run another script
        run: ./my-other-script.sh

워크플로 작업을 실행하려는 모든 스크립트는 실행 가능해야 합니다. 스크립트를 실행할 인터프리터에 인수로 스크립트를 전달하거나(예: run: bash script.sh) 파일 자체를 실행 가능하게 하여 워크플로 내에서 이 작업을 수행할 수 있습니다. 로컬에서 git update-index --chmod=+x PATH/TO/YOUR/script.sh 명령을 사용한 다음 파일을 커밋하고 리포지토리에 푸시하여 파일에 실행 권한을 부여할 수 있습니다. 또는 Linux 및 Mac 실행기에서 실행되는 워크플로의 경우 스크립트를 실행하기 전에 워크플로 작업에서 실행 권한을 파일에 부여하는 명령을 추가할 수 있습니다.

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Make the script files executable
        run: chmod +x my-script.sh my-other-script.sh
      - name: Run the scripts
        run: |
          ./my-script.sh
          ./my-other-script.sh

run 키워드 사용에 관한 자세한 내용은 "GitHub Actions에 대한 워크플로 구문"을 참조하세요.

작업 간에 데이터 공유

작업이 동일한 워크플로의 다른 작업과 공유하려는 파일을 생성하거나 나중에 참조할 수 있도록 파일을 저장하려는 경우 GitHub에 _아티팩트_로 저장할 수 있습니다. 아티팩트는 코드를 빌드하고 테스트할 때 생성되는 파일입니다. 예를 들어 아티팩트는 이진 파일 또는 패키지 파일, 테스트 결과, 스크린샷 또는 로그 파일을 포함할 수 있습니다. 아티팩트는 만들어진 워크플로 실행과 연결되며 다른 작업에서 사용할 수 있습니다. 실행 중 호출되는 모든 작업 및 워크플로는 실행 중인 아티팩트에 대한 쓰기 액세스 권한을 갖습니다.

예를 들어 파일을 만든 다음 아티팩트로 업로드할 수 있습니다.

jobs:
  example-job:
    name: Save output
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        run: |
          expr 1 + 1 > output.log
      - name: Upload output file
        uses: actions/upload-artifact@v4
        with:
          name: output-log-file
          path: output.log

별도의 워크플로 실행에서 아티팩트를 다운로드하려면 actions/download-artifact 작업을 사용할 수 있습니다. 예를 들어, output-log-file이라는 아티팩트를 다운로드할 수 있습니다.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Download a single artifact
        uses: actions/download-artifact@v4
        with:
          name: output-log-file

동일한 워크플로 실행에서 아티팩트를 다운로드하려면 업로드 작업이 완료될 때까지 시작되지 않도록 다운로드 작업이 needs: upload-job-name을 지정해야 합니다.

아티팩트에 대한 자세한 내용은 :워크플로 데이터를 아티팩트로 저장"을 참조하세요.

다음 단계

GitHub Actions에 대해 계속 알아보려면 "워크플로 정보"을(를) 참조하세요.