CI/CD 통합
설치
CI/CD pipeline에 Capgo을 통합하면 앱 업데이트를 빌드하고 배포하는 프로세스를 완전히 자동화할 수 있습니다. Capgo과 CLI를 사용하여 semantic-release를 활용하여, 신뢰할 수 있는, 일관된 배포를 보장하고 빠른 반복을 가능하게 할 수 있습니다.
CI/CD 통합의 이점
CI/CD 통합의 이점 섹션-
자동화: 더 이상 수동 단계나 인간 오류가 없습니다. 빌드, 테스트 및 배포 프로세스를 종단에서 종단으로 자동화할 수 있습니다.
-
일관성: 모든 배포가 동일한 단계를 따르기 때문에 예측 가능하고 반복 가능한 프로세스를 보장합니다. 특히 여러 팀원이 code에 기여할 때 이점이 있습니다.
-
빠른 반복: 자동 배포를 통해 업데이트를 더 자주 신뢰롭게 배포할 수 있습니다. 더 이상 수동 QA 또는 릴리즈 승인 기다리지 않아도 됩니다.
Capgo CLI
Capgo CLICapgo 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_CONTENTCI/CD를 위한 환경 변수 사용 (CI/CD에서 권장하는 방법):
npx @capgo/cli@latest bundle upload --channel Production --apikey YOUR_API_KEY --key-data-v2 "$CAPGO_PRIVATE_KEY"개인 키 암호화에 사용되는 환경 변수 설정
개인 키 암호화에 사용되는 환경 변수 설정CI/CD 환경에서 개인 키를 파일 대신 환경 변수로 저장하는 것이 권장됩니다. 개인 키를 환경 변수로 설정하는 방법은 다음과 같습니다.
-
개인 키 내용을 가져오세요:
터미널 창 cat .capgo_key_v2 | pbcopy이것은 키 내용을 클립보드에 복사합니다.
-
CI/CD 환경에 추가하세요:
- GitHub 액션: 추가
CAPGO_PRIVATE_KEY저장소 비밀에 추가하세요 - GitLab CI: 프로젝트 설정에서 마스킹된 변수로 추가하세요
- CircleCI: 프로젝트 설정에서 환경 변수로 추가하세요
- Jenkins: 비밀 텍스트 자격 증명으로 추가하세요
- GitHub 액션: 추가
-
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 pipeline에서 임시 파일을 생성하지 않고 환경 변수로 사용하고 싶을 때 완벽하게 적합합니다.
이 명령어는 현재 웹 빌드를 지정된 채널에 업로드합니다. 일반적으로 CI/CD pipeline의 마지막 단계로 실행하며, 웹 빌드가 성공적으로 완료된 후에 실행합니다.
Capgo를 CI/CD Pipeline에 설정하는 방법
Capgo를 CI/CD Pipeline에 설정하는 방법CI/CD tool의 선택에 따라 정확한 단계는 달라질 수 있지만, Capgo를 통합하는 일반적인 프로세스는 다음과 같습니다:
-
API 키 생성: Capgo 대시보드에 로그인하여 새로운 API 키를 생성합니다. 이 키는 CI/CD 환경에서 CLI를 인증하기 위해 사용됩니다. 비밀로 유지하고, NEVER COMMIT을 하십시오!
-
명령어 구성
bundle upload명령어: CI/CD 구성에 대한 단계를 추가하여bundle upload명령어와 적절한 인수를 사용하세요:\n 대체업로드.yml - run: npx @capgo/cli@latest bundle upload --channel=production --apikey=${{ secrets.CAPGO_API_KEY }}Production배포할 채널을 지정하세요,${{ secrets.CAPGO_API_KEY }}API 키를 보유한 환경 변수를 지정하세요, 그리고 암호화 사용 시 추가하세요.--key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"웹 빌드 후에 추가하세요: -
: 웹 빌드가 성공적으로 완료된 후에 이 단계를 실행하세요. 이로써 항상 최신 __CAPGO_KEEP_0__를 배포할 수 있습니다.\n 예를 들어 __CAPGO_KEEP_1__ Actions의 경우:\n
upload업로드.ymlwith the channel you want to deploy to,uploadstep 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:\nif using encryption. name: Deploy to Capgoon:push:branches: [main]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v6- uses: actions/setup-node@v6with: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의 버전을 파일에 설정하는 것입니다. Capgo을 __CAPGO_KEEP_1__에서 가져옵니다. capacitor.config.ts __CAPGO_KEEP_1__ package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}이 방법은 다음을 허용합니다:
- __CAPGO_KEEP_2__ (또는 다른 도구)를 사용하여 __CAPGO_KEEP_3__을 업데이트합니다.
package.json__CAPGO_KEEP_3__ - __CAPGO_KEEP_4__를 업데이트된 __CAPGO_KEEP_3__과 함께 자동으로 빌드합니다.
- __CAPGO_KEEP_5__를 업데이트된 __CAPGO_KEEP_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 }}다음과 같은 샘플 .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}" } ] ]}다음과 같은 작업을 수행합니다:
- 커밋 메시지를 분석하여 다음 버전 번호를 결정합니다. Conventional Commits spec을 따릅니다.
- 마지막 릴리스 이후의 커밋에 따라 릴리스 노트를 생성합니다.
- 릴리스 노트를 업데이트 합니다.
CHANGELOG.md버전을 업데이트 합니다. 이 버전은 __CAPGO_KEEP_0__.config에서 사용됩니다. - 업데이트한
package.jsonversion, which will be picked up by your capacitor.config. - 업데이트
CHANGELOG.md,package.json, 그리고 다른 변경된 파일들을 저장소로 다시 되돌려주세요.
앱을 빌드하기 전에 semantic-release를 실행하여 업데이트된 버전이 포함된 __CAPGO_KEEP_0__.config를 확인하세요. package.json 로컬 버전이 이미 capacitor에 있는 경우 자동으로 버전을 업데이트하세요.
제목: 로컬 버전이 이미 Capgo에 있는 경우 자동으로 버전을 업데이트하세요.
Bundle 이름은 고유해야 합니다 (삭제된 버전도 여전히 이름을 차지합니다). CI가 동일한 버전을 계속 업로드하면 업로드가 실패합니다. 버전을 업데이트하는 대신 Capgo를 사용하세요 (예를 들어 semantic-release를 사용하세요). 버전을 업데이트하는 것이 불가능한 경우, 채널에 연결된 Bundle에서 다음 무료 semver를 선택하거나, 아니면 리모트 앱의 최신 버전을 사용하세요:터미널 창 package.json 복사 package.json CLI __CAPGO_KEEP_1__ Workers AI를 사용하여 로컬 Bundle 파일을 이전 __CAPGO_KEEP_2__/channel delta 매니페스트와 비교하여 CLI 버전을 선택하고, 이유를 간단하게 출력하세요. 이전 CLI 버전이 없으면 AI를 건너뛰고 버전을 업데이트하세요.
npx @capgo/cli@latest bundle upload --channel=production --auto-bumpnpx @capgo/cli@latest bundle upload --auto-bump majornpx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no valuenpx @capgo/cli@latest bundle upload --auto-bump patch # alias: fixnpx @capgo/cli@latest bundle upload --auto-bump metadatanpx @capgo/cli@latest bundle upload --channel=production --auto-bump ai--auto-bump ai uses Capgo Cloudflare Workers AI to compare local bundle files against the previous Capgo/channel delta manifest, pick major | minor | patch | metadataCapgo patch.
다른 것과 결합하지 마십시오. --auto-bump with --bundle / -b. bundle upload See the reference
for the full option list.
문제 해결If you encounter issues with your Capgo CI/CD integration, here are a few things to check:
-
API keyAPI key
-
: CLI 키가 유효하고 필요한 권한이 있는지 확인하십시오. 환경 변수를 사용하는 경우, 올바르게 설정되었는지 확인하십시오.: Capgo CLI 버전이 최신인지 확인하세요. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 문제가 있을 수 있습니다.
-
빌드_artifacts: 웹 빌드가 기대하는 출력 파일을 생성하는지 확인하세요. Capgo CLI는 유효한 웹 빌드를 생성하는 데 필요한 파일입니다.
-
네트워크_연결성: CI/CD 환경이 Capgo 서버에 네트워크 접근 권한이 있는지 확인하세요. 방화벽 또는 프록시 문제가 때때로 명령에 영향을 줄 수 있습니다.
upload: 문제가 해결되지 않으면 __CAPGO_KEEP_0__ 지원팀에 문의하세요. 그들은 특정 설정과 관련된 문제를 해결하는 데 도움이 될 것입니다.
If you’re still having trouble, reach out to Capgo support for assistance. They can help troubleshoot any issues with your specific setup.
Integrating Capgo into your CI/CD pipeline with proper version management can greatly streamline your development workflow. By automating your deployments and versioning through the capacitor.config approach, you can ship updates faster and with more confidence.
: __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ 버전이 최신인지 확인하세요. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 문제가 있을 수 있습니다. capacitor.config.ts __CAPGO_KEEP_0__ package.json robust하고 신뢰할 수 있는 배포 프로세스를 제공하여 기능을 빌드하는 데 집중할 수 있도록 해 주며 수동 릴리스 단계에 대해 걱정하지 않도록 합니다.
Capgo와 CLI 명령과 옵션에 대한 자세한 내용은 Capgo 참조서를 확인하시기 바랍니다. CLI 참조서. 그리고 의미론적 릴리스 구성에 대한 더 깊은 이해를 원하신다면 의미론적 릴리스 문서를 참조하시기 바랍니다. __CAPGO_KEEP_0__.
. Happy deploying!
CI/CD 통합에서 계속 진행하세요.
CI/CD 통합에서 계속 진행하세요.__CAPGO_KEEP_0__ CI/CD와 연결되어 있습니다. __CAPGO_KEEP_0__ CI/CD __CAPGO_KEEP_0__ CI/CD Capgo CI/CD for the product workflow in Capgo CI/CD, Capgo Native Builds for the product workflow in Capgo Native Builds, Capgo Integrations for the product workflow in Capgo Integrations, GitHub Actions Integration for the implementation detail in GitHub Actions Integration, and GitLab CI/CD 통합 GitLab CI/CD 통합 구현 세부 사항