내용으로 건너뛰기

CI/CD 통합

CI/CD pipeline에 Capgo을 통합하면 앱 업데이트를 빌드하고 배포하는 전체 프로세스를 완전히 자동화할 수 있습니다. Capgo CLI 및 semantic-release를 활용하여 신뢰할 수 있는 일관된 배포를 보장하고 빠른 반복을 가능하게 할 수 있습니다.

CI/CD 통합의 이점

CI/CD 통합의 이점 섹션
  • 자동화: 수동 단계나 인간의 오류가 없는 자동화된 빌드, 테스트 및 배포 프로세스를 제공합니다.

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

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

Capgo CLI은 CI/CD 워크플로에 Capgo을 통합하는 데 필요한 키입니다. 새로운 번들 버전을 푸시하는 명령, 채널 관리, 등과 같은 기능을 제공합니다.

CI/CD 통합을 위한 가장 중요한 명령어는 bundle upload:

터미널 창
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY

암호화를 사용하는 경우, 다음 중 하나의 방법으로 제공해야 합니다:

개인 키 파일 경로를 사용하는 경우:

터미널 창
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-v2 PRIVATE_KEY_PATH

직접 개인 키 내용을 사용하는 경우 (CI/CD에 권장):

터미널 창
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 PRIVATE_KEY_CONTENT

환경 변수를 사용하는 경우 (CI/CD에 권장):

터미널 창
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"

암호화에 사용되는 환경 변수를 설정하는 방법

암호화에 사용되는 환경 변수를 설정하는 방법

CI/CD 환경에서 개인 키를 파일 대신 환경 변수로 저장하는 것이 권장됩니다. 개인 키를 환경 변수로 설정하는 방법은 다음과 같습니다.

  1. 개인 키 내용을 가져오기

    터미널 창
    cat .capgo_key_v2 | pbcopy

    이 키 내용을 클립보드에 복사합니다.

  2. __CAPGO_KEEP_0__ 액션 추가

    • GitHub Actions리포지토리 비밀에 추가 CAPGO_PRIVATE_KEY to
    • GitLab CI: __CAPGO_KEEP_0__을 프로젝트 설정에 마스킹 변수로 추가하세요
    • CircleCI: 프로젝트 설정에 환경 변수로 __CAPGO_KEEP_0__을 추가하세요
    • Jenkins: __CAPGO_KEEP_0__을 비밀 텍스트 인증서로 추가하세요
  3. Use it in your pipeline:

    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

주의: __CAPGO_KEEP_0__ 플래그는 private key 내용을 문자열로 직접 전달할 수 있게 해주며, CI/CD pipeline에서 임시 파일을 생성하지 않으려는 경우에 특히 적합합니다. --key-data-v2 이 명령어는 현재 웹 빌드를 지정된 채널에 업로드합니다. 일반적으로 CI/CD pipeline의 마지막 단계로 실행하며, 웹 빌드가 성공적으로 완료된 후에 실행합니다.

Note

CI/CD PIPELINE에서 Capgo을 설정하는 방법

CI/CD PIPELINE에서 Capgo을 설정하는 방법

CI/CD TOOL을 선택하여 Capgo을 통합하는 정확한 단계는 달라질 수 있지만, 일반적인 통합 프로세스는 다음과 같습니다.

  1. API 키를 생성하세요: Capgo 대시보드에 로그인하여 API 키를 생성하세요. 이 키는 CI/CD 환경에서 CLI을 인증하기 위해 사용됩니다. 이를 비밀로 유지하고 repository에 커밋하지 마세요!

  2. __CAPGO_KEEP_2__ bundle upload : CI/CD 설정에 다음 명령어를 추가하세요.__CAPGO_KEEP_0__ bundle upload __CAPGO_KEEP_0__

    복사
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    __CAPGO_KEEP_1__ Production 원하는 배포 채널과 함께 ${{ secrets.CAPGO_API_KEY }} API 키를 보유한 환경 변수와 함께, 그리고 --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" 암호화 사용 시

  3. 추가: upload 웹 빌드 후에 추가:: 웹 빌드가 성공적으로 완료된 후에 이 단계가 실행되어야 합니다. 이로써 항상 최신 __CAPGO_KEEP_0__을 배포할 수 있습니다.\n __CAPGO_KEEP_1__ Actions의 예제 구성:\n upload step comes after your web build has completed successfully. This ensures you’re always deploying your latest code.\n Here’s an example configuration for GitHub Actions:\n

    클립보드 복사
    name: Deploy to Capgo
    on:
    push:
    branches: [main]
    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
    - uses: actions/setup-node@v6
    with:
    node-version: '24'
    - run: npm ci
    - run: npm run build
    - run: npm install -g @capgo/cli
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"

