Skip to content

Commit

Permalink
[DEV->RELEASE/1.1.0] chore: Fastlane CI/CD 구축 (#2)
Browse files Browse the repository at this point in the history
* chore: Firebase 앱 배포 추가

* chore: Firebase 앱 배포 추가

* chore: Firebase 앱 배포 추가

* feat: metadata 추가

* feat: Fastlane 구축

* feat: metadata 추가

* feat: Fastlane 구축

* chore: 필요 파라미터 추가

* feat: Ruby 버전 변경

* feat: 자바/Gem 캐시 추가

* feat: Gem add Darwin

* feat: fastlane ruby실행

* feat: 릴리즈 키 추가

* feat: 슬랙 추가

* feat: 필요없는 파일 제거

* feat: 슬랙 주소 변경

* feat: Gradle Optimize

* feat: Gradle 설정 변경

* feat: 메타스페이스 변경

* feat: 웹훅 주소 업데이트

* feat: debug 해제

* feat: CI/CD 병합 완료

* feat: 타임존 병합
  • Loading branch information
CChuYong authored Jan 28, 2024
1 parent 1c89be1 commit 4170b06
Show file tree
Hide file tree
Showing 30 changed files with 708 additions and 37 deletions.
55 changes: 55 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: DEV 브랜치 배포하기
on:
push:
branches:
- dev
paths:
- 'app/**'
- 'widget/**'
- 'fastlane/**'
- '.github/workflows/dev.yaml'
jobs:
deploy-dev:
runs-on: macos-latest
environment: development
steps:
- name: 브랜치 가져오기
uses: actions/checkout@v2

- name: Ruby 설정하기
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true

- name: JDK17 준비하기
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Gradle 애드온 준비하기
uses: gradle/gradle-build-action@v2

- name: 시크릿 파일 생성하기
run: |
echo "$PLAYSTORE_SA" > play_keyfile.json && \
echo "$GCP_FASTLANE_SA" > gcp_keyfile.json && \
echo "$GENERIC_APP_SECRETS" > secrets.properties && \
echo "$GOOGLE_SERVICES_JSON" > app/google-services.json && \
echo "$APP_SIGNING_SECRET" > ./keystore.b64 && \
base64 -d -i ./keystore.b64 > ./app/bbibbi_android
env:
PLAYSTORE_SA: ${{ secrets.PLAYSTORE_SA }}
GCP_FASTLANE_SA: ${{ secrets.GCP_FASTLANE_SA }}
GENERIC_APP_SECRETS: ${{ secrets.GENERIC_APP_SECRETS }}
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
APP_SIGNING_SECRET: ${{ secrets.APP_SIGNING_SECRET }}

- name: Fastlane 배포하기
run: bundle exec fastlane deploy_dev
env:
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SERVICE_CREDENTIAL_FILE_PATH: gcp_keyfile.json
GOOGLE_CREDENTIAL_FILE_PATH: play_keyfile.json
68 changes: 68 additions & 0 deletions .github/workflows/prod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: 프로덕션 빌드
on:
pull_request:
branches:
- main
types: [ closed ]
jobs:
production-build:
runs-on: macos-latest
environment: production
steps:
- name: 브랜치 가져오기
uses: actions/checkout@v2

- name: Ruby 설정하기
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true

- name: JDK17 준비하기
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Gradle 애드온 준비하기
uses: gradle/gradle-build-action@v2

- name: 시크릿 파일 생성하기
run: |
echo "$PLAYSTORE_SA" > play_keyfile.json && \
echo "$GCP_FASTLANE_SA" > gcp_keyfile.json && \
echo "$GENERIC_APP_SECRETS" > secrets.properties && \
echo "$GOOGLE_SERVICES_JSON" > app/google-services.json && \
echo "$APP_SIGNING_SECRET" > ./keystore.b64 && \
base64 -d -i ./keystore.b64 > ./app/bbibbi_android
env:
PLAYSTORE_SA: ${{ secrets.PLAYSTORE_SA }}
GCP_FASTLANE_SA: ${{ secrets.GCP_FASTLANE_SA }}
GENERIC_APP_SECRETS: ${{ secrets.GENERIC_APP_SECRETS }}
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
APP_SIGNING_SECRET: ${{ secrets.APP_SIGNING_SECRET }}

- name: Fastlane 배포하기
run: bundle exec fastlane deploy_production
env:
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SERVICE_CREDENTIAL_FILE_PATH: gcp_keyfile.json
GOOGLE_CREDENTIAL_FILE_PATH: play_keyfile.json

- name: 브랜치명 추출하기
id: branch-name
uses: tj-actions/[email protected]

- name: 버전 정보 추출
run: echo "TAG=$(echo '${{ steps.branch-name.outputs.current_branch }}' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" >> $GITHUB_ENV
id: extract_version_name

- name: Release 생성
if: github.event.pull_request.merged == true
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG }}
release_name: ${{ env.TAG }}
29 changes: 0 additions & 29 deletions .github/workflows/release.yml

This file was deleted.

55 changes: 55 additions & 0 deletions .github/workflows/stage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Release 브랜치 배포하기
on:
push:
branches:
- release/**
paths:
- 'app/**'
- 'widget/**'
- 'fastlane/**'
- '.github/workflows/stage.yaml'
jobs:
deploy-stage:
runs-on: macos-latest
environment: internal-test
steps:
- name: 브랜치 가져오기
uses: actions/checkout@v2

- name: Ruby 설정하기
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
bundler-cache: true

- name: JDK17 준비하기
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: Gradle 애드온 준비하기
uses: gradle/gradle-build-action@v2

- name: 시크릿 파일 생성하기
run: |
echo "$PLAYSTORE_SA" > play_keyfile.json && \
echo "$GCP_FASTLANE_SA" > gcp_keyfile.json && \
echo "$GENERIC_APP_SECRETS" > secrets.properties && \
echo "$GOOGLE_SERVICES_JSON" > app/google-services.json && \
echo "$APP_SIGNING_SECRET" > ./keystore.b64 && \
base64 -d -i ./keystore.b64 > ./app/bbibbi_android
env:
PLAYSTORE_SA: ${{ secrets.PLAYSTORE_SA }}
GCP_FASTLANE_SA: ${{ secrets.GCP_FASTLANE_SA }}
GENERIC_APP_SECRETS: ${{ secrets.GENERIC_APP_SECRETS }}
GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}
APP_SIGNING_SECRET: ${{ secrets.APP_SIGNING_SECRET }}

- name: Fastlane 배포하기
run: bundle exec fastlane deploy_internal_test
env:
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SERVICE_CREDENTIAL_FILE_PATH: gcp_keyfile.json
GOOGLE_CREDENTIAL_FILE_PATH: play_keyfile.json
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ google-services.json
.idea/
.DS_Store
secrets.properties
play_keyfile.json
.env
6 changes: 6 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source "https://rubygems.org"

gem "fastlane"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
Loading

0 comments on commit 4170b06

Please sign in to comment.