콘텐츠로 건너뛰기

CI/CD 통합

CI/CD 파이프라인에 Capgo를 통합하면 앱 업데이트의 빌드 및 배포 프로세스를 완전히 자동화할 수 있습니다. Capgo CLI와 semantic-release를 활용하여 일관되고 안정적인 배포를 보장하고 빠른 반복을 가능하게 할 수 있습니다.

CI/CD 통합의 장점

  • 자동화: 더 이상 수동 단계나 인적 오류가 발생할 여지가 없습니다. 전체 빌드, 테스트 및 배포 프로세스를 처음부터 끝까지 자동화할 수 있습니다.

  • 일관성: 모든 배포가 동일한 단계를 따르므로 예측 가능하고 반복 가능한 프로세스를 보장합니다. 여러 팀원이 코드를 기여할 때 특히 가치가 있습니다.

  • 빠른 반복: 자동화된 배포를 통해 더 자주 그리고 자신감 있게 업데이트를 배포할 수 있습니다. 더 이상 수동 QA나 배포 승인을 기다릴 필요가 없습니다.

Capgo CLI

Capgo CLI는 CI/CD 워크플로우에 Capgo를 통합하는 핵심입니다. 새로운 번들 버전 푸시, 채널 관리 등을 위한 명령어를 제공합니다.

CI/CD 통합에서 가장 중요한 명령어는 upload입니다:

Terminal window
npx @capgo/cli@latest upload --channel=Production --apikey=YOUR_API_KEY

이 명령어는 현재 웹 빌드를 지정된 채널에 업로드합니다. 일반적으로 웹 빌드가 성공적으로 완료된 후 CI/CD 파이프라인의 마지막 단계로 실행됩니다.

CI/CD 파이프라인에서 Capgo 설정하기

사용하는 CI/CD 도구에 따라 정확한 단계는 다르지만, Capgo를 통합하는 일반적인 프로세스는 다음과 같습니다:

  1. API 키 생성: Capgo 대시보드에 로그인하여 새 API 키를 생성합니다. 이 키는 CI/CD 환경에서 CLI를 인증하는 데 사용됩니다. 비밀로 유지하고 절대 저장소에 커밋하지 마세요!

  2. upload 명령어 구성: CI/CD 구성에 적절한 인수와 함께 upload 명령어를 실행하는 단계를 추가합니다:

    uploadyml
    - run: npx @capgo/cli@latest upload --channel=Production --apikey=${{ secretsCAPGO_API_KEY }}
    \n Production을 배포하려는 채널로 바꾸고, ${{ secretsCAPGO_API_KEY }}를 API 키를 보유한 환경 변수로 바꾸세요.

  3. 웹 빌드 후 upload 단계 추가: upload 단계가 웹 빌드가 성공적으로 완료된 후에 오도록 하세요. 이렇게 하면 항상 최신 코드를 배포할 수 있습니다.\n GitHub Actions용 구성 예시입니다:\n

    uploadyml
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v3
    with:
    node-version: 18
    - run: npm ci
    - run: npm run build
    - run: npm install -g @capgo/cli
    - run: npx @capgo/cli@latest upload --channel=Production --apikey=${{ secretsCAPGO_API_KEY }}

Semantic-release 통합

Semantic-release는 버전 관리를 자동화하고 릴리스 노트를 생성하는 강력한 도구입니다. Semantic-release를 Capgo와 통합하면 각 배포마다 앱 버전을 자동으로 증가시키고 변경 로그를 생성할 수 있습니다.

다음은 semantic-release용 샘플 releaserc 구성 파일입니다:

{
"branches": [
"main",
{
"name": "beta",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"@semantic-release/exec",
{
"publishCmd": "npx @capgo/cli@latest upload --channel=${nextReleasechannel} --apikey=YOUR_API_KEY --partial"
}
],
[
"@semantic-release/git",
{
"assets": ["CHANGELOGmd", "packagejson"],
"message": "chore(release): ${nextReleaseversion} [skip ci]\n\n${nextReleasenotes}"
}
]
]
}

이 구성은 다음을 수행합니다:

  1. Conventional Commits 명세를 따라 커밋 메시지를 분석하여 다음 버전 번호를 결정합니다
  2. 마지막 릴리스 이후의 커밋을 기반으로 릴리스 노트를 생성합니다
  3. 새로운 릴리스 노트로 CHANGELOGmd 파일을 업데이트합니다
  4. Capgo CLI upload 명령어를 실행하며, 새 버전 번호를 전달하고 차등 업데이트를 위해 --partial 플래그를 사용합니다
  5. 업데이트된 CHANGELOGmd, packagejson 및 기타 변경된 파일을 저장소에 다시 커밋합니다

Capgo에서 semantic-release를 사용하려면 CI/CD 구성에 npx semantic-release를 실행하는 단계를 추가하기만 하면 됩니다. 이 단계가 웹 빌드 이후, Capgo upload 단계 이전에 오도록 하세요.

문제 해결

Capgo CI/CD 통합에서 문제가 발생하면 다음 사항을 확인하세요:

  • API 키: API 키가 유효하고 필요한 권한이 있는지 확인하세요. 환경 변수를 사용하는 경우 올바르게 설정되어 있는지 다시 확인하세요.

  • CLI 버전: 최신 버전의 Capgo CLI를 사용하고 있는지 확인하세요. 이전 버전은 호환성 문제가 있거나 특정 기능이 없을 수 있습니다.

  • 빌드 아티팩트: 웹 빌드가 예상된 출력 파일을 생성하고 있는지 확인하세요. Capgo CLI는 번들을 만들기 위해 유효한 웹 빌드가 필요합니다.

  • 네트워크 연결: CI/CD 환경이 Capgo 서버에 네트워크 액세스할 수 있는지 확인하세요. 방화벽이나 프록시 문제가 때때로 upload 명령어를 방해할 수 있습니다.

여전히 문제가 있다면 Capgo 지원팀에 연락하세요. 특정 설정과 관련된 문제를 해결하는 데 도움을 줄 수 있습니다.

결론

CI/CD 파이프라인에 Capgo를 통합하고 버전 관리를 위해 semantic-release를 활용하면 개발 워크플로우를 크게 간소화할 수 있습니다. 배포와 버전 관리를 자동화함으로써 더 빠르고 자신감 있게 업데이트를 배포할 수 있습니다.

Capgo CLI와 semantic-release는 완전히 자동화된 엔드투엔드 릴리스를 위한 강력한 조합을 제공합니다. 약간의 구성만으로 수동 릴리스 단계에 대해 걱정하는 대신 훌륭한 기능을 구축하는 데 집중할 수 있는 강력하고 신뢰할 수 있는 배포 프로세스를 가질 수 있습니다.

Capgo CLI 명령어와 옵션에 대한 자세한 내용은 CLI 참조를 확인하세요. 그리고 semantic-release 구성에 대한 자세한 내용은 semantic-release 문서를 참조하세요.

즐거운 배포 되세요!