The recommended way to handle versioning with Capgo is to set the version in your capacitor.config.ts __CAPGO_KEEP_0__을 가져와서 import하는 방법입니다. package.json:

import pkg from './package.json'
const config: CapacitorConfig = {
// ... other config
plugins: {
CapacitorUpdater: {
version: pkg.version,
}
}
}

이 방법은 다음과 같은 이점을 제공합니다.

  1. __CAPGO_KEEP_0__ (또는 다른 도구)를 사용하여 버전을 업데이트합니다. package.json 버전
  2. 업데이트된 버전이 자동으로 포함된 앱을 빌드합니다.
  3. 올바른 버전으로 업로드하는 배포 파일

CI/CD 워크플로우는 다음과 같습니다.

- run: npm ci
- run: npx semantic-release # Updates package.json version
- run: npm run build # Builds with new version from capacitor.config
- run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}

semantic-release를 사용하는 샘플 __CAPGO_KEEP_0__ 파일입니다. .releaserc __CAPGO_KEEP_1__를 클립보드에 복사

{
"branches": [
"main",
{
"name": "beta",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md", "package.json"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}

이 설정은 다음을 수행합니다.

  1. 커밋 메시지를 분석하여 다음 버전 번호를 결정합니다. Conventional Commits spec을 따릅니다.
  2. 마지막 릴리스 이후의 커밋에 기반하여 릴리스 노트를 생성합니다.
  3. __CAPGO_KEEP_0__.config에서 가져온 새로운 릴리스 노트로 CHANGELOG.md 업데이트합니다.
  4. __CAPGO_KEEP_0__.config에서 가져온 새로운 버전을 업데이트합니다. 이 버전은 npm config에서 사용됩니다. package.json version, which will be picked up by your capacitor.config.
  5. 파일과 기타 변경된 파일을 저장소로 다시 커밋합니다. CHANGELOG.md, package.jsonsemantic-release를 실행하기 전에 앱을 빌드하여 업데이트된 버전이 __CAPGO_KEEP_0__.config에서 포함된 빌드에 포함되도록 하세요.

__CAPGO_KEEP_0__.config에서 가져온 업데이트된 버전이 빌드에 포함된 것을 확인하세요. package.json is included in your build through the capacitor.config.

__CAPGO_KEEP_0__.

[Troubleshooting]

Capgo CI/CD 문제가 발생하는 경우, 다음 사항을 확인하세요.

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

  • CLI 버전Capgo CLI의 최신 버전을 사용하는지 확인하세요. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 경우가 있습니다.

  • Build Artifacts웹 빌드가 예상되는 출력 파일을 생성하는지 확인하세요. Capgo CLI는 유효한 웹 빌드를 통해 번들을 생성해야 합니다.

  • 네트워크 연결CI/CD 환경이 Capgo 서버에 네트워크 접근 권한이 있는지 확인하세요. 방화벽 또는 프록시 문제가 네트워크 연결을 방해할 수 있습니다. upload 명령어.

문제가 해결되지 않는 경우, Capgo 지원팀에 문의하세요. 그들은 특정 설정과 관련된 문제를 해결할 수 있습니다.

Capgo CI/CD pipeline에 적절한 버전 관리를 통해 통합하는 것은 개발 워크플로우를 크게streamline 할 수 있습니다. capacitor.config 접근 방식을 통해 자동화 된 배포 및 버전을 통해 업데이트를 더 빠르게하고 더 자신감 있게 배포 할 수 있습니다.

버전을 파일에 설정하고 semantic-release를 사용하여 업데이트하는 것을 권장하는 접근 방식은 robust하고 reliable한 배포 프로세스를 제공하여 기능을 빌드하는 것에 집중 할 수 있습니다. capacitor.config.ts 수동 릴리스 단계에 대해 걱정하지 않고 package.json __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ 명령과 옵션에 대한 자세한 내용은 __CAPGO_KEEP_0__ 참조

For more details on the Capgo CLI commands and options, check out the CLI referenceSemantic-release 구성에 대한 더 깊은 이해를 원하신다면 semantic-release docs 배포를 즐겁게 하세요!.

CI/CD 통합에서 계속하세요!

Capgo를 사용 중이라면 CI/CD 통합 CI/CD 자동화 계획을 위해 Capgo CI/CD Capgo CI/CD에서 제품 워크플로우를 위해 Capgo 네이티브 빌드 Capgo 네이티브 빌드에서 제품 워크플로우를 위해 Capgo 통합 Capgo 통합에서 제품 워크플로우를 위해 GitHub 액션 통합 GitHub 액션 통합에서 구현 세부 정보를 위해 GitLab CI/CD 통합 GitLab CI/CD 통합 구현 세부 사항을 위해.