# 메타데이터 구문 참조

리포지토리에서 작업을 수행하는 작업을 만들 수 있습니다. 사용자 지정 작업을 수행하려면 YAML 구문을 사용하는 메타데이터 파일이 필요합니다.

> \[!NOTE]
> Docker 컨테이너, JavaScript 및 복합 작업을 빌드할 수 있습니다. 작업에는 작업의 입력, 출력, 실행 구성을 정의하는 메타데이터 파일이 필요합니다. 작업 메타데이터 파일은 YAML 구문을 사용하며, 메타데이터 파일 이름은 `action.yml` 또는 `action.yaml`여야 합니다. 기본 설정 형식은 `action.yml`입니다.

## `name`

**필수** 작업의 이름입니다.
GitHub는 각 작업의 작업을 시각적으로 식별하는 데 도움이 되도록 `name` 탭에 \*\*\*\* 를 표시합니다.

## `author`

**선택 사항** 작업 작성자의 이름입니다.

## `description`

**필수** 다음은 작업에 대한 간단한 설명입니다.

## `inputs`

**선택 사항** 입력 매개 변수를 사용하면 런타임 중에 작업에서 사용할 데이터를 지정할 수 있습니다.
GitHub 은 입력 매개 변수를 환경 변수로 저장합니다. 소문자 입력 ID를 사용하는 것이 좋습니다.

### 예: 입력 지정

이 예에서는 두 개의 입력을 구성합니다: `num-octocats`과 `octocat-eye-color`입니다.
`num-octocats` 입력은 필수가 아니며 기본값은 `1`입니다.
`octocat-eye-color`은 필수 입력이며 기본값이 없습니다.

> \[!NOTE]
> `required: true`를 사용하는 작업은 입력이 지정되지 않은 경우 자동으로 오류를 반환하지 않습니다.

이 작업을 사용하는 워크플로 파일은 `with` 키워드를 사용하여 `octocat-eye-color`에 대한 입력 값을 설정할 수 있습니다.
`with` 구문에 대한 자세한 내용은 [GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepswith)을(를) 참조하세요.

```yaml
inputs:
  num-octocats:
    description: 'Number of Octocats'
    required: false
    default: '1'
  octocat-eye-color:
    description: 'Eye color of the Octocats'
    required: true
```

입력을 지정하면 GitHub는 `INPUT_<VARIABLE_NAME>`라는 이름의 입력용 환경 변수를 만듭니다. 만들어진 환경 변수는 입력 이름을 대문자로 변환하고 공백을 `_` 문자로 바꿉니다.

