메인 콘텐츠로 바로가기
CI/CD

GitHub을 사용하여 개발 및 운영 빌드를 관리하세요.

Capgo을 사용하여 개발 빌드를 특정 채널로 릴리즈하고, 팀원들이 앱을 Capacitor Ionic 앱을 테스트할 수 있도록 해보세요. Apple과 Google의 리뷰를 기다리지 않아도 됩니다.

마틴 도나디유

마틴 도나디유

콘텐츠 마케터

GitHub을 사용하여 개발 및 운영 빌드를 관리하세요.

이 튜토리얼은 GitHub 호스팅에 초점을 맞추고 있지만, 다른 CI/CD 플랫폼에适용할 수 있도록 약간의 조정을 하면 됩니다.

소개

Capacitor 앱을 Capgo에 먼저 등록하셨는지 확인하세요. 이 튜토리얼은 업로드 단계만 다룹니다.

커밋 규약

먼저 커밋 규칙을 따라야 합니다. conventional commits` 이 도구가 버전 번호를 업그레이드하는 방법을 이해할 수 있도록 도와줍니다. 5분 만에 배울 수 있습니다.

Conventional commits

GitHub 태그에 대한 액션

자동으로 빌드하고 태그를 생성하는 첫 번째 GitHub 액션을 만들 필요가 있습니다.

다음 경로에 파일을 생성하세요: .github/workflows/bump_version.yml

이 내용과 함께:

name: Bump version

on:
  push:
    branches:
      - main
      - development

jobs:
  bump-version:
    if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
    runs-on: ubuntu-latest
    name: "Bump version and create changelog with standard version"
    steps:
      - name: Check out
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          filter: blob:none
          token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
      - name: Git config
        run: |
          git config --local user.name "github-actions[bot]"
          git config --local user.email "github-actions[bot]@users.noreply.github.com"
      - name: Create bump and changelog
        if: github.ref == 'refs/heads/main'
        run: npx capacitor-standard-version
      - name: Create bump and changelog
        if: github.ref != 'refs/heads/main'
        run: npx capacitor-standard-version --prerelease alpha
      - name: Push to origin
        run: |
          CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
          remote_repo="https://${GITHUB_ACTOR}:${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git"
          git pull $remote_repo $CURRENT_BRANCH
          git push $remote_repo HEAD:$CURRENT_BRANCH --follow-tags --tags

이것은 메인 branch의 모든 커밋에 대해 태그를 릴리즈하고, alpha 릴리즈를 development, 그리고 마지막으로 메인 branch의 모든 커밋에 대한 변경 로그를 생성합니다. CHANGELOG.md.

이 파일이 없더라도 걱정하지 마세요. 이 파일은 자동으로 생성됩니다.

이것을 작동시키기 위해서는 __CAPGO_KEEP_0__ 개인 접근 토큰 을 생성하고 GitHub 비밀 으로 PERSONAL_ACCESS_TOKEN.

이것은 CI가 변경 로그와 버전 업데이트를 제출할 수 있도록 하기 위해 필요합니다.

토큰을 생성할 때 만료 기간을 never 으로 선택하고 범위는 repo.

으로 선택하세요. version __CAPGO_KEEP_0__ package.json 파일에

이것은 처음 한 번만 필요합니다. 그 후 도구는 최신 상태를 유지합니다.

GitHub에 첫 번째 태그가 나타날 수 있도록 두 개의 파일을 모두 커밋할 수 있습니다.

capacitor-standard-version 이것이 패키지입니다. 기본적으로 안드로이드와 IOS에서 버전 번호를 업데이트합니다.

GitHub 빌드 액션

이 경로에 파일을 생성하세요: .github/workflows/build.yml

이 내용으로:

name: Build source code and send to Capgo

on:
  push:
    tags:
      - '*'
      
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: "Build code and release"
    steps:
      - name: Check out
        uses: actions/checkout@v6
      - name: Install dependencies
        id: install_code
        run: npm i
      - name: Build
        id: build_code
        run: npm build
        env:
          MY_ENV_VAR: ${{ secrets.MY_ENV_VAR }}
      - name: Create Release Alpha
        if: "contains(github.ref, '-alpha.')"
        id: create_release_prepro
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c development
      - name: Create Release Production
        if: "!contains(github.ref, '-alpha.')"
        id: create_release_prod
        run: npx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} -c production

Capgo로 보내기 전에 의존성을 설치하고 빌드합니다.

빌드 명령이 다르다면, 그것을 build_code 단계에서 변경할 수 있습니다.

환경 변수가 필요하다면, MY_ENV_VAR 그것을 __CAPGO_KEEP_1__ 액션에서 secret로 설정한 후 __CAPGO_KEEP_0__ 프로젝트 설정에서 설정하세요. secret in your GitHub project setting, then secret then GitHub Action.

To make Capgo 업로드가 작동하려면 API 키를 Capgo에서 가져와 Capgo의 비밀을 GitHub 저장소에 추가하세요 as CAPGO_TOKEN.

이제 이 두 개의 파일을 커밋하고 Capgo의 첫 번째 버전이 Capgo에 나타날 수 있습니다!

커밋을 추가하면 Capacitor의 새로운 빌드가 프로덕션 및 개발 채널에 생성됩니다.

테스트를 Ionic 빌드 단계에 추가하여 code이 작동하는지 확인하세요.

Capgo 대시보드로 이동하여 생성된 빌드를 확인하세요. 이제 CI/CD 시스템이 준비되었습니다.

Capacitor 앱에 대한 실시간 업데이트

웹层 버그가 실시간으로 활성화되면, 앱 스토어 승인까지 며칠 기다리지 않고 Capgo을 통해 수정을 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경은 일반적인 검토 경로를 유지합니다.

시작하기

블로그에서 최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.