{"meta":{"title":"메타데이터 구문 참조","intro":"리포지토리에서 작업을 수행하는 작업을 만들 수 있습니다. 사용자 지정 작업을 수행하려면 YAML 구문을 사용하는 메타데이터 파일이 필요합니다.","product":"GitHub Actions","breadcrumbs":[{"href":"/ko/enterprise-server@3.17/actions","title":"GitHub Actions"},{"href":"/ko/enterprise-server@3.17/actions/reference","title":"참조"},{"href":"/ko/enterprise-server@3.17/actions/reference/workflows-and-actions","title":"워크플로 및 작업"},{"href":"/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/metadata-syntax","title":"메타데이터 구문"}],"documentType":"article"},"body":"# 메타데이터 구문 참조\n\n리포지토리에서 작업을 수행하는 작업을 만들 수 있습니다. 사용자 지정 작업을 수행하려면 YAML 구문을 사용하는 메타데이터 파일이 필요합니다.\n\n> \\[!NOTE]\n> Docker 컨테이너, JavaScript 및 복합 작업을 빌드할 수 있습니다. 작업에는 작업의 입력, 출력, 실행 구성을 정의하는 메타데이터 파일이 필요합니다. 작업 메타데이터 파일은 YAML 구문을 사용하며, 메타데이터 파일 이름은 `action.yml` 또는 `action.yaml`여야 합니다. 기본 설정 형식은 `action.yml`입니다.\n\n## `name`\n\n**필수** 작업의 이름입니다.\nGitHub는 각 작업의 작업을 시각적으로 식별하는 데 도움이 되도록 `name` 탭에 \\*\\*\\*\\* 를 표시합니다.\n\n## `author`\n\n**선택 사항** 작업 작성자의 이름입니다.\n\n## `description`\n\n**필수** 다음은 작업에 대한 간단한 설명입니다.\n\n## `inputs`\n\n**선택 사항** 입력 매개 변수를 사용하면 런타임 중에 작업에서 사용할 데이터를 지정할 수 있습니다.\nGitHub 은 입력 매개 변수를 환경 변수로 저장합니다. 소문자 입력 ID를 사용하는 것이 좋습니다.\n\n### 예: 입력 지정\n\n이 예에서는 두 개의 입력을 구성합니다: `num-octocats`과 `octocat-eye-color`입니다.\n`num-octocats` 입력은 필수가 아니며 기본값은 `1`입니다.\n`octocat-eye-color`은 필수 입력이며 기본값이 없습니다.\n\n> \\[!NOTE]\n> `required: true`를 사용하는 작업은 입력이 지정되지 않은 경우 자동으로 오류를 반환하지 않습니다.\n\n이 작업을 사용하는 워크플로 파일은 `with` 키워드를 사용하여 `octocat-eye-color`에 대한 입력 값을 설정할 수 있습니다.\n`with` 구문에 대한 자세한 내용은 [GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepswith)을(를) 참조하세요.\n\n```yaml\ninputs:\n  num-octocats:\n    description: 'Number of Octocats'\n    required: false\n    default: '1'\n  octocat-eye-color:\n    description: 'Eye color of the Octocats'\n    required: true\n```\n\n입력을 지정하면 GitHub는 `INPUT_<VARIABLE_NAME>`라는 이름의 입력용 환경 변수를 만듭니다. 만들어진 환경 변수는 입력 이름을 대문자로 변환하고 공백을 `_` 문자로 바꿉니다.\n\n[복합체](/ko/enterprise-server@3.17/actions/tutorials/create-actions/create-a-composite-action)를 사용하여 작업이 작성된 경우, 자동으로 `INPUT_<VARIABLE_NAME>`을 가져오지 않습니다. 복합 작업을 사용하면 컨텍스트를 [`inputs`](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/contexts#inputs-context) 사용하여 작업 입력에 액세스할 수 있습니다.\n\nDocker 컨테이너 작업에서 환경 변수에 액세스하려면 작업 메타데이터 파일에서 `args` 키워드를 사용하여 입력을 전달해야 합니다. Docker 컨테이너 작업의 작업 메타데이터 파일에 대한 자세한 내용은 [Docker 컨테이너 작업 만들기](/ko/enterprise-server@3.17/actions/tutorials/use-containerized-services/create-a-docker-container-action#creating-an-action-metadata-file)을(를) 참조하세요.\n\n예를 들어 워크플로가 `num-octocats` 및 `octocat-eye-color` 입력을 정의한 경우 작업 코드는 `INPUT_NUM-OCTOCATS` 및 `INPUT_OCTOCAT-EYE-COLOR` 환경 변수를 사용하여 입력 값을 읽을 수 있습니다.\n\n### `inputs.<input_id>`\n\n**필수** 입력과 연결할 `string` 식별자입니다.\n`<input_id>` 값은 입력 메타데이터의 맵입니다.\n`<input_id>`은 `inputs` 개체 내에서 고유한 식별자여야 합니다.\n`<input_id>`는 문자 또는 `_`로 시작해야 하며 영숫자, `-` 또는 `_`만 포함해야 합니다.\n\n### `inputs.<input_id>.description`\n\n**필수** 입력 매개 변수에 대한 `string` 설명입니다.\n\n### `inputs.<input_id>.required`\n\n**선택 사항** 작업에 입력 매개 변수가 필요한지 여부를 나타내는 `boolean`입니다. 매개 변수가 필요한 경우 `true`로 설정합니다.\n\n### `inputs.<input_id>.default`\n\n**선택 사항** 기본값을 나타내는 `string`입니다. 기본값은 입력 매개 변수가 워크플로 파일에 지정되지 않은 경우에 사용됩니다.\n\n### `inputs.<input_id>.deprecationMessage`\n\n**선택 사항** 입력 매개 변수를 사용하면 `string`이 경고 메시지로 기록됩니다. 이 경고를 사용하여 사용자에게 입력 닫기 이 있음을 알리고 대안을 언급할 수 있습니다.\n\n## `outputs` Docker 컨테이너 및 JavaScript 작업용\n\n**선택 사항** 출력 매개 변수를 사용하면 작업이 설정하는 데이터를 선언할 수 있습니다. 워크플로에서 나중에 실행되는 작업은 이전에 실행한 작업의 출력 데이터 세트를 사용할 수 있습니다. 예를 들어 두 개의 입력(x + y = z)을 추가하는 작업을 수행하는 경우 이 작업은 입력으로 사용할 다른 작업에 대한 합계(z)를 출력할 수 있습니다.\n\n작업당 출력 크기는 최대 1MB입니다. 워크플로 실행의 모든 출력 합계는 최대 50MB가 될 수 있습니다. 크기는 UTF-16 인코딩을 기준으로 추정됩니다.\n\n작업 메타데이터 파일에서 출력을 선언하지 않은 경우에도 출력을 설정하고 워크플로에서 사용할 수 있습니다. 액션의 출력 설정에 대한 자세한 내용은 [GitHub Actions에 대한 워크플로 명령](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-commands#setting-an-output-parameter)을(를) 참조하세요.\n\n### 예: Docker 컨테이너 및 JavaScript 작업에 대한 출력 선언\n\n```yaml\noutputs:\n  sum: # id of the output\n    description: 'The sum of the inputs'\n```\n\n### `outputs.<output_id>`\n\n**필수** 출력과 연결할 `string` 식별자입니다.\n`<output_id>` 값은 출력 메타데이터의 맵입니다.\n`<output_id>`은 `outputs` 개체 내에서 고유한 식별자여야 합니다.\n`<output_id>`는 문자 또는 `_`로 시작해야 하며 영숫자, `-` 또는 `_`만 포함해야 합니다.\n\n### `outputs.<output_id>.description`\n\n**필수** 출력 매개 변수에 대한 `string` 설명입니다.\n\n## 복합 작업을 위한 `outputs`\n\n**선택 사항**`outputs`은 `outputs.<output_id>` 및 `outputs.<output_id>.description`와 동일한 매개 변수를 사용하지만([`outputs`Docker 컨테이너 및 JavaScript 작업에 대한 ](#outputs-for-docker-container-and-javascript-actions) 참조) `value` 토큰도 포함되어 있습니다.\n\n작업당 출력 크기는 최대 1MB입니다. 워크플로 실행의 모든 출력 합계는 최대 50MB가 될 수 있습니다. 크기는 UTF-16 인코딩을 기준으로 추정됩니다.\n\n### 예: 복합 작업에 대한 출력 선언\n\n```yaml\noutputs:\n  random-number:\n    description: \"Random number\"\n    value: ${{ steps.random-number-generator.outputs.random-id }}\nruns:\n  using: \"composite\"\n  steps:\n    - id: random-number-generator\n      run: echo \"random-id=$(echo $RANDOM)\" >> $GITHUB_OUTPUT\n      shell: bash\n```\n\n### `outputs.<output_id>.value`\n\n**필수** 출력 매개 변수가 매핑될 값입니다.\n`string` 또는 컨텍스트가 있는 식으로 설정할 수 있습니다. 예를 들어 `steps` 컨텍스트를 사용하여 출력의 `value`를 단계의 출력 값으로 설정할 수 있습니다.\n\n컨텍스트 구문을 사용하는 방법에 대한 자세한 내용은 [문맥 참조](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/contexts)을(를) 참조하세요.\n\n## `runs`\n\n**필수** JavaScript 작업, 복합 작업 또는 Docker 컨테이너 작업인지와 작업 실행 방식을 지정합니다.\n\n## JavaScript 작업용 `runs`\n\n**필수** 작업 코드의 경로와 코드를 실행하는 데 사용되는 런타임을 구성합니다.\n\n### 예시: Node.js v24 사용\n\n```yaml\nruns:\n  using: 'node24'\n  main: 'main.js'\n```\n\n### JavaScript 작업용 `runs.using`\n\n**필수**[`main`](#runsmain)에 지정된 코드를 실행하는 데 사용되는 런타임입니다.\n\n* Node.js v20에는 `node20`을 사용합니다.\n* Node.js v24에는 `node24`를 사용합니다.\n\n### `runs.main`\n\n**필수** 작업 코드가 포함된 파일입니다.\n[\n`using`\n](#runsusing-for-javascript-actions)에 지정된 런타임은 이 파일을 실행합니다.\n\n### `runs.pre`\n\n**선택 사항**`main:` 작업이 시작되기 전에 작업 시작 시 스크립트를 실행할 수 있습니다. 예를 들어 `pre:`를 사용하여 필수 조건 설정 스크립트를 실행할 수 있습니다.\n[\n`using`\n](#runsusing-for-javascript-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.\n`pre:` 작업은 기본적으로 항상 실행되지만 [`runs.pre-if`](#runspre-if)를 사용하여 이를 재정의할 수 있습니다.\n\n> \\[!NOTE]\n> `runs.pre`는 로컬 작업에 대해 지원되지 않습니다.\n\n이 예제에서 `pre:` 작업은 `setup.js`라는 스크립트를 실행합니다.\n\n```yaml\nruns:\n  using: 'node24'\n  pre: 'setup.js'\n  main: 'index.js'\n  post: 'cleanup.js'\n```\n\n### `runs.pre-if`\n\n**선택 사항**`pre:` 작업 실행을 위한 조건을 정의할 수 있습니다.\n`pre:` 작업은 `pre-if`의 조건이 충족되는 경우에만 실행됩니다. 설정하지 않으면 `pre-if`의 기본값은 `always()`입니다.\n`pre-if`에서 상태 검사 함수는 작업 자체의 상태가 아니라 동작의 상태를 기준으로 평가합니다.\n\n아직 실행된 단계가 없으므로 `step` 컨텍스트를 사용할 수 없습니다.\n\n이 예제에서는 `cleanup.js`는 Linux 기반 실행기에서만 실행됩니다.\n\n```yaml\n  pre: 'cleanup.js'\n  pre-if: runner.os == 'linux'\n```\n\n### `runs.post`\n\n**선택 사항**`main:` 동작이 완료된 후 작업이 끝날 때 스크립트를 실행할 수 있습니다. 예를 들어 `post:`을 사용하여 특정 프로세스를 종료하거나 필요하지 않은 파일을 제거할 수 있습니다.\n[\n`using`\n](#runsusing-for-javascript-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.\n\n이 예제에서 `post:` 작업은 `cleanup.js`라는 스크립트를 실행합니다.\n\n```yaml\nruns:\n  using: 'node24'\n  main: 'index.js'\n  post: 'cleanup.js'\n```\n\n`post:` 작업은 기본적으로 항상 실행되지만 `post-if`를 사용하여 이를 재정의할 수 있습니다.\n\n### `runs.post-if`\n\n**선택 사항**`post:` 작업 실행을 위한 조건을 정의할 수 있습니다.\n`post:` 작업은 `post-if`의 조건이 충족되는 경우에만 실행됩니다. 설정하지 않으면 `post-if`의 기본값은 `always()`입니다.\n`post-if`에서 상태 검사 함수는 작업 자체의 상태가 아니라 동작의 상태를 기준으로 평가합니다.\n\n예를 들어 `cleanup.js`은 Linux 기반 실행기에서만 실행됩니다.\n\n```yaml\n  post: 'cleanup.js'\n  post-if: runner.os == 'linux'\n```\n\n## 복합 작업을 위한 `runs`\n\n**필수** 복합 작업의 경로를 구성합니다.\n\n### 복합 작업을 위한 `runs.using`\n\n**필수** 이 값을 `'composite'`으로 설정해야 합니다.\n\n### `runs.steps`\n\n**필수** 이 작업에서 실행할 단계입니다. 이는 `run` 단계 또는 `uses` 단계일 수 있습니다.\n\n#### `runs.steps[*].run`\n\n**선택 사항** 실행하려는 명령입니다. 다음 둘 중 하나일 수 있습니다: 인라인 또는 작업 저장소의 스크립트.\n\n```yaml\nruns:\n  using: \"composite\"\n  steps:\n    - run: ${{ github.action_path }}/test/script.sh\n      shell: bash\n```\n\n또는 `$GITHUB_ACTION_PATH`를 사용할 수 있습니다.\n\n```yaml\nruns:\n  using: \"composite\"\n  steps:\n    - run: $GITHUB_ACTION_PATH/script.sh\n      shell: bash\n```\n\n자세한 내용은 [문맥 참조](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/contexts#github-context)을(를) 참조하세요.\n\n#### `runs.steps[*].shell`\n\n**선택 사항** 명령을 실행할 셸입니다.\n[GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepsshell)에 나열된 모든 셸을 사용할 수 있습니다.\n`run`이 설정된 경우 필수입니다.\n\n#### `runs.steps[*].if`\n\n**선택 사항**`if` 조건을 사용하여 조건이 충족되지 않는 한 단계가 실행되지 않도록 할 수 있습니다. 지원되는 컨텍스트 및 식을 사용하여 조건을 만들 수 있습니다.\n\n`if` 조건에서 식을 사용하는 경우, 선택에 따라 식 구문(`${{ }}`)을 생략해도 됩니다. GitHub Actions에서 자동으로 `if` 조건을 식으로 평가하기 때문입니다. 그러나, 이 예외는 어디에나 적용되지는 않습니다.\n\n`${{ }}` 식 구문을 사용하거나 `!`이 YAML 형식으로 예약된 표기법이므로 `!` 식이 시작될 때 항상 `''`, `\"\"`, `()` 이스케이프를 사용해야 합니다. 예시:\n\n```yaml\nif: ${{ ! startsWith(github.ref, 'refs/tags/') }}\n```\n\n자세한 내용은 [워크플로 및 작업에서 식 평가](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/expressions)을 참조하세요.\n\n**예: 컨텍스트 사용**\n\n이 단계는 이벤트 유형이 `pull_request`이고 이벤트 작업이 `unassigned`인 경우에만 실행됩니다.\n\n```yaml\nsteps:\n  - run: echo This event is a pull request that had an assignee removed.\n    if: ${{ github.event_name == 'pull_request' && github.event.action == 'unassigned' }}\n```\n\n**예: 상태 검사 함수 사용**\n\n`my backup step`은 복합 작업의 이전 단계가 실패한 경우에만 실행됩니다. 자세한 내용은 [워크플로 및 작업에서 식 평가](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/expressions#status-check-functions)을(를) 참조하세요.\n\n```yaml\nsteps:\n  - name: My first step\n    uses: octo-org/action-name@main\n  - name: My backup step\n    if: ${{ failure() }}\n    uses: actions/heroku@1.0.0\n```\n\n#### `runs.steps[*].name`\n\n**선택 사항** 복합 단계의 이름입니다.\n\n#### `runs.steps[*].id`\n\n**선택 사항** 단계의 고유 식별자입니다.\n`id`를 사용하여 컨텍스트에서 단계를 참조할 수 있습니다. 자세한 내용은 [문맥 참조](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/contexts)을(를) 참조하세요.\n\n#### `runs.steps[*].env`\n\n**선택 사항** 해당 단계에 대해서만 환경 변수의 `map`을 설정합니다. 워크플로에 저장된 환경 변수를 수정하려면 복합 단계에서 `echo \"{name}={value}\" >> $GITHUB_ENV`를 사용합니다.\n\n#### `runs.steps[*].working-directory`\n\n**선택 사항** 명령이 실행되는 작업 디렉터리를 지정합니다.\n\n#### `runs.steps[*].uses`\n\n**선택 사항** 작업 단계의 일부로 실행할 작업을 선택합니다. 작업은 재사용 가능한 코드 단위입니다. 워크플로와 동일한 리포지토리, 퍼블릭 리포지토리 또는 [게시된 Docker 컨테이너 이미지](https://hub.docker.com/)에 정의된 작업을 사용할 수 있습니다.\n\nGit 참조, SHA 또는 Docker 태그 번호를 지정하여 사용 중인 작업의 버전을 포함하는 것이 좋습니다. 버전을 지정하지 않으면 작업 소유자가 업데이트를 게시할 때 워크플로가 중단되거나 예기치 않은 동작이 발생할 수 있습니다.\n\n* 릴리스된 작업 버전의 커밋 SHA를 사용하는 것이 안정성 및 보안 측면에서 가장 안전합니다.\n* 특정 주요 작업 버전을 사용하면 호환성을 유지하면서 중요한 수정 및 보안 패치를 받을 수 있습니다. 또한 워크플로가 계속 작동하도록 합니다.\n* 작업의 기본 분기를 사용하는 것이 편리할 수 있지만 다른 사용자가 호환성이 손상되는 변경으로 새 주 버전을 릴리스하는 경우 워크플로가 중단될 수 있습니다.\n\n일부 작업에는 [`with`](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idstepswith) 키워드를 사용하여 설정해야 하는 입력이 필요합니다. 작업의 추가 정보 파일을 검토하여 필요한 입력을 확인합니다.\n\n```yaml\nruns:\n  using: \"composite\"\n  steps:\n    # Reference a specific commit\n    - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3\n    # Reference the major version of a release\n    - uses: actions/checkout@v6\n    # Reference a specific version\n    - uses: actions/checkout@v6.2.0\n    # Reference a branch\n    - uses: actions/checkout@main\n    # References a subdirectory in a public GitHub repository at a specific branch, ref, or SHA\n    - uses: actions/aws/ec2@main\n    # References an action in the same repository at the running commit\n    - uses: $/.github/actions/my-action\n    # References a local action\n    - uses: ./.github/actions/my-action\n    # References a docker public registry action\n    - uses: docker://gcr.io/cloud-builders/gradle\n    # Reference a docker image published on docker hub\n    - uses: docker://alpine:3.8\n```\n\n복합 작업과 동일한 리포지토리에 저장된 작업을 참조하려면 위의 예제와 같이 자체 리포지토리 참조를 `$/` 사용합니다`$/.github/actions/my-action`. 실행 중인 커밋에서 해당 리포지토리로 확인되므로 먼저 리포지토리를 체크 아웃할 필요가 없으며 접미사를 포함 `@{ref}` 해서는 안 됩니다. 에서 `$/` 구문을 사용할 수 GitHub Enterprise Server없습니다.\n\n및 , `$/`비교`{owner}/{repo}@{ref}``./`는 [GitHub Actions에 대한 워크플로 구문](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/workflow-syntax#example-using-an-action-in-the-same-repository-as-the-workflow-at-the-running-commit-recommended)을 참조하세요.\n\n#### `runs.steps[*].with`\n\n**선택 사항** 작업에 의해 정의된 입력 매개 변수의 `map`입니다. 각 입력 매개 변수는 키/값 쌍입니다. 자세한 내용은 [예: 입력 지정](#example-specifying-inputs)을 참조하세요.\n\n```yaml\nruns:\n  using: \"composite\"\n  steps:\n    - name: My first step\n      uses: actions/hello_world@main\n      with:\n        first_name: Mona\n        middle_name: The\n        last_name: Octocat\n```\n\n#### `runs.steps[*].continue-on-error`\n\n**선택적**  단계가 실패할 때 작업이 실패하지 않도록 합니다. 이 단계가 실패해도 작업이 통과되도록 하려면 `true`로 설정합니다.\n\n## Docker 컨테이너 작업을 위한 `runs`\n\n**필수** Docker 컨테이너 작업에 사용되는 이미지를 구성합니다.\n\n### 예: 리포지토리에서 Dockerfile 사용\n\n```yaml\nruns:\n  using: 'docker'\n  image: 'Dockerfile'\n```\n\n### 예: 퍼블릭 Docker 레지스트리 컨테이너 사용\n\n```yaml\nruns:\n  using: 'docker'\n  image: 'docker://debian:stretch-slim'\n```\n\n### Docker 컨테이너 작업을 위한 `runs.using`\n\n**필수** 이 값을 `'docker'`으로 설정해야 합니다.\n\n### `runs.pre-entrypoint`\n\n**선택 사항**`entrypoint` 작업이 시작되기 전에 스크립트를 실행할 수 있습니다. 예를 들어 `pre-entrypoint:`를 사용하여 필수 조건 설정 스크립트를 실행할 수 있습니다.\nGitHub Actions 는 `docker run` 이 작업을 시작하고 동일한 기본 이미지를 사용하는 새 컨테이너 내에서 스크립트를 실행합니다. 즉, 런타임 상태가 주 `entrypoint` 컨테이너와 다르며 필요한 모든 상태는 작업 영역 `HOME` 또는 `STATE_` 변수로 액세스해야 합니다.\n`pre-entrypoint:` 작업은 기본적으로 항상 실행되지만 [`runs.pre-if`](#runspre-if)를 사용하여 이를 재정의할 수 있습니다.\n\n[\n`using`\n](#runsusing-for-docker-container-actions) 구문으로 지정된 런타임은 이 파일을 실행합니다.\n\n이 예제에서 `pre-entrypoint:` 작업은 `setup.sh`라는 스크립트를 실행합니다.\n\n```yaml\nruns:\n  using: 'docker'\n  image: 'Dockerfile'\n  args:\n    - 'bzz'\n  pre-entrypoint: 'setup.sh'\n  entrypoint: 'main.sh'\n```\n\n### `runs.image`\n\n**필수** 작업을 실행하기 위한 컨테이너로 사용할 Docker 이미지입니다. 값은 Docker 기본 이미지 이름, 리포지토리의 로컬 `Dockerfile`, Docker Hub 또는 다른 레지스트리의 퍼블릭 이미지일 수 있습니다. 리포지토리에 로컬인 `Dockerfile`을 참조하려면 파일 이름이 `Dockerfile`이어야 하고 작업 메타데이터 파일에 상대적인 경로를 사용해야 합니다.\n`docker` 애플리케이션은 이 파일을 실행합니다.\n\n### `runs.env`\n\n**선택 사항** 컨테이너 환경에서 설정할 환경 변수의 키/값 맵을 지정합니다.\n\n### `runs.entrypoint`\n\n**선택 사항**`ENTRYPOINT`의 Docker `Dockerfile`을 재정의하거나, 아직 지정되지 않은 경우 이를 설정합니다.\n`entrypoint`이 `Dockerfile`를 지정하지 않거나 `ENTRYPOINT` 명령어를 재정의하려는 경우 `ENTRYPOINT`를 사용합니다.\n`entrypoint`를 생략하면 Docker `ENTRYPOINT` 명령에서 지정한 명령이 실행됩니다. Docker `ENTRYPOINT` 명령에는 *shell* 형식과 *exec* 형식이 있습니다. Docker `ENTRYPOINT` 문서는 \\_\\_ 명령어에서 `ENTRYPOINT` 형태를 사용할 것을 권장합니다.\n\n`entrypoint`이 실행되는 방식에 대한 자세한 내용은 [GitHub Actions에 대한 Dockerfile 지원](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/dockerfile-support#entrypoint)을(를) 참조하세요.\n\n### `runs.post-entrypoint`\n\n**선택 사항**`runs.entrypoint` 작업이 완료되면 정리 스크립트를 실행할 수 있습니다.\nGitHub Actions 를 사용하여 `docker run` 이 작업을 시작합니다. 동일한 기본 이미지를 사용하여 새 컨테이너 내에서 스크립트를 실행하므로 GitHub Actions 런타임 상태는 주 `entrypoint` 컨테이너와 다릅니다. 작업 영역인 `HOME`에서 또는 `STATE_` 변수로 필요한 모든 상태에 액세스할 수 있습니다.\n`post-entrypoint:` 작업은 기본적으로 항상 실행되지만 [`runs.post-if`](#runspost-if)를 사용하여 이를 재정의할 수 있습니다.\n\n```yaml\nruns:\n  using: 'docker'\n  image: 'Dockerfile'\n  args:\n    - 'bzz'\n  entrypoint: 'main.sh'\n  post-entrypoint: 'cleanup.sh'\n```\n\n### `runs.args`\n\n**선택 사항** Docker 컨테이너에 대한 입력을 정의하는 문자열 배열입니다. 입력에는 하드 코드된 문자열이 포함될 수 있습니다.\nGitHub 는 컨테이너가 시작할 때 `args` 을/를 그것의 `ENTRYPOINT` 에 전달합니다.\n\n`args`는 `CMD`의 `Dockerfile` 명령 대신 사용됩니다.\n`CMD`에서 `Dockerfile`를 사용하는 경우, 우선 순위에 따라 정렬된 지침을 사용하세요.\n\n1. 작업의 README에서 필요한 인수를 문서화하고 `CMD` 명령에서 생략합니다.\n2. 어떤 `args`도 지정하지 않고 작업을 사용할 수 있는 기본값을 사용합니다.\n3. 작업이 `--help` 플래그 또는 이와 유사한 항목을 노출 하는 경우 이를 사용하여 작업을 자체 문서화합니다.\n\n환경 변수를 작업에 전달해야 하는 경우 작업이 명령 셸을 실행하여 변수 대체를 수행하는지 확인하세요. 예를 들어 `entrypoint` 특성이 `\"sh -c\"`로 설정된 경우 `args`는 명령 셸에서 실행됩니다. 또는 `Dockerfile`이 `ENTRYPOINT`를 사용하여 동일한 명령(`\"sh -c\"`)을 실행하는 경우 `args`는 명령 셸에서 실행됩니다.\n\n`CMD`와 함께 GitHub Actions 명령을 사용하는 방법에 대한 자세한 내용은 [GitHub Actions에 대한 Dockerfile 지원](/ko/enterprise-server@3.17/actions/reference/workflows-and-actions/dockerfile-support#cmd)을 참조하세요.\n\n#### 예: Docker 컨테이너에 대한 인수 정의\n\n```yaml\nruns:\n  using: 'docker'\n  image: 'Dockerfile'\n  args:\n    - ${{ inputs.greeting }}\n    - 'foo'\n    - 'bar'\n```\n\n## `branding`\n\n**선택 사항** 색상과 [깃털](https://feathericons.com/) 아이콘을 사용하여 배지를 만들어 작업을 맞춤화하고 구별할 수 있습니다. 배지는 작업 이름 [GitHub Marketplace](https://github.com/marketplace?type=actions)옆에 표시됩니다.\n\n### 예: 작업에 대한 브랜딩 구성\n\n```yaml\nbranding:\n  icon: 'award'\n  color: 'green'\n```\n\n### `branding.color`\n\n배지의 배경색입니다.\n`white`, `black`, `yellow`, `blue`, `green`, `orange`, `red`, `purple`, `gray-dark` 중 하나일 수 있습니다.\n\n### `branding.icon`\n\n사용할 v4.28.0 [깃털](https://feathericons.com/) 아이콘의 이름입니다.\n\n#### 생략된 아이콘\n\n브랜드 아이콘과 다음 아이콘은 모두 생략됩니다.\n\n<ul style=\"-webkit-column-count: 4; -moz-column-count: 4; column-count: 4;\">\n<li>커피</li>\n<li>열</li>\n<li>divide-circle</li>\n<li>디바이드 스퀘어</li>\n<li>나누다</li>\n<li>찡그리다</li>\n<li>육각형</li>\n<li>키</li>\n<li>별로야</li>\n<li>마우스 포인터</li>\n<li>미소</li>\n<li>도구</li>\n<li>엑스-옥타곤</li>\n</ul>\n\n#### 현재 지원되는 모든 아이콘의 전체 목록\n\n<!--\n  This list should match the icon list in `app/models/repository_actions/icons.rb` in the internal github repo.\n  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.\n-->\n\n<ul style=\"-webkit-column-count: 4; -moz-column-count: 4; column-count: 4;\">\n<li>활동</li>\n<li>에어플레이</li>\n<li>alert-circle</li>\n<li>경고-옥타곤</li>\n<li>경고 삼각형</li>\n<li>가운데 정렬</li>\n<li>align-justify</li>\n<li>align-left</li>\n<li>align-right</li>\n<li>앵커</li>\n<li>조리개</li>\n<li>아카이브</li>\n<li>arrow-down-circle</li>\n<li>arrow-down-left</li>\n<li>arrow-down-right</li>\n<li>arrow-down</li>\n<li>arrow-left-circle</li>\n<li>왼쪽 화살표</li>\n<li>arrow-right-circle</li>\n<li>오른쪽 화살표</li>\n<li>arrow-up-circle</li>\n<li>arrow-up-left</li>\n<li>arrow-up-right</li>\n<li>화살표 위로</li>\n<li>at-sign</li>\n<li>상</li>\n<li>바-차트-2</li>\n<li>bar-chart</li>\n<li>배터리 충전</li>\n<li>배터리</li>\n<li>벨 소리 끄기</li>\n<li>bell</li>\n<li>블루투스</li>\n<li>굵게</li>\n<li>책 열기</li>\n<li>책</li>\n<li>북마크</li>\n<li>박스</li>\n<li>서류 가방</li>\n<li>달력</li>\n<li>카메라 끄기</li>\n<li>카메라</li>\n<li>캐스트</li>\n<li>체크 서클</li>\n<li>check-square</li>\n<li>확인</li>\n<li>아래 화살표</li>\n<li>chevron-left</li>\n<li>chevron-right</li>\n<li>chevron-up</li>\n<li>chevrons-down</li>\n<li>chevrons-left</li>\n<li>chevrons-right</li>\n<li>chevrons-up</li>\n<li>원</li>\n<li>클립보드</li>\n<li>시계</li>\n<li>구름-이슬비</li>\n<li>클라우드-번개</li>\n<li>클라우드 끄기</li>\n<li>클라우드-레인</li>\n<li>구름-눈</li>\n<li>클라우드</li>\n<li>코드</li>\n<li>명령</li>\n<li>나침반</li>\n<li>복사</li>\n<li>corner-down-left</li>\n<li>corner-down-right</li>\n<li>corner-left-down</li>\n<li>corner-left-up</li>\n<li>corner-right-down</li>\n<li>corner-right-up</li>\n<li>corner-up-left</li>\n<li>corner-up-right</li>\n<li>CPU</li>\n<li>신용카드</li>\n<li>crop</li>\n<li>crosshair</li>\n<li>데이터베이스</li>\n<li>삭제</li>\n<li>disc</li>\n<li>달러 기호</li>\n<li>download-cloud</li>\n<li>다운로드</li>\n<li>드롭렛</li>\n<li>edit-2</li>\n<li>edit-3</li>\n<li>편집</li>\n<li>외부 링크</li>\n<li>eye-off</li>\n<li>눈</li>\n<li>빠른 전달</li>\n<li>깃털</li>\n<li>파일-마이너스</li>\n<li>파일 플러스</li>\n<li>파일 텍스트</li>\n<li>파일</li>\n<li>필름</li>\n<li>필터</li>\n<li>플래그</li>\n<li>폴더-마이너스</li>\n<li>폴더 추가</li>\n<li>폴더</li>\n<li>선물</li>\n<li>git-branch</li>\n<li>git-commit</li>\n<li>git-merge (Git 병합 명령어)</li>\n<li>git-pull-request (깃 풀 리퀘스트)</li>\n<li>지구본</li>\n<li>그리드</li>\n<li>하드 드라이브</li>\n<li>해시</li>\n<li>헤드폰</li>\n<li>심장</li>\n<li>help-circle</li>\n<li>홈</li>\n<li>이미지</li>\n<li>inbox</li>\n<li>정보</li>\n<li>이탤릭</li>\n<li>레이어</li>\n<li>레이아웃</li>\n<li>life-buoy</li>\n<li>link-2</li>\n<li>link</li>\n<li>목록</li>\n<li>로더</li>\n<li>잠금</li>\n<li>로그인</li>\n<li>로그아웃</li>\n<li>메일</li>\n<li>map-pin</li>\n<li>지도</li>\n<li>maximize-2</li>\n<li>최대화하다</li>\n<li>메뉴</li>\n<li>메시지 서클</li>\n<li>메시지 사각형</li>\n<li>마이크 꺼짐</li>\n<li>마이크</li>\n<li>최소화-2</li>\n<li>최소화하다</li>\n<li>minus-circle</li>\n<li>minus-square</li>\n<li>마이너스</li>\n<li>모니터</li>\n<li>달</li>\n<li>더 수평으로</li>\n<li>더 수직적</li>\n<li>이동</li>\n<li>음악</li>\n<li>navigation-2</li>\n<li>탐색</li>\n<li>팔각형</li>\n<li>패키지</li>\n<li>종이클립</li>\n<li>일시 정지-서클</li>\n<li>일시 정지</li>\n<li>퍼센트</li>\n<li>전화 통화</li>\n<li>phone-forwarded</li>\n<li>전화-수신</li>\n<li>phone-missed</li>\n<li>휴대전화 꺼짐</li>\n<li>전화 발신</li>\n<li>전화</li>\n<li>파이 차트</li>\n<li>play-circle</li>\n<li>재생</li>\n<li>plus-circle</li>\n<li>plus-square</li>\n<li>더하기</li>\n<li>주머니</li>\n<li>전력</li>\n<li>프린터</li>\n<li>라디오</li>\n<li>refresh-ccw</li>\n<li>refresh-cw</li>\n<li>반복하다</li>\n<li>되감기</li>\n<li>rotate-ccw</li>\n<li>rotate-cw</li>\n<li>rss</li>\n<li>저장</li>\n<li>가위</li>\n<li>검색</li>\n<li>보내기</li>\n<li>서버</li>\n<li>설정</li>\n<li>share-2</li>\n<li>공유하다</li>\n<li>차폐 해제</li>\n<li>보호</li>\n<li>쇼핑백</li>\n<li>장바구니</li>\n<li>shuffle</li>\n<li>사이드바</li>\n<li>skip-back</li>\n<li>앞으로 건너뛰기</li>\n<li>슬래시</li>\n<li>슬라이더</li>\n<li>스마트폰</li>\n<li>스피커</li>\n<li>정사각형</li>\n<li>별</li>\n<li>stop-circle</li>\n<li>태양</li>\n<li>일출</li>\n<li>일몰</li>\n<li>테이블</li>\n<li>태블릿</li>\n<li>태그</li>\n<li>목표</li>\n<li>터미널</li>\n<li>온도계</li>\n<li>엄지손가락을 내리다</li>\n<li>thumbs-up</li>\n<li>왼쪽으로 전환</li>\n<li>오른쪽으로 전환</li>\n<li>휴지통-2</li>\n<li>trash</li>\n<li>하락 추세</li>\n<li>상승 추세</li>\n<li>삼각형</li>\n<li>트럭</li>\n<li>티비</li>\n<li>유형</li>\n<li>우산</li>\n<li>밑줄</li>\n<li>잠금을 해제하다</li>\n<li>클라우드 업로드</li>\n<li>업로드</li>\n<li>사용자 확인</li>\n<li>유저-마이너스</li>\n<li>user-plus</li>\n<li>user-x</li>\n<li>사용자</li>\n<li>사용자</li>\n<li>비디오 끄기</li>\n<li>video</li>\n<li>음성 메시지</li>\n<li>권-1</li>\n<li>volume-2</li>\n<li>volume-x</li>\n<li>볼륨</li>\n<li>시계</li>\n<li>Wi-Fi 꺼짐</li>\n<li>wifi</li>\n<li>바람</li>\n<li>x-circle</li>\n<li>x의 제곱</li>\n<li>x</li>\n<li>zap-off</li>\n<li>zap</li>\n<li>확대</li>\n<li>축소</li>\n</ul>"}