[복합체](/ko/enterprise-server@3.22/actions/tutorials/create-actions/create-a-composite-action)를 사용하여 작업이 작성된 경우, 자동으로 `INPUT_<VARIABLE_NAME>`을 가져오지 않습니다. 복합 작업을 사용하면 컨텍스트를 [`inputs`](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#inputs-context) 사용하여 작업 입력에 액세스할 수 있습니다.

Docker 컨테이너 작업에서 환경 변수에 액세스하려면 작업 메타데이터 파일에서 `args` 키워드를 사용하여 입력을 전달해야 합니다. Docker 컨테이너 작업의 작업 메타데이터 파일에 대한 자세한 내용은 [Docker 컨테이너 작업 만들기](/ko/enterprise-server@3.22/actions/tutorials/use-containerized-services/create-a-docker-container-action#creating-an-action-metadata-file)을(를) 참조하세요.

예를 들어 워크플로가 `num-octocats` 및 `octocat-eye-color` 입력을 정의한 경우 작업 코드는 `INPUT_NUM-OCTOCATS` 및 `INPUT_OCTOCAT-EYE-COLOR` 환경 변수를 사용하여 입력 값을 읽을 수 있습니다.

### `inputs.<input_id>`

**필수** 입력과 연결할 `string` 식별자입니다.
`<input_id>` 값은 입력 메타데이터의 맵입니다.
`<input_id>`은 `inputs` 개체 내에서 고유한 식별자여야 합니다.
`<input_id>`는 문자 또는 `_`로 시작해야 하며 영숫자, `-` 또는 `_`만 포함해야 합니다.

### `inputs.<input_id>.description`

**필수** 입력 매개 변수에 대한 `string` 설명입니다.

### `inputs.<input_id>.required`

**선택 사항** 작업에 입력 매개 변수가 필요한지 여부를 나타내는 `boolean`입니다. 매개 변수가 필요한 경우 `true`로 설정합니다.

### `inputs.<input_id>.default`

**선택 사항** 기본값을 나타내는 `string`입니다. 기본값은 입력 매개 변수가 워크플로 파일에 지정되지 않은 경우에 사용됩니다.

### `inputs.<input_id>.deprecationMessage`

**선택 사항** 입력 매개 변수를 사용하면 `string`이 경고 메시지로 기록됩니다. 이 경고를 사용하여 사용자에게 입력 닫기 이 있음을 알리고 대안을 언급할 수 있습니다.

## `outputs` Docker 컨테이너 및 JavaScript 작업용

**선택 사항** 출력 매개 변수를 사용하면 작업이 설정하는 데이터를 선언할 수 있습니다. 워크플로에서 나중에 실행되는 작업은 이전에 실행한 작업의 출력 데이터 세트를 사용할 수 있습니다. 예를 들어 두 개의 입력(x + y = z)을 추가하는 작업을 수행하는 경우 이 작업은 입력으로 사용할 다른 작업에 대한 합계(z)를 출력할 수 있습니다.

작업당 출력 크기는 최대 1MB입니다. 워크플로 실행의 모든 출력 합계는 최대 50MB가 될 수 있습니다. 크기는 UTF-16 인코딩을 기준으로 추정됩니다.

작업 메타데이터 파일에서 출력을 선언하지 않은 경우에도 출력을 설정하고 워크플로에서 사용할 수 있습니다. 액션의 출력 설정에 대한 자세한 내용은 [GitHub Actions에 대한 워크플로 명령](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-commands#setting-an-output-parameter)을(를) 참조하세요.

### 예: Docker 컨테이너 및 JavaScript 작업에 대한 출력 선언

```yaml
outputs:
  sum: # id of the output
    description: 'The sum of the inputs'
```

### `outputs.<output_id>`

**필수** 출력과 연결할 `string` 식별자입니다.
`<output_id>` 값은 출력 메타데이터의 맵입니다.
`<output_id>`은 `outputs` 개체 내에서 고유한 식별자여야 합니다.
`<output_id>`는 문자 또는 `_`로 시작해야 하며 영숫자, `-` 또는 `_`만 포함해야 합니다.

### `outputs.<output_id>.description`

**필수** 출력 매개 변수에 대한 `string` 설명입니다.

## 복합 작업을 위한 `outputs`

**선택 사항**`outputs`은 `outputs.<output_id>` 및 `outputs.<output_id>.description`와 동일한 매개 변수를 사용하지만([`outputs`Docker 컨테이너 및 JavaScript 작업에 대한 ](#outputs-for-docker-container-and-javascript-actions) 참조) `value` 토큰도 포함되어 있습니다.

작업당 출력 크기는 최대 1MB입니다. 워크플로 실행의 모든 출력 합계는 최대 50MB가 될 수 있습니다. 크기는 UTF-16 인코딩을 기준으로 추정됩니다.

### 예: 복합 작업에 대한 출력 선언

```yaml
outputs:
  random-number:
    description: "Random number"
    value: ${{ steps.random-number-generator.outputs.random-id }}
runs:
  using: "composite"
  steps:
    - id: random-number-generator
      run: echo "random-id=$(echo $RANDOM)" >> $GITHUB_OUTPUT
      shell: bash
```

### `outputs.<output_id>.value`

**필수** 출력 매개 변수가 매핑될 값입니다.
`string` 또는 컨텍스트가 있는 식으로 설정할 수 있습니다. 예를 들어 `steps` 컨텍스트를 사용하여 출력의 `value`를 단계의 출력 값으로 설정할 수 있습니다.

컨텍스트 구문을 사용하는 방법에 대한 자세한 내용은 [문맥 참조](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts)을(를) 참조하세요.

## `runs`

**필수** JavaScript 작업, 복합 작업 또는 Docker 컨테이너 작업인지와 작업 실행 방식을 지정합니다.

## JavaScript 작업용 `runs`

**필수** 작업 코드의 경로와 코드를 실행하는 데 사용되는 런타임을 구성합니다.

### 예시: Node.js v24 사용

```yaml
runs:
  using: 'node24'
  main: 'main.js'
```

### JavaScript 작업용 `runs.using`

**필수**[`main`](#runsmain)에 지정된 코드를 실행하는 데 사용되는 런타임입니다.

* Node.js v20에는 `node20`을 사용합니다.
* Node.js v24에는 `node24`를 사용합니다.

### `runs.main`

**필수** 작업 코드가 포함된 파일입니다.
[
`using`
](#runsusing-for-javascript-actions)에 지정된 런타임은 이 파일을 실행합니다.

### `runs.pre`

**선택 사항**`main:` 작업이 시작되기 전에 작업 시작 시 스크립트를 실행할 수 있습니다. 예를 들어 `pre:`를 사용하여 필수 조건 설정 스크립트를 실행할 수 있습니다.
[
`using`
](#runsusing-for-javascript-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.
`pre:` 작업은 기본적으로 항상 실행되지만 [`runs.pre-if`](#runspre-if)를 사용하여 이를 재정의할 수 있습니다.

> \[!NOTE]
> `runs.pre`는 로컬 작업에 대해 지원되지 않습니다.

이 예제에서 `pre:` 작업은 `setup.js`라는 스크립트를 실행합니다.

```yaml
runs:
  using: 'node24'
  pre: 'setup.js'
  main: 'index.js'
  post: 'cleanup.js'
```

### `runs.pre-if`

**선택 사항**`pre:` 작업 실행을 위한 조건을 정의할 수 있습니다.
`pre:` 작업은 `pre-if`의 조건이 충족되는 경우에만 실행됩니다. 설정하지 않으면 `pre-if`의 기본값은 `always()`입니다.
`pre-if`에서 상태 검사 함수는 작업 자체의 상태가 아니라 동작의 상태를 기준으로 평가합니다.

아직 실행된 단계가 없으므로 `step` 컨텍스트를 사용할 수 없습니다.

이 예제에서는 `cleanup.js`는 Linux 기반 실행기에서만 실행됩니다.

```yaml
  pre: 'cleanup.js'
  pre-if: runner.os == 'linux'
```

### `runs.post`

**선택 사항**`main:` 동작이 완료된 후 작업이 끝날 때 스크립트를 실행할 수 있습니다. 예를 들어 `post:`을 사용하여 특정 프로세스를 종료하거나 필요하지 않은 파일을 제거할 수 있습니다.
[
`using`
](#runsusing-for-javascript-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.

이 예제에서 `post:` 작업은 `cleanup.js`라는 스크립트를 실행합니다.

```yaml
runs:
  using: 'node24'
  main: 'index.js'
  post: 'cleanup.js'
```

`post:` 작업은 기본적으로 항상 실행되지만 `post-if`를 사용하여 이를 재정의할 수 있습니다.

### `runs.post-if`

**선택 사항**`post:` 작업 실행을 위한 조건을 정의할 수 있습니다.
`post:` 작업은 `post-if`의 조건이 충족되는 경우에만 실행됩니다. 설정하지 않으면 `post-if`의 기본값은 `always()`입니다.
`post-if`에서 상태 검사 함수는 작업 자체의 상태가 아니라 동작의 상태를 기준으로 평가합니다.

예를 들어 `cleanup.js`은 Linux 기반 실행기에서만 실행됩니다.

```yaml
  post: 'cleanup.js'
  post-if: runner.os == 'linux'
```

## 복합 작업을 위한 `runs`

**필수** 복합 작업의 경로를 구성합니다.

### 복합 작업을 위한 `runs.using`

**필수** 이 값을 `'composite'`으로 설정해야 합니다.

### `runs.steps`

**필수** 이 작업에서 실행할 단계입니다. 이는 `run` 단계 또는 `uses` 단계일 수 있습니다.

#### `runs.steps[*].run`

**선택 사항** 실행하려는 명령입니다. 다음 둘 중 하나일 수 있습니다: 인라인 또는 작업 저장소의 스크립트.

```yaml
runs:
  using: "composite"
  steps:
    - run: ${{ github.action_path }}/test/script.sh
      shell: bash
```

또는 `$GITHUB_ACTION_PATH`를 사용할 수 있습니다.

```yaml
runs:
  using: "composite"
  steps:
    - run: $GITHUB_ACTION_PATH/script.sh
      shell: bash
```

자세한 내용은 [문맥 참조](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts#github-context)을(를) 참조하세요.

#### `runs.steps[*].shell`

**선택 사항** 명령을 실행할 셸입니다.
[GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsshell)에 나열된 모든 셸을 사용할 수 있습니다.
`run`이 설정된 경우 필수입니다.

#### `runs.steps[*].if`

**선택 사항**`if` 조건을 사용하여 조건이 충족되지 않는 한 단계가 실행되지 않도록 할 수 있습니다. 지원되는 컨텍스트 및 식을 사용하여 조건을 만들 수 있습니다.

`if` 조건에서 식을 사용하는 경우, 선택에 따라 식 구문(`${{ }}`)을 생략해도 됩니다. GitHub Actions에서 자동으로 `if` 조건을 식으로 평가하기 때문입니다. 그러나, 이 예외는 어디에나 적용되지는 않습니다.

`${{ }}` 식 구문을 사용하거나 `!`이 YAML 형식으로 예약된 표기법이므로 `!` 식이 시작될 때 항상 `''`, `""`, `()` 이스케이프를 사용해야 합니다. 예시:

```yaml
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
```

자세한 내용은 [워크플로 및 작업에서 식 평가](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/expressions)을 참조하세요.

**예: 컨텍스트 사용**

이 단계는 이벤트 유형이 `pull_request`이고 이벤트 작업이 `unassigned`인 경우에만 실행됩니다.

```yaml
steps:
  - run: echo This event is a pull request that had an assignee removed.
    if: ${{ github.event_name == 'pull_request' && github.event.action == 'unassigned' }}
```

**예: 상태 검사 함수 사용**

`my backup step`은 복합 작업의 이전 단계가 실패한 경우에만 실행됩니다. 자세한 내용은 [워크플로 및 작업에서 식 평가](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/expressions#status-check-functions)을(를) 참조하세요.

```yaml
steps:
  - name: My first step
    uses: octo-org/action-name@main
  - name: My backup step
    if: ${{ failure() }}
    uses: actions/heroku@1.0.0
```

#### `runs.steps[*].name`

**선택 사항** 복합 단계의 이름입니다.

#### `runs.steps[*].id`

**선택 사항** 단계의 고유 식별자입니다.
`id`를 사용하여 컨텍스트에서 단계를 참조할 수 있습니다. 자세한 내용은 [문맥 참조](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/contexts)을(를) 참조하세요.

#### `runs.steps[*].env`

**선택 사항** 해당 단계에 대해서만 환경 변수의 `map`을 설정합니다. 워크플로에 저장된 환경 변수를 수정하려면 복합 단계에서 `echo "{name}={value}" >> $GITHUB_ENV`를 사용합니다.

#### `runs.steps[*].working-directory`

**선택 사항** 명령이 실행되는 작업 디렉터리를 지정합니다.

#### `runs.steps[*].uses`

**선택 사항** 작업 단계의 일부로 실행할 작업을 선택합니다. 작업은 재사용 가능한 코드 단위입니다. 워크플로와 동일한 리포지토리, 퍼블릭 리포지토리 또는 [게시된 Docker 컨테이너 이미지](https://hub.docker.com/)에 정의된 작업을 사용할 수 있습니다.

Git 참조, SHA 또는 Docker 태그 번호를 지정하여 사용 중인 작업의 버전을 포함하는 것이 좋습니다. 버전을 지정하지 않으면 작업 소유자가 업데이트를 게시할 때 워크플로가 중단되거나 예기치 않은 동작이 발생할 수 있습니다.

* 릴리스된 작업 버전의 커밋 SHA를 사용하는 것이 안정성 및 보안 측면에서 가장 안전합니다.
* 특정 주요 작업 버전을 사용하면 호환성을 유지하면서 중요한 수정 및 보안 패치를 받을 수 있습니다. 또한 워크플로가 계속 작동하도록 합니다.
* 작업의 기본 분기를 사용하는 것이 편리할 수 있지만 다른 사용자가 호환성이 손상되는 변경으로 새 주 버전을 릴리스하는 경우 워크플로가 중단될 수 있습니다.

일부 작업에는 [`with`](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepswith) 키워드를 사용하여 설정해야 하는 입력이 필요합니다. 작업의 추가 정보 파일을 검토하여 필요한 입력을 확인합니다.

```yaml
runs:
  using: "composite"
  steps:
    # Reference a specific commit
    - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
    # Reference the major version of a release
    - uses: actions/checkout@v6
    # Reference a specific version
    - uses: actions/checkout@v6.2.0
    # Reference a branch
    - uses: actions/checkout@main
    # References a subdirectory in a public GitHub repository at a specific branch, ref, or SHA
    - uses: actions/aws/ec2@main
    # References an action in the same repository at the running commit
    - uses: $/.github/actions/my-action
    # References a local action
    - uses: ./.github/actions/my-action
    # References a docker public registry action
    - uses: docker://gcr.io/cloud-builders/gradle
    # Reference a docker image published on docker hub
    - uses: docker://alpine:3.8
```

복합 작업과 동일한 리포지토리에 저장된 작업을 참조하려면 위의 예제와 같이 자체 리포지토리 참조를 `$/` 사용합니다`$/.github/actions/my-action`. 실행 중인 커밋에서 해당 리포지토리로 확인되므로 먼저 리포지토리를 체크 아웃할 필요가 없으며 접미사를 포함 `@{ref}` 해서는 안 됩니다. 에서 `$/` 구문을 사용할 수 GitHub Enterprise Server없습니다.

및 , `$/`비교`{owner}/{repo}@{ref}``./`는 [GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/workflow-syntax#example-using-an-action-in-the-same-repository-as-the-workflow-at-the-running-commit-recommended)을 참조하세요.

#### `runs.steps[*].with`

**선택 사항** 작업에 의해 정의된 입력 매개 변수의 `map`입니다. 각 입력 매개 변수는 키/값 쌍입니다. 자세한 내용은 [예: 입력 지정](#example-specifying-inputs)을 참조하세요.

```yaml
runs:
  using: "composite"
  steps:
    - name: My first step
      uses: actions/hello_world@main
      with:
        first_name: Mona
        middle_name: The
        last_name: Octocat
```

#### `runs.steps[*].continue-on-error`

**선택적**  단계가 실패할 때 작업이 실패하지 않도록 합니다. 이 단계가 실패해도 작업이 통과되도록 하려면 `true`로 설정합니다.

## Docker 컨테이너 작업을 위한 `runs`

**필수** Docker 컨테이너 작업에 사용되는 이미지를 구성합니다.

### 예: 리포지토리에서 Dockerfile 사용

```yaml
runs:
  using: 'docker'
  image: 'Dockerfile'
```

### 예: 퍼블릭 Docker 레지스트리 컨테이너 사용

```yaml
runs:
  using: 'docker'
  image: 'docker://debian:stretch-slim'
```

### Docker 컨테이너 작업을 위한 `runs.using`

**필수** 이 값을 `'docker'`으로 설정해야 합니다.

### `runs.pre-entrypoint`

**선택 사항**`entrypoint` 작업이 시작되기 전에 스크립트를 실행할 수 있습니다. 예를 들어 `pre-entrypoint:`를 사용하여 필수 조건 설정 스크립트를 실행할 수 있습니다.
GitHub Actions 는 `docker run` 이 작업을 시작하고 동일한 기본 이미지를 사용하는 새 컨테이너 내에서 스크립트를 실행합니다. 즉, 런타임 상태가 주 `entrypoint` 컨테이너와 다르며 필요한 모든 상태는 작업 영역 `HOME` 또는 `STATE_` 변수로 액세스해야 합니다.
`pre-entrypoint:` 작업은 기본적으로 항상 실행되지만 [`runs.pre-if`](#runspre-if)를 사용하여 이를 재정의할 수 있습니다.

[
`using`
](#runsusing-for-docker-container-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.

이 예제에서 `pre-entrypoint:` 작업은 `setup.sh`라는 스크립트를 실행합니다.

```yaml
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - 'bzz'
  pre-entrypoint: 'setup.sh'
  entrypoint: 'main.sh'
```

### `runs.image`

**필수** 작업을 실행하기 위한 컨테이너로 사용할 Docker 이미지입니다. 값은 Docker 기본 이미지 이름, 리포지토리의 로컬 `Dockerfile`, Docker Hub 또는 다른 레지스트리의 퍼블릭 이미지일 수 있습니다. 리포지토리에 로컬인 `Dockerfile`을 참조하려면 파일 이름이 `Dockerfile`이어야 하고 작업 메타데이터 파일에 상대적인 경로를 사용해야 합니다.
`docker` 애플리케이션은 이 파일을 실행합니다.

### `runs.env`

**선택 사항** 컨테이너 환경에서 설정할 환경 변수의 키/값 맵을 지정합니다.

### `runs.entrypoint`

**선택 사항**`ENTRYPOINT`의 Docker `Dockerfile`을 재정의하거나, 아직 지정되지 않은 경우 이를 설정합니다.
`entrypoint`이 `Dockerfile`를 지정하지 않거나 `ENTRYPOINT` 명령어를 재정의하려는 경우 `ENTRYPOINT`를 사용합니다.
`entrypoint`를 생략하면 Docker `ENTRYPOINT` 명령에서 지정한 명령이 실행됩니다. Docker `ENTRYPOINT` 명령에는 *shell* 형식과 *exec* 형식이 있습니다. Docker `ENTRYPOINT` 문서는 \_\_ 명령어에서 `ENTRYPOINT` 형태를 사용할 것을 권장합니다.

`entrypoint`이 실행되는 방식에 대한 자세한 내용은 [GitHub Actions에 대한 Dockerfile 지원](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/dockerfile-support#entrypoint)을(를) 참조하세요.

### `runs.post-entrypoint`

**선택 사항**`runs.entrypoint` 작업이 완료되면 정리 스크립트를 실행할 수 있습니다.
GitHub Actions 를 사용하여 `docker run` 이 작업을 시작합니다. 동일한 기본 이미지를 사용하여 새 컨테이너 내에서 스크립트를 실행하므로 GitHub Actions 런타임 상태는 주 `entrypoint` 컨테이너와 다릅니다. 작업 영역인 `HOME`에서 또는 `STATE_` 변수로 필요한 모든 상태에 액세스할 수 있습니다.
`post-entrypoint:` 작업은 기본적으로 항상 실행되지만 [`runs.post-if`](#runspost-if)를 사용하여 이를 재정의할 수 있습니다.

```yaml
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - 'bzz'
  entrypoint: 'main.sh'
  post-entrypoint: 'cleanup.sh'
```

### `runs.args`

**선택 사항** Docker 컨테이너에 대한 입력을 정의하는 문자열 배열입니다. 입력에는 하드 코드된 문자열이 포함될 수 있습니다.
GitHub 는 컨테이너가 시작할 때 `args` 을/를 그것의 `ENTRYPOINT` 에 전달합니다.

`args`는 `CMD`의 `Dockerfile` 명령 대신 사용됩니다.
`CMD`에서 `Dockerfile`를 사용하는 경우, 우선 순위에 따라 정렬된 지침을 사용하세요.

1. 작업의 README에서 필요한 인수를 문서화하고 `CMD` 명령에서 생략합니다.
2. 어떤 `args`도 지정하지 않고 작업을 사용할 수 있는 기본값을 사용합니다.
3. 작업이 `--help` 플래그 또는 이와 유사한 항목을 노출 하는 경우 이를 사용하여 작업을 자체 문서화합니다.

환경 변수를 작업에 전달해야 하는 경우 작업이 명령 셸을 실행하여 변수 대체를 수행하는지 확인하세요. 예를 들어 `entrypoint` 특성이 `"sh -c"`로 설정된 경우 `args`는 명령 셸에서 실행됩니다. 또는 `Dockerfile`이 `ENTRYPOINT`를 사용하여 동일한 명령(`"sh -c"`)을 실행하는 경우 `args`는 명령 셸에서 실행됩니다.

`CMD`와 함께 GitHub Actions 명령을 사용하는 방법에 대한 자세한 내용은 [GitHub Actions에 대한 Dockerfile 지원](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/dockerfile-support#cmd)을 참조하세요.

#### 예: Docker 컨테이너에 대한 인수 정의

```yaml
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - ${{ inputs.greeting }}
    - 'foo'
    - 'bar'
```

## `branding`

**선택 사항** 색상과 [깃털](https://feathericons.com/) 아이콘을 사용하여 배지를 만들어 작업을 맞춤화하고 구별할 수 있습니다. 배지는 작업 이름 [GitHub Marketplace](https://github.com/marketplace?type=actions)옆에 표시됩니다.

### 예: 작업에 대한 브랜딩 구성

```yaml
branding:
  icon: 'award'
  color: 'green'
```

### `branding.color`

배지의 배경색입니다.
`white`, `black`, `yellow`, `blue`, `green`, `orange`, `red`, `purple`, `gray-dark` 중 하나일 수 있습니다.

### `branding.icon`

사용할 v4.28.0 [깃털](https://feathericons.com/) 아이콘의 이름입니다.

#### 생략된 아이콘

브랜드 아이콘과 다음 아이콘은 모두 생략됩니다.

<ul style="-webkit-column-count: 4; -moz-column-count: 4; column-count: 4;">
<li>커피</li>
<li>열</li>
<li>divide-circle</li>
<li>디바이드 스퀘어</li>
<li>나누다</li>
<li>찡그리다</li>
<li>육각형</li>
<li>키</li>
<li>별로야</li>
<li>마우스 포인터</li>
<li>미소</li>
<li>도구</li>
<li>엑스-옥타곤</li>
</ul>

#### 현재 지원되는 모든 아이콘의 전체 목록

<!--
  This list should match the icon list in `app/models/repository_actions/icons.rb` in the internal github repo.
  To support a new icon, update `app/models/repository_actions/icons.rb` and add the svg to `/static/images/icons/feather` in the internal github repo.
-->

<ul style="-webkit-column-count: 4; -moz-column-count: 4; column-count: 4;">
<li>활동</li>
<li>에어플레이</li>
<li>alert-circle</li>
<li>경고-옥타곤</li>
<li>경고 삼각형</li>
<li>가운데 정렬</li>
<li>align-justify</li>
<li>align-left</li>
<li>align-right</li>
<li>앵커</li>
<li>조리개</li>
<li>아카이브</li>
<li>arrow-down-circle</li>
<li>arrow-down-left</li>
<li>arrow-down-right</li>
<li>arrow-down</li>
<li>arrow-left-circle</li>
<li>왼쪽 화살표</li>
<li>arrow-right-circle</li>
<li>오른쪽 화살표</li>
<li>arrow-up-circle</li>
<li>arrow-up-left</li>
<li>arrow-up-right</li>
<li>화살표 위로</li>
<li>at-sign</li>
<li>상</li>
<li>바-차트-2</li>
<li>bar-chart</li>
<li>배터리 충전</li>
<li>배터리</li>
<li>벨 소리 끄기</li>
<li>bell</li>
<li>블루투스</li>
<li>굵게</li>
<li>책 열기</li>
<li>책</li>
<li>북마크</li>
<li>박스</li>
<li>서류 가방</li>
<li>달력</li>
<li>카메라 끄기</li>
<li>카메라</li>
<li>캐스트</li>
<li>체크 서클</li>
<li>check-square</li>
<li>확인</li>
<li>아래 화살표</li>
<li>chevron-left</li>
<li>chevron-right</li>
<li>chevron-up</li>
<li>chevrons-down</li>
<li>chevrons-left</li>
<li>chevrons-right</li>
<li>chevrons-up</li>
<li>원</li>
<li>클립보드</li>
<li>시계</li>
<li>구름-이슬비</li>
<li>클라우드-번개</li>
<li>클라우드 끄기</li>
<li>클라우드-레인</li>
<li>구름-눈</li>
<li>클라우드</li>
<li>코드</li>
<li>명령</li>
<li>나침반</li>
<li>복사</li>
<li>corner-down-left</li>
<li>corner-down-right</li>
<li>corner-left-down</li>
<li>corner-left-up</li>
<li>corner-right-down</li>
<li>corner-right-up</li>
<li>corner-up-left</li>
<li>corner-up-right</li>
<li>CPU</li>
<li>신용카드</li>
<li>crop</li>
<li>crosshair</li>
<li>데이터베이스</li>
<li>삭제</li>
<li>disc</li>
<li>달러 기호</li>
<li>download-cloud</li>
<li>다운로드</li>
<li>드롭렛</li>
<li>edit-2</li>
<li>edit-3</li>
<li>편집</li>
<li>외부 링크</li>
<li>eye-off</li>
<li>눈</li>
<li>빠른 전달</li>
<li>깃털</li>
<li>파일-마이너스</li>
<li>파일 플러스</li>
<li>파일 텍스트</li>
<li>파일</li>
<li>필름</li>
<li>필터</li>
<li>플래그</li>
<li>폴더-마이너스</li>
<li>폴더 추가</li>
<li>폴더</li>
<li>선물</li>
<li>git-branch</li>
<li>git-commit</li>
<li>git-merge (Git 병합 명령어)</li>
<li>git-pull-request (깃 풀 리퀘스트)</li>
<li>지구본</li>
<li>그리드</li>
<li>하드 드라이브</li>
<li>해시</li>
<li>헤드폰</li>
<li>심장</li>
<li>help-circle</li>
<li>홈</li>
<li>이미지</li>
<li>inbox</li>
<li>정보</li>
<li>이탤릭</li>
<li>레이어</li>
<li>레이아웃</li>
<li>life-buoy</li>
<li>link-2</li>
<li>link</li>
<li>목록</li>
<li>로더</li>
<li>잠금</li>
<li>로그인</li>
<li>로그아웃</li>
<li>메일</li>
<li>map-pin</li>
<li>지도</li>
<li>maximize-2</li>
<li>최대화하다</li>
<li>메뉴</li>
<li>메시지 서클</li>
<li>메시지 사각형</li>
<li>마이크 꺼짐</li>
<li>마이크</li>
<li>최소화-2</li>
<li>최소화하다</li>
<li>minus-circle</li>
<li>minus-square</li>
<li>마이너스</li>
<li>모니터</li>
<li>달</li>
<li>더 수평으로</li>
<li>더 수직적</li>
<li>이동</li>
<li>음악</li>
<li>navigation-2</li>
<li>탐색</li>
<li>팔각형</li>
<li>패키지</li>
<li>종이클립</li>
<li>일시 정지-서클</li>
<li>일시 정지</li>
<li>퍼센트</li>
<li>전화 통화</li>
<li>phone-forwarded</li>
<li>전화-수신</li>
<li>phone-missed</li>
<li>휴대전화 꺼짐</li>
<li>전화 발신</li>
<li>전화</li>
<li>파이 차트</li>
<li>play-circle</li>
<li>재생</li>
<li>plus-circle</li>
<li>plus-square</li>
<li>더하기</li>
<li>주머니</li>
<li>전력</li>
<li>프린터</li>
<li>라디오</li>
<li>refresh-ccw</li>
<li>refresh-cw</li>
<li>반복하다</li>
<li>되감기</li>
<li>rotate-ccw</li>
<li>rotate-cw</li>
<li>rss</li>
<li>저장</li>
<li>가위</li>
<li>검색</li>
<li>보내기</li>
<li>서버</li>
<li>설정</li>
<li>share-2</li>
<li>공유하다</li>
<li>차폐 해제</li>
<li>보호</li>
<li>쇼핑백</li>
<li>장바구니</li>
<li>shuffle</li>
<li>사이드바</li>
<li>skip-back</li>
<li>앞으로 건너뛰기</li>
<li>슬래시</li>
<li>슬라이더</li>
<li>스마트폰</li>
<li>스피커</li>
<li>정사각형</li>
<li>별</li>
<li>stop-circle</li>
<li>태양</li>
<li>일출</li>
<li>일몰</li>
<li>테이블</li>
<li>태블릿</li>
<li>태그</li>
<li>목표</li>
<li>터미널</li>
<li>온도계</li>
<li>엄지손가락을 내리다</li>
<li>thumbs-up</li>
<li>왼쪽으로 전환</li>
<li>오른쪽으로 전환</li>
<li>휴지통-2</li>
<li>trash</li>
<li>하락 추세</li>
<li>상승 추세</li>
<li>삼각형</li>
<li>트럭</li>
<li>티비</li>
<li>유형</li>
<li>우산</li>
<li>밑줄</li>
<li>잠금을 해제하다</li>
<li>클라우드 업로드</li>
<li>업로드</li>
<li>사용자 확인</li>
<li>유저-마이너스</li>
<li>user-plus</li>
<li>user-x</li>
<li>사용자</li>
<li>사용자</li>
<li>비디오 끄기</li>
<li>video</li>
<li>음성 메시지</li>
<li>권-1</li>
<li>volume-2</li>
<li>volume-x</li>
<li>볼륨</li>
<li>시계</li>
<li>Wi-Fi 꺼짐</li>
<li>wifi</li>
<li>바람</li>
<li>x-circle</li>
<li>x의 제곱</li>
<li>x</li>
<li>zap-off</li>
<li>zap</li>
<li>확대</li>
<li>축소</li>
</ul>