[GitHub Actions Integration]
이 플러그인의 설치 단계와 전체 마크다운 가이드를 포함한 설정 명령어를 복사하세요.
Capgo Live Updates를 GitHub Actions와 통합하여 앱 업데이트를 자동으로 배포할 수 있습니다. code 변경 사항을 푸시할 때마다. 이 가이드는 GitHub의 강력한 CI/CD 플랫폼을 사용하여 자동 빌드, 테스트 및 배포 워크플로우를 설정하는 방법을 다룹니다.
사전 요구 사항
“사전 요구 사항” 제목GitHub Actions 통합을 설정하기 전에 다음을 확인하세요:
- GitHub 저장소가 앱의 소스 code를 포함하고 있어야 합니다.
- Capgo 계정에 앱이 구성되어 있어야 합니다.
- Node.js 및 npm/yarn이 프로젝트에 구성되었습니다.
- GitHub Actions이 저장소에 활성화되었습니다.
GitHub 비밀을 설정하는 방법
제목 "GitHub 비밀을 설정하는 방법"1단계: 저장소 비밀을 구성하십시오.
제목 "1단계: 저장소 비밀을 구성하십시오."GitHub 저장소에 필요한 비밀을 설정하십시오:
- GitHub 저장소로 이동하십시오.
- 가장자리 설정 → 비밀 및 변수 → 액션
- 클릭 새로운 저장소 비밀 그리고 다음을 추가하세요:
| 비밀 이름 | 값 |
|---|---|
CAPGO_TOKEN | Capgo API 토큰 |
간단한 프로덕션 배포
간단한 프로덕션 배포기본적인 구성으로 시작하여 main branch로 푸시될 때마다 프로덕션으로 배포합니다:
# Simple GitHub Actions Workflow for Capgo Live Updatesname: Deploy to Capgo
on: push: branches: - main
jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install, test and build run: | npm ci npm run test npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --channel production env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} # For encrypted uploads, add: --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}"고급 다중 채널 구성
고급 다중 채널 구성기능 branch 배포
기능 branch 배포기능 branch를 임시 채널로 테스트하기 위해 배포합니다:
# Feature branch deploymentname: Deploy Feature Branch to Capgo
on: push: branches: - 'feature/**'
jobs: deploy-feature: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- name: Deploy to feature channel run: | CHANNEL_NAME=$(echo "${{ github.ref_name }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME암호화 사용
암호화 사용만약 __CAPGO_KEEP_0__의 암호화 기능을 사용 중이라면 Capgo의 암호화 기능을 사용 중이라면__CAPGO_KEEP_0__의 암호화 기능을 사용 중이라면
암호화 키를 설정한 후에, __CAPGO_KEEP_0__의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다. 암호화 키를 설정한 후에, __CAPGO_KEEP_0__의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다. CI/CD 환경에서 GitHub의 개인 키를 안전하게 저장한 후에, 로컬에서 암호화 키를 설정한 후에, GitHub의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다.
# Display your private key content (copy this output)cat .capgo_key_v2CI/CD 환경에서 __CAPGO_KEEP_0__의 개인 키를 안전하게 저장한 후에, 로컬에서 암호화 키를 설정한 후에, __CAPGO_KEEP_0__의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다. CAPGO_PRIVATE_KEY CI/CD 환경에서 GitHub의 개인 키를 안전하게 저장한 후에, 로컬에서 암호화 키를 설정한 후에, GitHub의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다.
# Deploy with encryption- name: Deploy to Capgo with Encryption run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --key-data-v2 "${{ secrets.CAPGO_PRIVATE_KEY }}" --channel production멀티 채널 구성
멀티 채널 구성개발, pull request, 및 프로덕션 배포와 같은 다양한 배포 채널을 설정하고 관리하는 방법에 대한 자세한 정보는 채널 문서.
개발, pull request, 및 프로덕션 배포와 같은 완전한 워크플로우:
# Complete multi-environment workflowname: Deploy to Capgo
on: push: branches: [main, develop] pull_request: branches: [main, develop]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- run: | npm ci npm run test npm run build
- uses: actions/upload-artifact@v6 with: name: dist path: dist/
deploy-development: if: github.ref == 'refs/heads/develop' needs: build runs-on: ubuntu-latest environment: development steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel development
deploy-pr: if: github.event_name == 'pull_request' needs: build runs-on: ubuntu-latest steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- name: Deploy to PR channel run: | CHANNEL_NAME="pr-${{ github.event.number }}" npm install -g @capgo/cli npx @capgo/cli channel create $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel $CHANNEL_NAME
- name: Comment PR uses: actions/github-script@v7 with: script: | github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `🚀 This PR has been deployed to Capgo channel: \`pr-${{ github.event.number }}\`\n\nTo test this update in your app, configure it to use this channel. [Learn how to configure channels →](/docs/live-updates/channels/#configuring-the-channel-in-your-app)` })
deploy-production: if: github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest environment: production steps: - uses: actions/setup-node@v6 with: node-version: '24'
- uses: actions/download-artifact@v4 with: name: dist path: dist/
- run: | npm install -g @capgo/cli npx @capgo/cli bundle upload --apikey ${{ secrets.CAPGO_TOKEN }} --channel production기능 채널 정리
기능 채널을 삭제할 때 자동으로 정리할 수 있습니다:클립보드에 복사
name: Cleanup Feature Channels
on: delete:
jobs: cleanup: runs-on: ubuntu-latest if: github.event.ref_type == 'branch' && startsWith(github.event.ref, 'feature/') steps: - uses: actions/setup-node@v6 with: node-version: '24'
- name: Delete Capgo channel run: | CHANNEL_NAME=$(echo "${{ github.event.ref }}" | sed 's/[^a-zA-Z0-9]/-/g' | tr '[:upper:]' '[:lower:]') npm install -g @capgo/cli npx @capgo/cli channel delete $CHANNEL_NAME --apikey ${{ secrets.CAPGO_TOKEN }} || true기능 채널 정리
환경 보호 규칙Environment Protection Rules
Section titled “Environment Protection Rules”GitHub에서 환경 보호 규칙을 설정하세요:
- 가장 먼저 설정 → 환경 에서
- repository
development,staging,production - 환경을 생성하세요:
- production 환경을 위한 경우, 추가하세요:Required reviewers
- : 배포를 승인해야 하는 팀원들을 추가하세요Wait timer
- 배포 branch: Restrict to
mainbranch만
보안 비밀 관리
제목 "보안 비밀 관리"환경에 따라 비밀을 사용하세요:
# Use different secrets per environmentdeploy-production: environment: production steps: - name: Deploy to Production run: | npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_PROD_TOKEN }} \ --app ${{ secrets.CAPGO_PROD_APP_ID }} \ --channel production모니터링 및 알림
제목 "모니터링 및 알림"슬랙 통합
제목 "슬랙 통합"워크플로에 슬랙 알림을 추가하세요:
name: Deploy with Notifications
jobs: deploy: runs-on: ubuntu-latest steps: # ... deployment steps
- name: Notify Slack on Success if: success() uses: 8398a7/action-slack@v3 with: status: success text: '✅ Capgo deployment successful!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Notify Slack on Failure if: failure() uses: 8398a7/action-slack@v3 with: status: failure text: '❌ Capgo deployment failed!' fields: repo,message,commit,author,action,eventName,ref,workflow env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}디스코드 통합
디스코드 통합 섹션디스코드로 알림을 전송하십시오:
- name: Discord notification if: always() uses: Ilshidur/action-discord@master with: args: | Capgo deployment ${{ job.status }}! App: ${{ secrets.CAPGO_APP_ID }} Channel: ${{ github.ref_name }} Commit: ${{ github.sha }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}이메일 알림
이메일 알림 섹션이메일 알림을 구성하십시오:
- name: Send email notification if: failure() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{ secrets.EMAIL_USERNAME }} password: ${{ secrets.EMAIL_PASSWORD }} subject: 'Capgo Deployment Failed - ${{ github.repository }}' to: team@yourcompany.com from: ci-cd@yourcompany.com body: | Deployment failed for ${{ github.repository }} Branch: ${{ github.ref_name }} Commit: ${{ github.sha }} Workflow: ${{ github.workflow }}문제 해결
문제 해결 섹션디버그 워크플로우
Debug Workflow문제 해결을 위해 디버깅 단계를 추가하세요:
- name: Debug environment run: | echo "Node version: $(node --version)" echo "NPM version: $(npm --version)" echo "Working directory: $(pwd)" echo "Files in dist/: $(ls -la dist/ || echo 'No dist directory')" echo "Environment variables:" env | grep -E "(GITHUB_|CAPGO_)" | sort
- name: Test Capgo CLI run: | npx @capgo/cli --version npx @capgo/cli app debug --apikey ${{ secrets.CAPGO_TOKEN }} --app ${{ secrets.CAPGO_APP_ID }}일반적인 문제와 해결 방법
일반적인 문제와 해결 방법“CAPGO_TOKEN not found” 오류로 인해 워크플로가 실패합니다:
- name: Verify secrets run: | if [ -z "${{ secrets.CAPGO_TOKEN }}" ]; then echo "ERROR: CAPGO_TOKEN secret is not set" exit 1 fi echo "CAPGO_TOKEN is set (length: ${#CAPGO_TOKEN})" env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}빌드 아티팩트가 발견되지 않습니다:
- name: Debug artifacts run: | echo "Checking for build artifacts..." ls -la dist/ || echo "No dist directory found" find . -name "*.js" -o -name "*.html" | head -10네트워크 연결 문제:
- name: Test connectivity run: | ping -c 3 api.capgo.io || echo "Ping failed" curl -I https://api.capgo.io/health || echo "Health check failed"재사용 가능한 워크플로
Section titled “Reusable Workflows”프로젝트 간 일관성을 위해 재사용 가능한 워크플로우를 생성하세요:
name: Reusable Capgo Deploy
on: workflow_call: inputs: environment: required: true type: string channel: required: true type: string secrets: CAPGO_TOKEN: required: true CAPGO_APP_ID: required: true
jobs: deploy: runs-on: ubuntu-latest environment: ${{ inputs.environment }} steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' cache: 'npm'
- name: Install and build run: | npm ci npm run build
- name: Deploy to Capgo run: | npm install -g @capgo/cli npx @capgo/cli bundle upload \ --apikey ${{ secrets.CAPGO_TOKEN }} \ --app ${{ secrets.CAPGO_APP_ID }} \ --channel ${{ inputs.channel }}재사용 가능한 워크플로우를 사용하세요:
name: Deploy App
on: push: branches: [main, develop]
jobs: deploy-dev: if: github.ref == 'refs/heads/develop' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: development channel: development secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}
deploy-prod: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/reusable-capgo-deploy.yml with: environment: production channel: production secrets: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} CAPGO_APP_ID: ${{ secrets.CAPGO_APP_ID }}- Section titled “Next Steps” Channels 페이지/영역: Capgo 솔루션 마케팅 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. Seen in: 페이지 solutions/white-label.astro. 메시지 키 `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value).
- 탐색 고급 배포 시나리오를 위해 사용하는 Custom Storage 고급 배포 시나리오를 위해
- 설정 보안 배포를 위해 사용하는 Encryption 보안 배포를 위해
- 설정 업데이트 동작 업데이트가 적용되는 방식을 커스터마이즈하기 위해
GitHub Actions 통합을 사용하면 GitHub의 강력한 CI/CD 플랫폼을 활용하여 Capgo Live Updates에 대한 정교한 배포 워크플로우를 생성할 수 있습니다. 이 워크플로우에는 내장 보안, 모니터링 및 협업 기능이 포함됩니다.
GitHub Actions Integration에서 계속
GitHub Actions Integration에서 계속하기만약에 __CAPGO_KEEP_0__ 사용 중이라면 GitHub 액션 통합 __CAPGO_KEEP_0__ CI/CD와 연결 Capgo CI/CD Capgo 네이티브 빌드 Capgo 네이티브 빌드 Capgo 통합 Capgo 통합 for the product workflow in Capgo Integrations, CI/CD 통합 구현 세부 사항 GitLab CI/CD 통합 __CAPGO_KEEP_0__ GitLab CI/CD Integration 구현 세부 사항에 대한 정보입니다.