참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
개요
GitHub Actions을(를) 사용하면 애플리케이션 및 팀의 고유한 요구 사항에 맞게 워크플로를 사용자 지정할 수 있습니다. 이 가이드에서는 변수 사용, 스크립트 실행, 작업 간에 데이터 및 아티팩트 공유와 같은 몇 가지 필수 사용자 지정 기술에 대해 설명합니다.
워크플로에서 변수 사용
GitHub Actions에는 각 워크플로 실행에 대한 기본 환경 변수가 포함됩니다. 사용자 지정 환경 변수를 사용해야 하는 경우 YAML 워크플로 파일에서 해당 변수를 설정할 수 있습니다. 이 예제에서는 POSTGRES_HOST
와 POSTGRES_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
자세한 내용은 "변수"을 참조하세요.
워크플로에 스크립트 추가
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@v3
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@v3
with:
name: output-log-file
동일한 워크플로 실행에서 아티팩트를 다운로드하려면 업로드 작업이 완료될 때까지 시작되지 않도록 다운로드 작업이 needs: upload-job-name
을 지정해야 합니다.
아티팩트에 대한 자세한 내용은 :워크플로 데이터를 아티팩트로 저장"을 참조하세요.
다음 단계
GitHub Actions에 대해 계속 알아보려면 "워크플로 정보"을(를) 참조하세요.