Skip to content

[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 저장소에 필요한 비밀을 설정하십시오:

  1. GitHub 저장소로 이동하십시오.
  2. 가장자리 설정비밀 및 변수액션
  3. 클릭 새로운 저장소 비밀 그리고 다음을 추가하세요:
비밀 이름
CAPGO_TOKENCapgo API 토큰

간단한 프로덕션 배포

간단한 프로덕션 배포

기본적인 구성으로 시작하여 main branch로 푸시될 때마다 프로덕션으로 배포합니다:

# Simple GitHub Actions Workflow for Capgo Live Updates
name: 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 deployment
name: 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 환경에서 안전하게 저장해야 합니다.

CI/CD 환경에서 __CAPGO_KEEP_0__의 개인 키를 안전하게 저장한 후에, 로컬에서 암호화 키를 설정한 후에, __CAPGO_KEEP_0__의 개인 키를 CI/CD 환경에서 안전하게 저장해야 합니다.
# Display your private key content (copy this output)
cat .capgo_key_v2

CI/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 workflow
name: 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

기능 채널 정리

환경 보호 규칙

GitHub에서 환경 보호 규칙을 설정하세요:

  1. 가장 먼저 설정환경 에서
  2. repository development, staging, production
  3. 환경을 생성하세요:
    • production 환경을 위한 경우, 추가하세요:Required reviewers
    • : 배포를 승인해야 하는 팀원들을 추가하세요Wait timer
    • 배포 branch: Restrict to main branch만

보안 비밀 관리

제목 "보안 비밀 관리"

환경에 따라 비밀을 사용하세요:

# Use different secrets per environment
deploy-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”

프로젝트 간 일관성을 위해 재사용 가능한 워크플로우를 생성하세요:

github/workflows/reusable-capgo-deploy.yml
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 }}

재사용 가능한 워크플로우를 사용하세요:

github/workflows/deploy.yml
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 }}

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 구현 세부 사항에 대한 정보입니다.