본문 바로가기
CI/CD

GitHub actions로 개발 및 프로덕션 빌드 관리하기

Capgo로 devbuild를 특정 채널에 배포하고, Apple과 Google의 심사를 기다리지 않고 팀이 Capacitor Ionic 앱을 테스트하게 하세요.

GitHub actions로 개발 및 프로덕션 빌드 관리하기

이 튜토리얼은 GitHub 호스팅을 기준으로 설명하지만, 약간의 수정만 거치면 다른 CI/CD 플랫폼에서도 활용할 수 있습니다.

머리말

먼저 Capacitor 앱을 Capgo에 추가했는지 확인하세요. 이 튜토리얼은 upload 단계에 집중합니다.

커밋 컨벤션

먼저 커밋 컨벤션을 따르기 시작해야 합니다. conventional commits`를 사용하면 툴이 버전 번호를 어떻게 업그레이드할지 이해하는 데 도움이 됩니다. 배우는 데 5분도 안 걸려요.

Conventional commits

태그를 위한 GitHub actions

그 다음, 빌드와 태그 생성을 자동화할 첫 번째 GitHub action을 만들어야 합니다.

다음 경로에 파일을 생성하세요: .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

이렇게 하면 main 브랜치의 모든 커밋에 대해 태그가 릴리스됩니다. 그리고 alpha 릴리스를 위해 development, 마지막으로 각 커밋에 대한 changelog 항목을 생성합니다. CHANGELOG.md.

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

이를 구현하려면 다음을 생성해야 합니다: 개인 액세스 토큰 그 다음 GitHub에 추가하세요: secrets 로 설정합니다. PERSONAL_ACCESS_TOKEN.

CI가 changelog를 커밋하고 버전을 올리려면 이 작업이 필요합니다.

토큰 생성 시 만료 기간(expiration)은 never 로, 권한 범위(scope)는 repo.

다음을 설정하세요: version 의 내용을 입력하세요. package.json 파일입니다. 스토어에 출시된 마지막 버전을 사용하세요.

이 작업은 처음 한 번만 필요하며, 이후에는 도구가 최신 상태로 유지해 줍니다.

이제 두 파일을 커밋하면 GitHub에 첫 번째 태그가 나타나는 것을 확인할 수 있습니다!

capacitor-standard-version 마법을 부리는 패키지입니다. 기본적으로 Android 및 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 그리고 다음을 설정하세요: secret GitHub 프로젝트 설정의 secret > GitHub Action에

Capgo upload을 사용하려면, 먼저 Capgo를 위한 API 키를 발급받아 GitHub repository의 secret에 as CAPGO_TOKEN.

이제 두 파일을 커밋하면 Capgo에 첫 번째 버전이 나타나는 것을 확인할 수 있습니다!

커밋을 추가하면 production 및 development 채널을 위한 새로운 Capacitor build가 생성됩니다.

code가 제대로 작동하는지 확인하려면 Ionic build 단계에 테스트를 추가하는 것이 좋습니다.

Capgo dashboard로 이동하여 방금 생성된 build를 확인하세요. 이제 CI/CD 시스템이 구축되었습니다.

GitHub actions로 개발 및 운영 build 관리하기 계속 보기

사용 중이라면 GitHub actions로 개발 및 프로덕션 빌드 관리하기 채널 라우팅과 단계적 배포를 계획하려면, 다음을 연결하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: 채널 Channels의 구현 세부 사항은 다음을 참고하세요: Beta Testing 솔루션 Beta Testing 솔루션의 제품 워크플로우를 위한, 그리고 버전 타겟팅 솔루션 Version Targeting Solution의 제품 워크플로우용.

Capacitor 앱용 Live updates

웹 레이어 버그가 라이브 상태라면, 앱 스토어 승인을 며칠씩 기다리지 말고 Capgo를 통해 수정 사항을 배포하세요. 네이티브 변경 사항은 정상 리뷰 절차를 그대로 따르는 반면, 사용자는 백그라운드에서 업데이트를 받습니다.

블로그 최신 글

Capgo는 정말 프로페셔널한 모바일 앱을 만드는 데 필요한 최고의 인사이트를 제공합니다.