Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

이 버전의 GitHub Enterprise는 다음 날짜에 중단됩니다. 2023-03-15. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 성능 향상, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

작업 찾기 및 사용자 지정

작업은 워크플로를 구동하는 구성 요소입니다. 워크플로는 커뮤니티에서 만든 작업을 포함할 수 있으며 애플리케이션의 리포지토리 내에서 직접 고유한 작업을 만들 수도 있습니다. 이 가이드에서는 작업을 검색, 사용 및 사용자 지정하는 방법을 보여 줍니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

개요

워크플로에서 사용하는 작업은 다음 위치에서 정의될 수 있습니다.

  • 워크플로 파일과 동일한 리포지토리
  • 임의 퍼블릭 리포지토리
  • Docker Hub에 게시된 Docker 컨테이너 이미지

GitHub Marketplace는 GitHub 커뮤니티에서 만든 작업을 찾을 수 있는 중앙 위치입니다.

참고: GitHub Enterprise Server 인스턴스의 GitHub Actions은(는) GitHub.com 또는 GitHub Marketplace에 대한 작업에 제한적인 액세스 권한을 가질 수 있습니다. 자세한 내용은 “GitHub.com에서 작업에 대한 액세스 관리”를 참조하고 GitHub Enterprise 사이트 관리자에게 문의하세요.

동일한 리포지토리에서 작업 추가

워크플로 파일이 작업을 사용하는 곳과 동일한 리포지토리에서 작업이 정의된 경우 워크플로 파일에서 {owner}/{repo}@{ref} 또는 ./path/to/dir 구문을 사용하여 작업을 참조할 수 있습니다.

리포지토리 파일 구조 예제:

|-- hello-world (repository)
|   |__ .github
|       └── workflows
|           └── my-first-workflow.yml
|       └── actions
|           |__ hello-world-action
|               └── action.yml

워크플로 파일 예제:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - uses: actions/checkout@v2
      # This step references the directory that contains the action.
      - uses: ./.github/actions/hello-world-action

action.yml 파일은 작업에 대한 메타데이터를 제공하는 데 사용됩니다. “GitHub Actions에 대한 메타데이터 구문”에서 이 파일의 내용에 대해 알아봅니다.

다른 리포지토리에서 작업 추가

작업이 워크플로 파일과 다른 리포지토리에서 정의된 경우 워크플로 파일에서 {owner}/{repo}@{ref} 구문을 사용하여 작업을 참조할 수 있습니다.

퍼블릭 리포지토리에 작업을 저장해야 합니다.

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: actions/setup-node@v2

Docker Hub의 컨테이너 참조

작업이 Docker Hub에 게시된 Docker 컨테이너 이미지에서 정의된 경우 워크플로 파일에서 docker://{image}:{tag} 구문을 사용하여 작업을 참조해야 합니다. 코드와 데이터를 보호하려면 워크플로에서 사용하기 전에 Docker Hub의 Docker 컨테이너 이미지 무결성을 확인하는 것이 좋습니다.

jobs:
  my_first_job:
    steps:
      - name: My first step
        uses: docker://alpine:3.8

Docker 작업의 몇 가지 예제는 Docker-image.yml 워크플로 및 “Docker 컨테이너 작업 만들기”를 참조하세요.

사용자 지정 작업의 릴리스 관리 사용

커뮤니티 작업의 작성자는 태그, 분기 또는 SHA 값을 사용하여 작업 릴리스를 관리할 수 있습니다. 종속성과 마찬가지로, 작업 업데이트 자동 수락을 편하게 받아들이는지에 따라 사용할 작업 버전을 지정해야 합니다.

워크플로 파일에서 작업 버전을 지정합니다. 릴리스 관리 방법에 대한 자세한 내용과 사용할 태그, 분기 또는 SHA 값을 보려면 작업 설명서를 확인하세요.

참고: 타사 작업을 사용하는 경우 SHA 값을 사용하는 것이 좋습니다. 자세한 내용은 “GitHub Actions의 보안 강화”를 참조하세요.

태그 사용

태그는 주 버전과 부 버전 간에 전환할 시기를 결정하는 데 유용하지만 더 일시적이며 유지 관리자가 이동하거나 삭제할 수 있습니다. 다음 예제에서는 v1.0.1로 태그가 지정된 작업을 대상으로 지정하는 방법을 보여 줍니다.

steps:
  - uses: actions/javascript-action@v1.0.1

SHA 사용

더 안정적인 버전 관리가 필요한 경우 작업 버전과 연결된 SHA 값을 사용해야 합니다. SHA는 변경할 수 없으므로 태그 또는 분기보다 더 안정적입니다. 그러나 이 방법을 사용하는 경우 중요한 버그 수정과 보안 업데이트를 비롯한 작업 업데이트를 자동으로 받지 않습니다. 약식 값이 아닌 커밋의 전체 SHA 값을 사용해야 합니다. 다음 예제에서는 작업의 SHA를 대상으로 지정합니다.

steps:
  - uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89

분기 사용

작업의 대상 분기를 지정하면 항상 해당 분기의 현재 버전이 실행됩니다. 분기 업데이트에 호환성이 손상되는 변경이 포함된 경우 이 방법은 문제를 일으킬 수 있습니다. 다음 예제에서는 @main 분기를 대상으로 지정합니다.

steps:
  - uses: actions/javascript-action@main

자세한 내용은 “작업의 릴리스 관리 사용”을 참조하세요.

작업에서 입력 및 출력 사용

작업이 입력을 수락하거나 요구하고 사용할 수 있는 출력을 생성하는 경우가 많습니다. 예를 들어 작업에서 파일 경로, 레이블 이름 또는 작업 처리의 일부로 사용할 기타 데이터를 지정하도록 요구할 수 있습니다.

작업의 입력과 출력을 보려면 리포지토리의 루트 디렉터리에 있는 action.yml 또는 action.yaml을 확인합니다.

이 예제 action.yml에서 inputs 키워드는 file-path라는 필수 입력을 정의하고, 지정되지 않은 경우에 사용되는 기본값을 포함합니다. outputs 키워드는 결과를 찾을 위치를 알려주는 results-file 출력을 정의합니다.

name: "Example"
description: "Receives file and generates output"
inputs:
  file-path: # id of input
    description: "Path to test script"
    required: true
    default: "test-file.js"
outputs:
  results-file: # id of output
    description: "Path to results file"

다음 단계

GitHub Actions에 대해 계속 알아보려면 “GitHub Actions의 필수 기능”을 참조하세요.