메뉴로 바로가기

GitHub 액션 통합

Integrate Capgo Live Updates with GitHub Actions to automatically deploy your app updates whenever you push code changes. This guide covers setting up automated builds, testing, and deployment workflows using GitHub’s powerful CI/CD platform.

사전 요구 사항

사전 요구 사항 제목

GitHub Actions 통합을 설정하기 전에 다음을 확인하세요:

  • GitHub 리포지토리와 앱의 소스 code가 필요합니다.
  • A Capgo 계정에 앱이 구성된 경우
  • Node.js 및 npm/yarn이 프로젝트에 구성된 경우
  • GitHub Actions가 저장소에 활성화된 경우

GitHub 비밀을 설정하는 방법

GitHub 비밀을 설정하는 방법 섹션

1단계: 저장소 비밀을 구성하십시오

__CAPGO_KEEP_0__ 비밀을 구성하는 방법 섹션

GitHub 저장소에 필요한 비밀을 설정하십시오:

  1. GitHub 저장소로 이동하십시오:
  2. __CAPGO_KEEP_0__로 이동하십시오: 설정비밀 및 변수Actions
  3. Click 새로운 저장소 비밀 및 다음을 추가하세요.
비밀 이름
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

암호화 사용

Using Encryption

__CAPGO_KEEP_0__의 암호화 기능을 사용하고 있다면 Capgo의 암호화 기능을 사용하고 있다면__CAPGO_KEEP_0__의 개인 키를 안전하게 CI/CD 환경에 저장해야 합니다.

__CAPGO_KEEP_0__에서 암호화 키를 설정한 후 __CAPGO_KEEP_0__의 개인 키를 기밀로 처리하세요. GitHub의 개인 키를 저장소 비밀에 추가하세요.

__CAPGO_KEEP_0__의 개인 키를 저장소 비밀에 추가하세요.
# Display your private key content (copy this output)
cat .capgo_key_v2

__CAPGO_KEEP_0__의 개인 키를 저장소 비밀에 추가하세요. CAPGO_PRIVATE_KEY GitHub의 개인 키를 저장소 비밀에 추가하세요.

# 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, 및 프로덕션 배포와 같은 완전한 워크플로우:

# 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. 환경 만들기: development, staging, production
  3. 생산 환경에 추가:
    • 필수 검토자: 프로덕션 배포를 승인해야 하는 팀원 추가
    • 대기 시간: __CAPGO_KEEP_0__ (선택적)
    • 배포 지점: __CAPGO_KEEP_1__ 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

모니터링 및 알림

모니터링 및 알림

슬랙 통합

슬랙 통합

Slack 알림을 워크플로에 추가하세요:

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

Discord 통합

__CAPGO_KEEP_1__

Discord로 알림을 보내기:

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

이메일 알림

__CAPGO_KEEP_2__

이메일 알림을 구성하세요:

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

문제 해결

__CAPGO_KEEP_3__

디버그 워크플로우

디버그 워크플로우 섹션

문제를 해결하기 위해 디버깅 단계를 추가하세요.

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

재사용 가능한 워크플로우

재사용 가능한 워크플로우 섹션

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

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

With GitHub Actions integration, you can leverage GitHub’s powerful CI/CD platform to create sophisticated deployment workflows with built-in security, monitoring, and collaboration features for your Capgo Live Updates.

Keep going from GitHub Actions Integration

GitHub 액션 통합에서 계속하기

__CAPGO_KEEP_0__ 액션 통합을 사용 중이라면 GitHub 액션 통합 __CAPGO_KEEP_0__ 액션 통합을 CI/CD 자동화 계획에 연결하세요. Capgo CI/CD Capgo CI/CD에서 제품 워크플로우 Capgo 네이티브 빌드 Capgo 네이티브 빌드에서 제품 워크플로우 Capgo 통합 Capgo 통합에서 제품 워크플로우 CI/CD 통합 CI/CD 통합 구현 세부 사항 GitLab CI/CD 통합 __CAPGO_KEEP_0__