내용으로 건너뛰기

CI/CD 통합

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

CI/CD 통합의 이점

CI/CD 통합의 이점
  • 자동화: 자동화된 빌드, 테스트 및 배포 프로세스를 통해 수동 단계나 인간 오류가 발생하지 않습니다.

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

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

Capgo CLI

Capgo CLI

Capgo CLI는 CI/CD 워크플로에 Capgo를 통합하는 데 필요한 키입니다. 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 환경에서 사용하는 환경 변수 (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. CI/CD 환경에 추가하기:

    • GitHub 액션: 추가 CAPGO_PRIVATE_KEY 프로젝트 비밀에 추가하세요
    • GitLab CI: 프로젝트 설정에서 가려진 변수로 추가하세요
    • CircleCI: 프로젝트 설정에서 환경 변수로 추가하세요
    • Jenkins: 비밀 텍스트 자격 증명으로 추가하세요
  3. pipeline에서 사용하세요:

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

주의: The --key-data-v2 CI/CD pipe line에서 private key 내용을 문자열로 직접 전달할 수 있으므로 환경 변수를 사용하는 것이 좋습니다. 이 방법은 CI/CD pipe line에서 임시 파일을 생성하지 않도록 하며, 환경 변수를 사용하는 것이 좋습니다.

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

CI/CD Pipe line에서 Capgo 설정하기

CI/CD Pipe line에서 Capgo 설정하기

CI/CD tool의 종류에 따라 정확한 단계는 달라질 수 있지만, Capgo를 CI/CD Pipe line에 통합하는 일반적인 프로세스는 다음과 같습니다:

  1. API 키 생성: Capgo에 로그인하여 새로운 API 키를 생성합니다. 이 키는 CI/CD Pipe line에서 CLI를 인증하기 위해 사용됩니다. 이 키는 비밀로 유지하고, 레포지토리에 커밋하지 마세요!

  2. __CAPGO_KEEP_0__ 설정 bundle upload 명령어: CI/CD Pipe line의 설정에 명령어를 추가하여, 적절한 인자를 사용하여 명령어를 실행합니다. bundle upload __CAPGO_KEEP_0__

    업로드.yml
    - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}
    \n 대체 Production 배포할 채널을 지정하세요, ${{ secrets.CAPGO_API_KEY }} API 키를 보유한 환경 변수를 지정하세요, 그리고 암호화 사용 시 추가하세요. --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" 단계 추가

  3. Add the upload : 웹 빌드가 성공적으로 완료된 후에 단계를 추가하세요. 이로써 항상 최신 __CAPGO_KEEP_0__를 배포할 수 있습니다.\n __CAPGO_KEEP_1__ Actions의 예제 구성:\nwith the channel you want to deploy to, 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

    업로드.yml
    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 }}"

버전 관리와 Semantic-release

버전 관리와 Semantic-release 섹션

Capgo에서 버전 관리를 위한 권장 방법은 버전을 파일에 설정하는 것입니다. 이를 위해 Capgo에서 버전을 가져와 capacitor.config.ts __CAPGO_KEEP_0__에서 가져오기 package.json:

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

이 방법을 사용하면 다음과 같은 이점이 있습니다:

  1. Semantic-release (또는 다른 도구)를 사용하여 버전을 업데이트할 수 있습니다. package.json version
  2. 올바른 버전이 포함된 번들을 업로드할 수 있습니다.
  3. CI/CD 워크플로우는 다음과 같습니다:

protectedTokens

- 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 }}

샘플 .releaserc semantic-release의

