CI/CD 통합
설치
Capgo을 CI/CD PIPELINE에 통합하면 앱 업데이트를 빌드하고 배포하는 프로세스를 완전히 자동화할 수 있습니다. 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 Actions: 추가하세요
CAPGO_PRIVATE_KEY저장소 비밀에 추가하세요 - GitLab CI: 프로젝트 설정에서 마스킹 변수로 추가하세요
- CircleCI: 프로젝트 설정에서 환경 변수로 추가하세요
- Jenkins: 비밀 텍스트 자격증명으로 추가하세요
- GitHub Actions: 추가하세요
-
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에서 임시 파일을 생성하지 않고 환경 변수로 private key 내용을 직접 문자열로 전달할 수 있게 해줍니다.
이 명령어는 현재 웹 빌드를 지정된 채널에 업로드합니다. 일반적으로 CI/CD pipeline의 마지막 단계로 실행하며 웹 빌드가 성공적으로 완료된 후에 실행합니다.
Capgo를 CI/CD Pipeline에 설정하는 방법
Capgo를 CI/CD Pipeline에 설정하는 방법CI/CD tool의 선택에 따라 정확한 단계는 달라지지만 Capgo를 통합하는 일반적인 프로세스는 다음과 같습니다:
-
API 키 생성: Capgo 대시보드에 로그인하여 새로운 API 키를 생성합니다. 이 키는 CI/CD 환경에서 CLI를 인증하기 위해 사용됩니다. 이를 비밀로 유지하고 repository에 커밋하지 마세요!
-
__CAPGO_KEEP_2__ 구성
bundle upload__CAPGO_KEEP_2____CAPGO_KEEP_2__bundle upload명령어와 적절한 인수를 사용하세요:대체업로드.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 }}"추가 단계: -
웹 빌드 후에 추가하세요:
upload: 웹 빌드가 성공적으로 완료된 후에 이 단계가 실행되도록 하세요. 이로 인해 항상 최신 __CAPGO_KEEP_0__를 배포할 수 있습니다. __CAPGO_KEEP_1__ Actions의 예제 구성입니다. 업로드.ymluploadstep 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__CAPGO_KEEP_0__ 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 }}"
세마틱 릴리즈를 사용한 버전 관리
버전 관리를 위한 세마틱 릴리즈Capgo의 버전 관리를 위해 추천하는 방법은 버전을 파일에 설정하는 것입니다. 이를 위해 Capgo을 capacitor.config.ts 에서 가져옵니다. package.json:
import pkg from './package.json'
const config: CapacitorConfig = { // ... other config plugins: { CapacitorUpdater: { version: pkg.version, } }}이 방법을 사용하면 다음을 수행할 수 있습니다:
- 세마틱 릴리즈 (또는 다른 도구)를 사용하여 버전을 업데이트할 수 있습니다.
package.json업데이트된 버전을 자동으로 포함하여 앱을 빌드할 수 있습니다. - 버전이 올바르게 포함된 번들을 업로드할 수 있습니다.
- CI/CD 워크플로우는 다음과 같습니다:
__CAPGO_KEEP_0__
- 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을 따릅니다.
- 마지막 릴리스 이후의 커밋에 따라 릴리스 노트를 생성합니다.
- __CAPGO_KEEP_0__.config에서 사용할 수 있도록 새로운 릴리스 노트를 업데이트합니다.
CHANGELOG.md__CAPGO_KEEP_0__.config에서 사용할 수 있도록 새로운 버전을 업데이트합니다. - 업데이트된
package.jsonversion, which will be picked up by your capacitor.config. - __CAPGO_KEEP_0__.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 버전이 없을 때 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.
Do not combine --auto-bump with --bundle / -b. See the bundle upload reference for the full option list.
Troubleshooting
Section titled “Troubleshooting”If you encounter issues with your Capgo CI/CD integration, here are a few things to check:
-
API key: Ensure your API key is valid and has the necessary permissions. If using an environment variable, double check that it’s set correctly.
-
CLI version: Capgo CLI 버전이 최신인지 확인하세요. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 경우가 있습니다.
-
Build artifacts: 웹 빌드가 예상되는 출력 파일을 생성하는지 확인하세요. Capgo CLI는 유효한 웹 빌드를 생성하는 데 필요한 파일을 생성해야 합니다.
-
Network connectivity: 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.
Section titled “Conclusion”
__CAPGO_KEEP_0__을 CI/CD pipeline에 통합하여 버전 관리를 올바르게 수행하면 개발 워크플로우가 크게 개선됩니다. __CAPGO_KEEP_1__.config 방법을 사용하여 배포를 자동화하고 버전을 관리하면 업데이트를 더 빠르고 신뢰할 수 있습니다.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.
file and using semantic-release to update capacitor.config.ts : __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ 버전이 최신인지 확인하세요. 이전 버전은 호환성 문제 또는 특정 기능이 누락된 경우가 있습니다. package.json robust하고 신뢰할 수 있는 배포 프로세스를 제공하여 기능을 빌드하는 데 집중할 수 있도록 하여 수동 릴리스 단계에 대한 걱정 없이 빌드할 수 있습니다.
Capgo와 CLI 명령 및 옵션에 대한 자세한 내용은 Capgo 참조서를 확인하세요. CLI 참조서세마틱 릴리스 구성에 대한 더 깊은 이해를 원하시면 세마틱 릴리스 문서를 참조하세요. 배포하기 좋은 하루!.
CI/CD 통합에서 계속하기
CI/CD 자동화 계획을 하려면 __CAPGO_KEEP_0__ CI/CD와 연결합니다. __CAPGO_KEEP_0__ CI/CD __CAPGO_KEEP_0__ CI/CD Capgo CI/CD Capgo CI/CD workflow를 위한 제품 워크플로우에 대해 Capgo 네이티브 빌드 Capgo 네이티브 빌드 워크플로우를 위한 제품 Capgo 통합 Capgo 제품 워크플로우를 위한 통합 GitHub 액션 통합 GitHub 액션 통합 구현 세부 사항에 대해 GitLab CI/CD 통합 __CAPGO_KEEP_0__ 액션 통합 구현 세부 사항에 대해