{"meta":{"title":"GitHub Actions Importer를 사용하여 Bitbucket 파이프라인에서 마이그레이션","intro":"GitHub Actions Importer를 사용하여 Bitbucket 파이프라인을 GitHub Actions로 마이그레이션하는 작업을 자동화하는 방법을 알아보세요.","product":"GitHub Actions","breadcrumbs":[{"href":"/ko/actions","title":"GitHub Actions"},{"href":"/ko/actions/tutorials","title":"자습서"},{"href":"/ko/actions/tutorials/migrate-to-github-actions","title":"GitHub Actions로 마이그레이션"},{"href":"/ko/actions/tutorials/migrate-to-github-actions/automated-migrations","title":"자동화된 마이그레이션"},{"href":"/ko/actions/tutorials/migrate-to-github-actions/automated-migrations/bitbucket-pipelines-migration","title":"Bitbucket 파이프라인 마이그레이션"}],"documentType":"article"},"body":"# GitHub Actions Importer를 사용하여 Bitbucket 파이프라인에서 마이그레이션\n\nGitHub Actions Importer를 사용하여 Bitbucket 파이프라인을 GitHub Actions로 마이그레이션하는 작업을 자동화하는 방법을 알아보세요.\n\n## GitHub Actions Importer를 사용하여 Bitbucket 파이프라인에서 마이그레이션하는 정보\n\n아래 지침은 GitHub Actions Importer를 사용하여 Bitbucket Pipelines를 GitHub Actions로 마이그레이션할 수 있도록 환경을 구성하는 방법을 안내합니다.\n\n### 필수 조건\n\n* Linux 기반 컨테이너를 실행하고 필요한 도구를 설치할 수 있는 환경입니다.\n  * Docker가 [설치되어](https://docs.docker.com/get-docker/) 실행 중입니다.\n\n  * [GitHub CLI](https://cli.github.com)가 설치됩니다.\n  > \\[!NOTE]\n  > GitHub Actions Importer 컨테이너와 CLI는 CI 플랫폼과 동일한 서버에 설치할 필요가 없습니다.\n\n### 제한 사항\n\nBitbucket Pipelines에서 GitHub Actions로 GitHub Actions Importer를 사용해 마이그레이션할 때 몇 가지 제한 사항이 있습니다.\n\n* 프라이빗 AWS ECR의 이미지는 지원되지 않습니다.\n* Bitbucket 파이프라인 옵션 `size`은(는) 지원되지 않습니다.\n\nGitHub Actions에서 추가 실행기 리소스가 필요한 경우 더 큰 실행기를 사용하는 것을 고려하세요. 자세한 내용은 [더 큰 러너 사용](/ko/actions/how-tos/manage-runners/larger-runners)을 참조하세요.\n\n* 작업의 큐 시간을 자세히 설명하는 메트릭은 `forecast` 명령에서 지원되지 않습니다.\n* Bitbucket [사후 스크립트](https://support.atlassian.com/bitbucket-cloud/docs/step-options/#After-script)는 GitHub Actions`always()`를 함께 사용하고 이전 단계의 `steps.<step_id>.conclusion`를 확인하여 지원됩니다. 자세한 내용은 [문맥 참조](/ko/actions/reference/workflows-and-actions/contexts#steps-context)을(를) 참조하세요.\n\n  다음은 `always()`와 `steps.<step_id>.conclusion`의 사용 예입니다.\n\n  ```yaml\n    - name: After Script 1\n      run: |-\n        echo \"I'm after the script ran!\"\n        echo \"We should be grouped!\"\n      id: after-script-1\n      if: \"${{ always() }}\"\n    - name: After Script 2\n      run: |-\n        echo \"this is really the end\"\n        echo \"goodbye, for now!\"\n      id: after-script-2\n      if: \"${{ steps.after-script-1.conclusion == 'success' && always() }}\"\n  ```\n\n### 수동 작업\n\n특정 Bitbucket 파이프라인 구문은 수동으로 마이그레이션해야 합니다. 여기에는 다음이 포함됩니다.\n\n* 보안 리포지토리, 작업 영역 및 배포 변수\n* SSH 키\n\n## GitHub Actions Importer CLI 확장 설치\n\n1. GitHub Actions Importer CLI 확장을 설치합니다.\n\n   ```bash copy\n   gh extension install github/gh-actions-importer\n   ```\n\n2. 다음 확장이 설치되어 있는지 확인:\n\n   ```bash\n   $ gh actions-importer -h\n   Options:\n     -?, -h, --help  Show help and usage information\n\n   Commands:\n     update     Update to the latest version of GitHub Actions Importer.\n     version    Display the version of GitHub Actions Importer.\n     configure  Start an interactive prompt to configure credentials used to authenticate with your CI server(s).\n     audit      Plan your CI/CD migration by analyzing your current CI/CD footprint.\n     forecast   Forecast GitHub Actions usage from historical pipeline utilization.\n     dry-run    Convert a pipeline to a GitHub Actions workflow and output its yaml file.\n     migrate    Convert a pipeline to a GitHub Actions workflow and open a pull request with the changes.\n   ```\n\n## 자격 증명 구성하기\n\n`configure` CLI 명령은 Bitbucket 파이프라인 및 로 작업할 GitHub Actions Importer 때 필요한 자격 증명 및 GitHub옵션을 설정하는 데 사용됩니다.\n\n1. 를 만듭니다 GitHubpersonal access token (classic). 자세한 내용은 [개인용 액세스 토큰 관리](/ko/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic)을(를) 참조하세요.\n\n   이 토큰에는 `workflow` 범위가 있어야 합니다.\n\n   토큰을 만든 후 복사하고 나중에 사용할 수 있도록 안전한 위치에 저장합니다.\n\n2. Bitbucket 파이프라인에 대한 작업 영역 액세스 토큰을 만듭니다. 자세한 내용은 Bitbucket 설명서의 [작업 영역 액세스 토큰 권한](https://support.atlassian.com/bitbucket-cloud/docs/workspace-access-token-permissions/)을 참조하세요. 토큰에는 파이프라인, 프로젝트 및 리포지토리에 대한 `read` 범위가 있어야 합니다.\n\n3. 터미널에서 CLI 명령을 실행 GitHub Actions Importer`configure` 합니다.\n\n   ```shell\n   gh actions-importer configure\n   ```\n\n`configure` 명령을 실행하면 다음 정보를 입력하라는 메시지가 표시됩니다:\n\n* \"어떤 CI 공급자를 구성하나요?\"의 경우 화살표 키를 사용하여 `Bitbucket` 선택하고 <kbd>Space</kbd> 키를 눌러 선택한 다음 <kbd>Enter</kbd> 키를 누릅니다.\n\n* \"Personal access token for GitHub\"의 personal access token (classic) 경우 이전에 만든 값을 입력하고 <kbd>Enter</kbd> 키를 누릅니다.\n\n* \"GitHub 인스턴스의 기본 URL\"<kbd>Enter</kbd> 키를 눌러 기본값(`https://github.com`)을 적용합니다.\n\n* \"Personal access token for Bitbucket\"에 대해 이전에 만든 작업 영역 액세스 토큰을 입력하고 <kbd>Enter</kbd> 키를 누릅니다.\n\n* \"Bitbucket 인스턴스의 기본 URL\"에 Bitbucket 인스턴스의 URL을 입력하고 <kbd>Enter</kbd> 키를 누릅니다.\n\n`configure` 명령의 예가 아래에 나와 있습니다:\n\n```shell\n$ gh actions-importer configure\n✔ Which CI providers are you configuring?: Bitbucket\nEnter the following values (leave empty to omit):\n✔ Personal access token for GitHub: ***************\n✔ Base url of the GitHub instance: https://github.com\n✔ Personal access token for Bitbucket: ********************\n✔ Base url of the Bitbucket instance: https://bitbucket.example.com\nEnvironment variables successfully updated.\n```\n\n1. 터미널에서 GitHub Actions Importer`update` CLI 명령을 실행하여 GitHub PackagesContainer registry에 연결하고, 컨테이너 이미지가 최신 버전으로 업데이트되었는지 확인합니다.\n\n   ```shell\n   gh actions-importer update\n   ```\n\n   명령의 출력은 아래와 비슷해야 합니다:\n\n   ```shell\n   Updating ghcr.io/actions-importer/cli:latest...\n   ghcr.io/actions-importer/cli:latest up-to-date\n   ```\n\n## Bitbucket 인스턴스에 대한 감사 수행\n\n감사 명령을 사용하여 Bitbucket 인스턴스의 파이프라인을 개략적으로 볼 수 있습니다.\n\n감사 명령은 다음 단계를 수행합니다:\n\n1. 작업 영역에 대한 모든 파이프라인을 가져옵니다.\n2. 파이프라인을 해당 GitHub Actions 워크플로로 변환합니다.\n3. 마이그레이션의 완전성과 복잡성을 GitHub Actions Importer와 함께 어느 정도까지 구현할 수 있는지를 요약한 보고서를 생성합니다.\n\n### 감사 명령 실행\n\n감사를 수행하려면 터미널에서 다음 명령을 실행하고 `:workspace`을(를) 감사할 Bitbucket 작업 영역의 이름으로 바꿉니다.\n\n```bash\ngh actions-importer audit bitbucket --workspace :workspace --output-dir tmp/audit\n```\n\n필요에 따라 감사 명령에 `--project-key` 옵션을 제공하여 결과를 프로젝트와 연결된 파이프라인으로만 제한할 수 있습니다.\n\n아래 예제에서 명령은 `:project_key`을(를) 감사해야 하는 프로젝트의 키로 바꿔야 합니다. 프로젝트 키는 작업 영역 프로젝트 페이지의 Bitbucket에서 찾을 수 있습니다.\n\n```bash\ngh actions-importer audit bitbucket --workspace :workspace --project-key :project_key --output-dir tmp/audit\n```\n\n### 감사 결과 검사하기\n\n지정된 출력 디렉터리의 파일에는 감사의 결과가 포함됩니다. 감사 결과에 대한 요약은 `audit_summary.md` 파일을 참조하세요.\n\n감사 요약에는 다음의 섹션이 있습니다.\n\n#### 파이프라인\n\n\"파이프라인\" 섹션에는 GitHub Actions Importer에 의해 수행된 전환율에 대한 개략적인 통계가 포함되어 있습니다.\n\n아래에 \"파이프라인\" 섹션에 나타날 수 있는 몇 가지 주요 용어가 나와 있습니다.\n\n* **성공한** 파이프라인에서는 파이프라인 구성 요소와 개별 항목이 100% 자동으로 해당 GitHub Actions 항목으로 변환되었습니다.\n* **부분적으로 성공한** 파이프라인에는 모든 파이프라인 구문이 변환되었지만, 해당 항목으로 자동으로 GitHub Actions 변환되지 않은 일부 개별 항목이 있었습니다.\n* **지원되지 않는** 파이프라인은 .에서 지원하지 GitHub Actions Importer않는 정의 형식입니다.\n* **실패한** 파이프라인이 변환되는 동안 치명적인 오류가 발생했습니다. 이 현상은 다음의 3가지 이유로 발생할 수 있습니다.\n  * 파이프라인이 원래 잘못 구성되어 유효하지 않습니다.\n  * GitHub Actions Importer 변환할 때 내부 오류가 발생했습니다.\n  * 파이프라인에 액세스할 수 없게 되는 실패한 네트워크 응답이 있으며, 이는 종종 잘못된 자격 증명 때문입니다.\n\n#### 빌드 단계\n\n\"빌드 단계\" 섹션에는 모든 파이프라인에서 사용되는 개별 빌드 단계에 대한 개요와 GitHub Actions Importer에 의해 자동으로 변환된 단계 수가 포함되어 있습니다.\n\n아래에는 \"빌드 단계\" 섹션에 나타날 수 있는 몇 가지 주요 용어가 나열되어 있습니다.\n\n* **알려진** 빌드 단계는 해당 동작으로 자동으로 변환된 단계입니다.\n* **알 수 없는** 빌드 단계는 동등한 작업으로 자동 변환되지 않은 단계입니다.\n* **지원되지 않는** 빌드 단계는 다음과 같은 단계입니다.\n  * 기본적으로 GitHub Actions에서 지원되지 않습니다.\n  * GitHub Actions와 호환되지 않는 방식으로 구성됩니다.\n* **작업**은 변환된 워크플로에서 사용된 작업의 목록입니다. 이 작업은 다음과 같은 경우에 중요할 수 있습니다.\n  * GitHub Enterprise Server를 사용하는 경우 인스턴스에 동기화할 작업 목록을 수집 중입니다.\n  * 사용되는 작업의 조직 수준 허용 목록을 정의합니다. 이 작업 목록은 보안 또는 규정 준수 팀에서 검토해야 할 수도 있는 포괄적인 작업 목록입니다.\n\n#### 수동 작업\n\n\"수동 작업\" 섹션에는 자동으로 완료할 수 없으며 수동으로 완료해야 하는 작업에 GitHub Actions Importer 대한 개요가 포함되어 있습니다.\n\n다음은 \"수동 작업\" 섹션에 표시될 수 있는 몇 가지 주요 용어입니다.\n\n* **비밀**은 변환된 파이프라인에서 사용되는 리포지토리 또는 조직 수준의 비밀입니다. 이러한 파이프라인이 제대로 작동하려면 이러한 비밀을 수동으로 GitHub Actions 만들어야 합니다. 자세한 내용은 [GitHub Actions에서 비밀 사용](/ko/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets)을(를) 참조하세요.\n* **자체 호스팅 러너**란 GitHub 호스팅 러너가 아닌, 변환된 파이프라인에서 참조되는 러너의 레이블을 의미합니다. 이 파이프라인들이 정상적으로 작동하려면 이러한 러너를 수동으로 정의해야 합니다.\n\n#### 파일\n\n감사 보고서의 마지막 섹션에는 감사 중 디스크에 기록된 모든 파일의 매니페스트를 제공합니다.\n\n각 파이프라인 파일에는 감사에 포함되는 다음과 같은 다양한 파일이 포함됩니다:\n\n* GitHub에서 정의된 원래 파이프라인입니다.\n* 파이프라인을 변환하기 위해 사용되는 모든 네트워크 응답입니다.\n* 변환된 워크플로 파일입니다.\n* 실패한 파이프라인 변환 문제를 해결하기 위해 사용할 수 있는 스택 추적입니다.\n\n또한 `workflow_usage.csv` 파일에는 성공적으로 변환된 각 파이프라인에서 사용되는 모든 작업, 비밀 및 실행기의 쉼표로 구분된 목록이 포함됩니다. 이는 작업, 비밀 또는 실행기를 사용하는 워크플로를 결정하는 데 유용할 수 있으며, 보안 검토를 수행하는 데 유용할 수 있습니다.\n\n## 예측 사용\n\n이 `forecast` 명령을 사용하여 Bitbucket 인스턴스에서 완료된 파이프라인 실행의 메트릭을 계산하여 잠재적 사용 GitHub Actions 량을 예측할 수 있습니다.\n\n### 예측 명령 실행하기\n\n잠재적인 GitHub Actions 사용량 예측을 수행하려면 터미널에서 다음 명령을 실행하여 `:workspace` 예측할 Bitbucket 작업 영역의 이름으로 바꿉 있습니다. 기본적으로 GitHub Actions Importer는 예측 보고서에 이전 7일을 포함합니다.\n\n```shell\ngh actions-importer forecast bitbucket --workspace :workspace --output-dir tmp/forecast_reports\n```\n\n### 프로젝트 예측\n\n예측을 프로젝트로 제한하려면 `--project-key` 옵션을 사용할 수 있습니다.\n`:project_key`의 값을 예측할 프로젝트의 프로젝트 키로 바꿉니다.\n\n```shell\ngh actions-importer forecast bitbucket --workspace :workspace --project-key :project_key --output-dir tmp/forecast_reports\n```\n\n### 예측 보고서 검사하기\n\n지정된 출력 디렉터리의 `forecast_report.md` 파일에 예측 결과가 포함되어 있습니다.\n\n다음은 예상 보고서에 표시될 수 있는 몇 가지 주요 용어입니다:\n\n* **작업 수**는 완료된 작업의 총 개수입니다.\n* **파이프라인 수**는 사용된 고유 파이프라인의 수입니다.\n* **실행 시간:** 은 러너가 작업에 소비한 시간을 나타냅니다. 이 메트릭은 GitHub에서 호스팅되는 실행기의 비용을 계획하는 데 사용할 수 있습니다.\n  * 이 메트릭은 지출할 것으로 예상되는 금액과 상관 관계가 있습니다 GitHub Actions. 해당 금액은 작업 시간(분) 동안 사용되는 하드웨어에 따라 달라집니다.\n    [가격 계산기를GitHub Actions](https://github.com/pricing/calculator) 사용하여 비용을 예측할 수 있습니다.\n* **동시 작업** 메트릭은 특정 시간에 실행 중인 작업의 양을 설명합니다.\n\n## 드라이 런 마이그레이션 수행\n\ndry-run 명령을 사용하여 Bitbucket 파이프라인을 동등한 GitHub Actions 워크플로로 변환할 수 있습니다. 드라이런은 지정된 디렉터리에 출력 파일을 만들지만 파이프라인 마이그레이션을 위한 풀 리퀘스트를 열지 않습니다.\n\n### 시험 실행 명령 실행\n\nBitbucket 파이프라인을 GitHub Actions로 마이그레이션하는 드라이 런을 수행하려면, 터미널에서 다음 명령을 실행하고 `:workspace`는 작업 영역 이름으로, `:repo`는 Bitbucket의 리포지토리 이름으로 각각 바꾸세요.\n\n```bash\ngh actions-importer dry-run bitbucket --workspace :workspace --repository :repo --output-dir tmp/dry-run\n```\n\n### 변환된 워크플로 검사\n\n지정된 출력 디렉터리에서 드라이런 로그 및 변환된 워크플로 파일을 볼 수 있습니다.\n\n알 수 없는 빌드 단계 또는 부분적으로 성공한 파이프라인과 같이 자동으로 변환할 수 없는 항목 GitHub Actions Importer 이 있는 경우 변환 프로세스를 추가로 사용자 지정하는 사용자 지정 변환기를 만들 수 있습니다. 자세한 내용은 [사용자 지정 변환기를 사용하여 GitHub Actions Importer 확장](/ko/actions/reference/github-actions-importer/custom-transformers)을(를) 참조하세요.\n\n## 프로덕션 마이그레이션 수행\n\nmigrate 명령을 사용하여 Bitbucket 파이프라인을 변환하고 해당하는 GitHub Actions 워크플로를 사용하여 끌어오기 요청을 열 수 있습니다.\n\n### 마이그레이션 명령 실행\n\nBitbucket 파이프라인을 GitHub Actions마이그레이션하려면 터미널에서 다음 명령을 실행하여 다음 값을 대체합니다.\n\n* `target-url` 값을 GitHub 리포지토리 URL로 바꾸세요.\n* Bitbucket에서 `:repo`을(를) 리포지토리 소유자의 이름으로 바꿉니다.\n* `:workspace`을(를) 작업 영역 이름으로 바꿉니다.\n\n```bash\ngh actions-importer migrate bitbucket --workspace :workspace --repository :repo --target-url https://github.com/:owner/:repo --output-dir tmp/dry-run\n```\n\n명령의 출력에는 변환된 워크플로를 리포지토리에 추가하는 풀 리퀘스트의 URL이 포함됩니다. 성공적인 출력의 예는 다음과 유사합니다:\n\n```bash\ngh actions-importer migrate bitbucket --workspace actions-importer --repository custom-trigger --target-url https://github.com/valet-dev-testing/demo-private --output-dir tmp/bitbucket\n[2023-07-18 09:56:06] Logs: 'tmp/bitbucket/log/valet-20230718-165606.log'\n[2023-07-18 09:56:24] Pull request: 'https://github.com/valet-dev-testing/demo-private/pull/55'\n```\n\n### 끌어오기 요청 검사하기\n\n`migrate` 명령의 성공적인 실행의 출력에는 변환된 워크플로를 리포지토리에 추가하는 새 끌어오기 요청에 대한 링크가 포함되어 있습니다.\n\n끌어오기 요청의 몇 가지 중요 요소는 다음과 같습니다.\n\n* 끌어오기 요청 설명에서 **수동으로 완료해야 하는 단계**를 나열하는 섹션은 파이프라인을 GitHub Actions로 마이그레이션을 완료할 수 있습니다. 예를 들어, 이 섹션에서는 워크플로에 사용되는 비밀을 만들도록 지시할 수 있습니다.\n* 변환된 워크플로 파일입니다. 끌어오기 요청에서 **Files changed** 탭을 선택하여 GitHub 리포지토리에 추가될 워크플로 파일을 봅니다.\n\n끌어오기 요청 검사를 마치면 병합하여 워크플로를 GitHub 리포지토리에 추가할 수 있습니다.\n\n## 참조\n\n이 섹션에는 Bitbucket 파이프라인에서 마이그레이션하는 데 사용할 GitHub Actions Importer 때 환경 변수, 선택적 인수 및 지원되는 구문에 대한 참조 정보가 포함되어 있습니다.\n\n### 환경 변수 사용\n\nGitHub Actions Importer은(는) 인증 구성에 환경 변수를 사용합니다. 이러한 변수는 `configure` 명령을 사용하여 구성 프로세스를 따르면 설정됩니다. 자세한 정보는 [자격 증명 구성](#configuring-credentials) 섹션을 참조하세요.\n\nGitHub Actions Importer 에서는 다음 환경 변수를 사용하여 Bitbucket 인스턴스에 연결합니다.\n\n* `GITHUB_ACCESS_TOKEN`: 변환된 워크플로로 pull request를 생성하는 데 사용되는 personal access token (classic)(`repo` 및 `workflow` 범위 필요).\n* `GITHUB_INSTANCE_URL`: 대상 GitHub 인스턴스의 URL입니다. (예: `https://github.com`)\n* `BITBUCKET_ACCESS_TOKEN`: 파이프라인, 프로젝트 및 리포지토리에 대한 읽기 범위가 있는 작업 영역 액세스 토큰입니다.\n\n이러한 환경 변수는 실행 시 `.env.local`에 의해 로드되는 GitHub Actions Importer 파일에 지정할 수 있습니다. 배포 보관 파일에는 이러한 파일을 만드는 데 사용할 수 있는 `.env.local.template` 파일이 포함되어 있습니다.\n\n### 선택형 인수\n\nGitHub Actions Importer 하위 명령과 함께 사용하여 마이그레이션을 사용자 지정할 수 있는 선택적 인수가 있습니다.\n\n#### `--source-file-path`\n\n`--source-file-path` 인수를 `dry-run` 또는 `migrate` 하위 명령과 함께 사용할 수 있습니다.\n\n기본적으로 GitHub Actions Importer Bitbucket 인스턴스에서 파이프라인 콘텐츠를 가져옵니다. 인수는 `--source-file-path` 지정된 소스 파일 경로를 대신 사용하도록 지시 GitHub Actions Importer 합니다.\n\n예시:\n\n```bash\ngh actions-importer dry-run bitbucket --workspace :workspace --repository :repo --output-dir tmp/dry-run --source-file-path path/to/my/pipeline/file.yml\n```\n\n#### `--config-file-path`\n\n`--config-file-path` 인수를 `audit`, `dry-run` 및 `migrate` 하위 명령과 함께 사용할 수 있습니다.\n\n기본적으로 GitHub Actions Importer Bitbucket 인스턴스에서 파이프라인 콘텐츠를 가져옵니다. 인수는 `--config-file-path` 지정된 소스 파일을 대신 사용하도록 지시 GitHub Actions Importer 합니다.\n\n### 감사의 예\n\n이 예제에서는 GitHub Actions Importer 지정된 YAML 구성 파일을 사용하여 감사를 수행합니다.\n\n```bash\ngh actions-importer audit bitbucket --workspace :workspace --output-dir tmp/audit --config-file-path \"path/to/my/bitbucket/config.yml\"\n```\n\n구성 파일을 사용하여 Bitbucket 인스턴스를 감사하려면 구성 파일이 다음과 같은 형식이어야 하며, 각 `repository_slug` 값은 고유해야 합니다.\n\n```yaml\nsource_files:\n  - repository_slug: repo_name\n    path: path/to/one/source/file.yml\n  - repository_slug: another_repo_name\n    path: path/to/another/source/file.yml\n```\n\n## Bitbucket 파이프라인에 지원되는 구문\n\n다음 표에서는 현재 변환할 수 있는 GitHub Actions Importer 속성의 형식을 보여줍니다.\n\n| Bitbucket                 | GitHub Actions                                  |      상태 |\n| :------------------------ | :---------------------------------------------- | ------: |\n| `after-script`            | `jobs.<job_id>.steps[*]`                        |     지원됨 |\n| `artifacts`               | `actions/upload-artifact` & `download-artifact` |     지원됨 |\n| `caches`                  | `actions/cache`                                 |     지원됨 |\n| `clone`                   | `actions/checkout`                              |     지원됨 |\n| `condition`               | `job.<job_id>.steps[*].run`                     |     지원됨 |\n| `deployment`              | `jobs.<job_id>.environment`                     |     지원됨 |\n| `image`                   | `jobs.<job_id>.container`                       |     지원됨 |\n| `max-time`                | `jobs.<job_id>.steps[*].timeout-minutes`        |     지원됨 |\n| `options.docker`          | None                                            |     지원됨 |\n| `options.max-time`        | `jobs.<job_id>.steps[*].timeout-minutes`        |     지원됨 |\n| `parallel`                | `jobs.<job_id>`                                 |     지원됨 |\n| `pipelines.branches`      | `on.push`                                       |     지원됨 |\n| `pipelines.custom`        | `on.workflow_dispatch`                          |     지원됨 |\n| `pipelines.default`       | `on.push`                                       |     지원됨 |\n| `pipelines.pull-requests` | `on.pull_requests`                              |     지원됨 |\n| `pipelines.tags`          | `on.tags`                                       |     지원됨 |\n| `runs-on`                 | `jobs.<job_id>.runs-on`                         |     지원됨 |\n| `script`                  | `job.<job_id>.steps[*].run`                     |     지원됨 |\n| `services`                | `jobs.<job_id>.service`                         |     지원됨 |\n| `stage`                   | `jobs.<job_id>`                                 |     지원됨 |\n| `step`                    | `jobs.<job_id>.steps[*]`                        |     지원됨 |\n| `trigger`                 | `on.workflow_dispatch`                          |     지원됨 |\n| `fail-fast`               | None                                            | 지원되지 않음 |\n| `oidc`                    | None                                            | 지원되지 않음 |\n| `options.size`            | None                                            | 지원되지 않음 |\n| `size`                    | None                                            | 지원되지 않음 |\n\n### 환경 변수 매핑\n\nGitHub Actions Importer는 아래 표의 매핑을 사용하여 기본 Bitbucket 환경 변수를 GitHub Actions의 가장 가까운 대응값으로 변환합니다.\n\n| Bitbucket                               | GitHub Actions                                              |\n| :-------------------------------------- | :---------------------------------------------------------- |\n| `CI`                                    | `true`                                                      |\n| `BITBUCKET_BUILD_NUMBER`                | `${{ github.run_number }}`                                  |\n| `BITBUCKET_CLONE_DIR`                   | `${{ github.workspace }}`                                   |\n| `BITBUCKET_COMMIT`                      | `${{ github.sha }}`                                         |\n| `BITBUCKET_WORKSPACE`                   | `${{ github.repository_owner }}`                            |\n| `BITBUCKET_REPO_SLUG`                   | `${{ github.repository }}`                                  |\n| `BITBUCKET_REPO_UUID`                   | `${{ github.repository_id }}`                               |\n| `BITBUCKET_REPO_FULL_NAME`              | `${{ github.repository_owner }}`/`${{ github.repository }}` |\n| `BITBUCKET_BRANCH`                      | `${{ github.ref }}`                                         |\n| `BITBUCKET_TAG`                         | `${{ github.ref }}`                                         |\n| `BITBUCKET_PR_ID`                       | `${{ github.event.pull_request.number }}`                   |\n| `BITBUCKET_PR_DESTINATION_BRANCH`       | `${{ github.event.pull_request.base.ref }}`                 |\n| `BITBUCKET_GIT_HTTP_ORIGIN`             | `${{ github.event.repository.clone_url }}`                  |\n| `BITBUCKET_GIT_SSH_ORIGIN`              | `${{ github.event.repository.ssh_url }}`                    |\n| `BITBUCKET_EXIT_CODE`                   | `${{ job.status }}`                                         |\n| `BITBUCKET_STEP_UUID`                   | `${{ job.github_job }}`                                     |\n| `BITBUCKET_PIPELINE_UUID`               | `${{ github.workflow }}`                                    |\n| `BITBUCKET_PROJECT_KEY`                 | `${{ github.repository_owner }}`                            |\n| `BITBUCKET_PROJECT_UUID`                | `${{ github.repository_owner }}`                            |\n| `BITBUCKET_STEP_TRIGGERER_UUID`         | `${{ github.actor_id }}`                                    |\n| `BITBUCKET_SSH_KEY_FILE`                | `${{ github.workspace }}/.ssh/id_rsa`                       |\n| `BITBUCKET_STEP_OIDC_TOKEN`             | 매핑 없음                                                       |\n| `BITBUCKET_DEPLOYMENT_ENVIRONMENT`      | 매핑 없음                                                       |\n| `BITBUCKET_DEPLOYMENT_ENVIRONMENT_UUID` | 매핑 없음                                                       |\n| `BITBUCKET_BOOKMARK`                    | 매핑 없음                                                       |\n| `BITBUCKET_PARALLEL_STEP`               | 매핑 없음                                                       |\n| `BITBUCKET_PARALLEL_STEP_COUNT`         | 매핑 없음                                                       |\n\n### 시스템 변수\n\n작업에 사용되는 시스템 변수는 해당하는 bash 셸 변수로 변환되며 사용 가능한 것으로 간주됩니다. 예를 들어 `${system.<variable.name>}`은(는) `$variable_name`(으)로 변환됩니다. 워크플로를 적절하게 작업하려면 이를 확인하는 것이 좋습니다.\n\n## 법적 고지\n\n부분은 MIT 라이선스에 따라 <https://github.com/github/gh-actions-importer/에서> 조정되었습니다.\n\n```text\nMIT License\n\nCopyright (c) 2022 GitHub\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```"}