{
"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. 릴리스 노트를 CHANGELOG.md 새로운 버전으로 업데이트합니다. 이 버전은 __CAPGO_KEEP_0__.config에서 사용됩니다.
  4. 릴리스 노트를 package.json 버전, 이 버전은 당신의 capacitor.config에 의해 선택됩니다.
  5. , 그리고 다른 변경된 파일을 저장소로 다시 커밋합니다. CHANGELOG.md, package.jsonCopy to clipboard

애플리케이션을 빌드하기 전에 semantic-release를 실행하여 업데이트된 버전이 포함된 __CAPGO_KEEP_0__.config를 확인하세요. package.json capacitor.config를 통해 업데이트된 버전이 빌드에 포함됩니다.

로컬 버전이 이미 Capgo에 있는 경우 자동으로 버전을 업데이트하세요.

‘로컬 버전이 이미 Capgo에 있는 경우 자동으로 버전을 업데이트하세요.’라는 제목을 가진 섹션

Bundle 이름은 고유해야 합니다 (삭제된 버전은 여전히 이름을 차지합니다). CI가 동일한 버전을 계속 업로드하면 package.json 터미널 창 package.json (for example with semantic-release). When that is not practical, let the CLI pick the next free semver from the channel’s linked bundle, or else the latest remote app version:

__CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Workers AI를 사용하여 __CAPGO_KEEP_2__/channel delta manifest와 이전 __CAPGO_KEEP_0__ 버전의 로컬 번들을 비교하고 __CAPGO_KEEP_0__ 버전이 없을 때 AI를 건너뛰고 버전을 __CAPGO_KEEP_0__로 업데이트합니다.
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

--auto-bump ai Capgo Cloudflare은 로컬 번들 파일을 이전 Capgo 채널 델타 매니페스트와 비교하여 Workers AI를 사용하여 선택한 업데이트를 Live Update로 적용합니다. major | minor | patch | metadata로컬 버전이 이미 Capgo에 있는 경우 자동으로 버전을 업데이트하세요. patch.

combination하지 마십시오. --auto-bump 와 --bundle / -b. 자세한 옵션 목록은 bundle upload 참조 를 참조하십시오.

문제 해결

페이지 제목

If you encounter issues with your Capgo CI/CD integration, here are a few things to check:

  • API 키API 키

  • CLI 버전Capgo 버전 : Capgo CLI의 최신 버전을 사용하십시오. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 경우가 있을 수 있습니다.

  • 빌드_artifacts: 웹 빌드가 기대하는 출력 파일을 생성하는지 확인하세요. Capgo CLI는 유효한 웹 빌드를 만들기 위해 번들을 생성해야 합니다.

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

: 문제가 여전히 발생한다면 Capgo 지원팀에 문의하세요. 그들은 당신의 특정 설정과 관련된 문제를 해결할 수 있습니다.

결론

결과

Capgo을 CI/CD pipeline에 통합하여 버전 관리를 올바르게 수행하면 개발 워크플로우가 크게 단순화됩니다. 자동화된 배포 및 버전 관리를 통해 capacitor.config 방법을 사용하여 업데이트를 더 빠르고 더 자신감 있게 배포할 수 있습니다.

버전을 파일에 설정하고 semantic-release를 사용하여 업데이트하는 __CAPGO_KEEP_0__ capacitor.config.ts 파일 package.json 업데이트

더 많은 정보는 Capgo CLI 명령어와 옵션에 대해 알아보세요. CLI 참조. 그리고 의미있는 릴리스 구성에 대한 더 깊은 이해를 위해 의미있는 릴리스 문서를 참조하세요. semantic-release 문서.

배포를 즐기세요!

CI/CD 통합에서 계속 진행하세요.

CI/CD 통합

context: Capgo 빌더 / 네이티브 클라우드 빌드 제품 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 메시지 키 `native_build_feature_ci_cd` (네이티브 빌드 기능 Ci Cd). CI/CD 자동화 계획을 위해 CI/CD __CAPGO_KEEP_0__ CI/CD Capgo CI/CD Capgo CI/CD Capgo 원시 빌드 Capgo Native Builds Capgo 통합솔루션 Capgo Integrations GitHub 액션 통합 GitHub Actions Integration GitLab CI/CD 통합 GitLab CI/CD Integration