Skip to main content

GitHub Actions Importer를 사용하여 마이그레이션 자동화

GitHub Actions Importer을(를) 사용하여 GitHub Actions(으)로의 마이그레이션을 계획하고 자동화합니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

법적 고지

GitHub Actions Importer 정보

GitHub Actions Importer을(를) 사용하여 CI/CD 지원 파이프라인을 계획하고 자동으로 GitHub Actions(으)로 마이그레이션할 수 있습니다.

GitHub Actions Importer은(는) Docker 컨테이너로 배포되고 GitHub CLI 확장을 사용하여 컨테이너와 상호 작용합니다.

GitHub Actions Importer에 의해 변환된 모든 워크플로는 프로덕션 워크로드로 사용하기 전에 정확성을 검사해야 합니다. 목표는 모든 워크플로에 대해 80%의 전환율을 달성하는 것이지만 실제 변환 속도는 변환되는 각 개별 파이프라인의 구성에 따라 달라집니다.

지원되는 CI 플랫폼

GitHub Actions Importer을(를) 사용하면 다음 플랫폼에서 마이그레이션이 가능합니다.

  • Azure DevOps
  • Bamboo
  • Bitbucket Pipelines
  • CircleCI
  • GitLab(클라우드 및 자체 호스트형 모두)
  • Jenkins
  • Travis CI

필수 조건

GitHub Actions Importer에는 다음과 같은 요구 사항이 있습니다.

  • Linux 기반 컨테이너를 실행하고 필요한 도구를 설치할 수 있는 환경입니다.

    참고: GitHub Actions Importer 컨테이너 및 CLI는 CI 플랫폼과 동일한 서버에 설치할 필요가 없습니다.

GitHub Actions Importer CLI 확장 프로그램 설치하기

  1. GitHub Actions Importer CLI 확장을 설치합니다.

    Bash
    gh extension install github/gh-actions-importer
    
  2. 다음 확장이 설치되어 있는지 확인:

    $ gh actions-importer -h
    Options:
      -?, -h, --help  Show help and usage information
    
    Commands:
      update     Update to the latest version of GitHub Actions Importer.
      version    Display the version of GitHub Actions Importer.
      configure  Start an interactive prompt to configure credentials used to authenticate with your CI server(s).
      audit      Plan your CI/CD migration by analyzing your current CI/CD footprint.
      forecast   Forecast GitHub Actions usage from historical pipeline utilization.
      dry-run    Convert a pipeline to a GitHub Actions workflow and output its yaml file.
      migrate    Convert a pipeline to a GitHub Actions workflow and open a pull request with the changes.
    

GitHub Actions Importer CLI 업데이트

최신 버전의 GitHub Actions Importer을(를) 실행하려면 다음 update 명령을 정기적으로 실행해야 합니다.

gh actions-importer update

명령줄에서 인증하기

GitHub Actions Importer이(가) GitHub 및 현재 CI 서버와 통신할 수 있도록 자격 증명을 구성해야 합니다. 환경 변수 또는 .env.local 파일을 사용하여 이러한 자격 증명을 구성할 수 있습니다. 다음 명령을 실행하여 대화형 프롬프트에서 환경 변수를 구성할 수 있습니다.

gh actions-importer configure

GitHub Actions Importer CLI 사용

gh actions-importer의 하위 명령을 사용하여 GitHub Actions(예audit, forecast, dry-run, migrate)(으)로 마이그레이션을 시작합니다.

기존 CI 파이프라인 감사

audit 하위 명령은 현재 CI/CD 공간을 분석하여 CI/CD 마이그레이션을 계획하는 데 사용할 수 있습니다. 이 분석은 GitHub Actions(으)로 마이그레이션하기 위한 타임라인 계획에 사용할 수 있습니다.

감사를 실행하려면 다음 명령을 사용하여 사용 가능한 옵션을 확인합니다.

$ gh actions-importer audit -h
Description:
  Plan your CI/CD migration by analyzing your current CI/CD footprint.

[...]

Commands:
  azure-devops  An audit will output a list of data used in an Azure DevOps instance.
  bamboo        An audit will output a list of data used in a Bamboo instance.
  circle-ci     An audit will output a list of data used in a CircleCI instance.
  gitlab        An audit will output a list of data used in a GitLab instance.
  jenkins       An audit will output a list of data used in a Jenkins instance.
  travis-ci     An audit will output a list of data used in a Travis CI instance.

예측 사용

forecast 하위 명령은 기록 파이프라인 사용량을 검토하여 GitHub Actions 사용량에 대한 예측을 만듭니다.

예측을 실행하려면 다음 명령을 사용하여 사용 가능한 옵션을 확인합니다.

