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

작업 찾기 및 사용자 지정

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

개요

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

  • 워크플로 파일과 동일한 리포지토리
  • 워크플로에 대한 액세스를 허용하도록 구성된, 동일한 엔터프라이즈 계정의 내부 리포지토리
  • 임의 퍼블릭 리포지토리
  • Docker Hub에 게시된 Docker 컨테이너 이미지

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

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

워크플로 파일이 작업을 사용하는 곳과 동일한 리포지토리에서 작업이 정의된 경우 워크플로 파일에서 {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@v3
      # This step references the directory that contains the action.
      - uses: ./.github/actions/hello-world-action

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

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

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

퍼블릭 리포지토리 또는 워크플로에 대한 액세스를 허용하도록 구성된 내부 리포지토리에 작업을 저장해야 합니다. 자세한 내용은 "Finding and customizing actions.

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

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를 선택할 때는 해당 SHA가 리포지토리 포크가 아니라 작업의 리포지토리에서 온 것인지 확인해야 합니다. 이 예제에서는 작업의 SHA를 대상으로 합니다.

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

분기 사용

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

기본적으로 GitHub AE에서는 GitHub에서 작성된 공식 작업을 대부분 사용할 수 있습니다. 자세한 내용은 "GitHub AE에서 작업 사용"을 참조하세요.

다음 단계

GitHub Actions에 대해 계속 알아보려면 "GitHub Actions의 필수 기능.