Skip to main content

워크플로에서 미리 작성된 구성 요소 사용

미리 작성된 작업을 사용하고 사용자 지정하여 워크플로를 강화할 수 있습니다.

GitHub에서 GHE.com에 액세스하는 경우 GitHub.com에 대한 하드 코딩된 API 호출을 포함하는 작업이 예상대로 작동하지 않을 수 있음을 알아두세요.

워크플로 편집기에서 Marketplace 작업 찾아보기

리포지토리의 워크플로 편집기에서 직접 작업을 검색하고 찾아볼 수 있습니다. 사이드바에서 특정 작업을 검색하고, 추천 작업을 보고, 추천 범주를 찾아볼 수 있습니다. 작업이 GitHub 커뮤니티에서 받은 별 수도 볼 수 있습니다.

  1. 리포지토리에서 편집할 워크플로 파일로 이동합니다.

  2. 파일 뷰의 오른쪽 위에서 워크플로 편집기를 열려면 을(를) 클릭합니다.

           ![헤더 섹션을 보여 주는 워크플로 파일의 스크린샷. 파일 편집을 위한 연필 아이콘이 진한 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/repository/actions-edit-workflow-file.png)
    
  3. 편집기 오른쪽에 있는 GitHub Marketplace 사이드바를 사용하여 작업을 찾습니다. 배지는 해당 작업을 만든 작성자가 GitHub의 공식 파트너 조직임을 인증하는 표시입니다.

           ![파일 편집기의 워크플로 스크린샷 사이드바에는 마켓플레이스 작업이 표시됩니다. "GitHub에 의해 검증된 작성자" 배지는 주황색 테두리가 그려져 있습니다.](/assets/images/help/repository/actions-marketplace-sidebar.png)
    

워크플로에 작업 추가

워크플로 파일에서 작업을 참조하여 워크플로에 작업을 추가할 수 있습니다. 워크플로에서 사용하는 작업은 다음 위치에서 정의될 수 있습니다.

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

GitHub Actions 워크플로에서 참조된 작업을 워크플로가 포함된 리포지토리의 종속성 그래프에 표시된 종속성으로 볼 수 있습니다. 자세한 내용은 "종속성 그래프 정보"를 참조하세요.

참고

보안을 강화하기 위해 GitHub Actions는 작업이나 재사용할 수 있는 워크플로의 리디렉션을 지원하지 않습니다. 즉, 소유자, 작업 리포지토리의 이름, 또는 작업 이름이 변경되면, 이전 이름으로 해당 작업을 사용하는 워크플로가 작동하지 않습니다.

GitHub Marketplace에서 작업 추가

작업 목록 페이지에는 작업 버전 및 작업을 사용하는 데 필요한 워크플로 구문이 포함되어 있습니다. 작업이 업데이트되는 경우에도 워크플로를 안정적으로 유지하기 위해 워크플로 파일에서 Git 또는 Docker 태그 번호를 지정하여 사용할 작업 버전을 참조할 수 있습니다.

  1. 워크플로에서 사용할 작업으로 이동합니다.

  2. 작업에 대한 전체 마켓플레이스 목록을 보려면 클릭합니다.

  3. “설치”에서 아이콘을 클릭하여 워크플로 구문을 복사합니다.

           ![작업의 Marketplace 목록 스크린샷. 작업에 대한 "클립보드에 복사" 아이콘이 진한 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/repository/actions-sidebar-detailed-view.png)
    
  4. 구문을 워크플로에 새 단계로 붙여넣습니다. 자세한 내용은 GitHub Actions에 대한 워크플로 구문을(를) 참조하세요.

  5. 작업에 입력을 제공해야 하는 경우 워크플로에서 입력을 설정합니다. 작업에 필요할 수 있는 입력에 대한 자세한 내용은 워크플로에서 미리 작성된 구성 요소 사용을(를) 참조하세요.

워크플로에 추가하는 작업에 대해 Dependabot version updates를 사용하도록 설정할 수도 있습니다. 자세한 내용은 Dependabot을 사용하여 작업을 최신 상태로 유지을(를) 참조하세요.

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

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

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

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

경로는 기본 작업 디렉터리(github.workspace, $GITHUB_WORKSPACE)에 대해 상대적(./) 경로입니다. 작업이 리포지토리를 워크플로와 다른 위치로 검사하는 경우 로컬 작업에 사용되는 상대 경로를 업데이트해야 합니다.

워크플로 파일 예시:

jobs:
  my_first_job:
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - name: My first step - check out repository
        uses: actions/checkout@v6
      # This step references the directory that contains the action.
      - name: Use local hello-world-action
        uses: ./.github/actions/hello-world-action
          `action.yml` 파일은 작업에 대한 메타데이터를 제공하는 데 사용됩니다. 
          [AUTOTITLE](/actions/creating-actions/metadata-syntax-for-github-actions)에서 이 파일의 내용에 대해 알아봅니다.

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

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

퍼블릭 리포지토리 또는 워크플로에 대한 액세스를 허용하도록 구성된 내부 리포지토리에 작업을 저장해야 합니다. 자세한 내용은 엔터프라이즈와 작업 및 워크플로 공유을(를) 참조하세요.

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

GHE.com를 이용 중이거나, 이 구문을 활용하여 enterprise 내부 혹은 GitHub.com에 있는 작업을 자유롭게 참조할 수 있습니다. GitHub Actions는 우선 enterprise 내에서 작업을 검색한 후, GitHub.com로 전환합니다.

Docker Hub의 컨테이너를 참조하기

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

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

Docker 작업의 몇 가지 예시를 보려면 Docker-image.yml 워크플로Docker 컨테이너 작업 만들기을(를) 참조하세요.

워크플로에서 작업을 사용하기 위한 보안 강화

GitHub는 워크플로의 보안을 강화하는 데 사용할 수 있는 보안 기능을 제공합니다. GitHub의 기본 제공 기능으로 이용하는 작업의 약점에 대한 알림을 받거나 워크플로의 작업을 최신 상태로 유지하는 프로세스를 자동화할 수 있습니다. 자세한 내용은 안전 사용 참조을(를) 참조하세요.

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

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

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

참고

타사 작업을 사용하는 경우 SHA 값을 사용하는 것이 좋습니다. 그러나 Dependabot은(는) 의미 체계 버전 관리 작업을 사용하는 취약한 Dependabot alerts에 대한 GitHub Actions만 작성한다는 점에 유의하세요. 자세한 내용은 안전 사용 참조Dependabot 경고 정보을(를) 참조하세요.

태그 사용

태그는 주 버전과 부 버전 간에 전환할 시기를 결정하는 데 유용하지만 더 일시적이며 유지 관리자가 이동하거나 삭제할 수 있습니다. 다음 예시에서는 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.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"