$ gh actions-importer forecast -h
Description:
  Forecasts GitHub Actions usage from historical pipeline utilization.

[...]

Commands:
  azure-devops  Forecasts GitHub Actions usage from historical Azure DevOps pipeline utilization.
  bamboo        Forecasts GitHub Actions usage from historical Bamboo pipeline utilization.
  jenkins       Forecasts GitHub Actions usage from historical Jenkins pipeline utilization.
  gitlab        Forecasts GitHub Actions usage from historical GitLab pipeline utilization.
  circle-ci     Forecasts GitHub Actions usage from historical CircleCI pipeline utilization.
  travis-ci     Forecasts GitHub Actions usage from historical Travis CI pipeline utilization.
  github        Forecasts GitHub Actions usage from historical GitHub pipeline utilization.

마이그레이션 프로세스 테스트

dry-run 하위 명령을 사용하여 파이프라인을 해당 GitHub Actions와(과) 동일한 것으로 변환한 다음, 워크플로를 로컬 파일 시스템에 쓸 수 있습니다.

시험 실행을 수행하려면 다음 명령을 사용하여 사용 가능한 옵션을 확인합니다.

$ gh actions-importer dry-run -h
Description:
  Convert a pipeline to a GitHub Actions workflow and output its yaml file.

[...]

Commands:
  azure-devops  Convert an Azure DevOps pipeline to a GitHub Actions workflow and output its yaml file.
  bamboo        Convert a Bamboo pipeline to GitHub Actions workflows and output its yaml file.
  circle-ci     Convert a CircleCI pipeline to GitHub Actions workflows and output the yaml file(s).
  gitlab        Convert a GitLab pipeline to a GitHub Actions workflow and output the yaml file.
  jenkins       Convert a Jenkins job to a GitHub Actions workflow and output its yaml file.
  travis-ci     Convert a Travis CI pipeline to a GitHub Actions workflow and output its yaml file.

GitHub Actions(으)로 파이프라인 마이그레이션

migrate 하위 명령을 사용하여 파이프라인을 해당 GitHub Actions로 변환한 다음 콘텐츠를 사용하여 끌어오기 요청을 만들 수 있습니다.

마이그레레이션을 실행하려면 다음 명령을 사용하여 사용 가능한 옵션을 확인합니다.

$ gh actions-importer migrate -h
Description:
  Convert a pipeline to a GitHub Actions workflow and open a pull request with the changes.

[...]

Commands:
  azure-devops  Convert an Azure DevOps pipeline to a GitHub Actions workflow and open a pull request with the changes.
  bamboo        Convert a Bamboo pipeline to GitHub Actions workflows and open a pull request with the changes.
  circle-ci     Convert a CircleCI pipeline to GitHub Actions workflows and open a pull request with the changes.
  gitlab        Convert a GitLab pipeline to a GitHub Actions workflow and open a pull request with the changes.
  jenkins       Convert a Jenkins job to a GitHub Actions workflow and open a pull request with the changes.
  travis-ci     Convert a Travis CI pipeline to a GitHub Actions workflow and open a pull request with the changes.

IssueOps를 사용하여 셀프 서비스 마이그레이션 수행

GitHub Actions 및 GitHub Issues을(를) 사용하여 GitHub Actions Importer에 대한 CLI 명령을 실행할 수 있습니다. 이렇게 하면 로컬 컴퓨터에 소프트웨어를 설치하지 않고 CI/CD 워크플로를 마이그레이션할 수 있습니다. 이 방법은 GitHub Actions(으)로 셀프 서비스 마이그레이션을 사용하도록 설정하려는 조직에 특히 유용합니다. IssueOps가 구성되면 사용자는 관련 템플릿과 관련된 문제를 열어 파이프라인을 GitHub Actions(으)로 마이그레이션할 수 있습니다.

IssueOps를 사용하여 셀프 서비스 마이그레이션을 설정하는 방법에 대한 자세한 내용은 actions/importer-issue-ops 템플릿 리포지토리를 참조하세요.

GitHub Actions Importer 랩 리포지토리 사용

GitHub Actions Importer 랩 리포지토리에는 GitHub Actions Importer을(를) 사용하는 방법과 GitHub Actions(으)로 마이그레이션하는 방법을 알려주는 플랫폼별 학습 경로가 포함되어 있습니다. 이 리포지토리를 사용하면 GitHub Actions Importer을(를) 통한 GitHub Actions(으)로의 마이그레이션을 계획, 예측, 자동화하는 방법을 알아볼 수 있습니다.

자세한 내용은 GitHub Actions Importer 랩 리포지토리를 참조하세요.

부분은 MIT 라이선스에 따라 https://github.com/github/gh-actions-importer/에서 조정되었습니다.

MIT License

Copyright (c) 2022 GitHub

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.