Skip to content

Merge pull request #37 from min486/develop #9

Merge pull request #37 from min486/develop

Merge pull request #37 from min486/develop #9

Workflow file for this run

name: Android CD Release
on:
push:
branches:
- master # master 브랜치에 push 될 때 실행
tags:
- 'v*'
permissions:
contents: write # Release 생성 권한 부여
jobs:
release:
runs-on: ubuntu-latest
# Secrets를 환경 변수로 정의하여 run 스크립트에서 $변수 형태로 사용 가능
env:
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
GOOGLE_SERVICES_BASE64: ${{ secrets.GOOGLE_SERVICES_BASE64 }}
KAKAO_NATIVE_APP_KEY: ${{ secrets.KAKAO_NATIVE_APP_KEY }}
NAVER_CLIENT_ID: ${{ secrets.NAVER_CLIENT_ID }}
NAVER_CLIENT_SECRET: ${{ secrets.NAVER_CLIENT_SECRET }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Decode Google Services File
run: echo "$GOOGLE_SERVICES_BASE64" | base64 -d > app/google-services.json
- name: Create local.properties for CI
run: |
echo "kakao.native.app.key=$KAKAO_NATIVE_APP_KEY" > local.properties
echo "naver.client.id=$NAVER_CLIENT_ID" >> local.properties
echo "naver.client.secret=$NAVER_CLIENT_SECRET" >> local.properties
# Secrets에서 Base64 문자열을 디코딩하여 app/keystore.jks 파일로 저장
- name: Decode Keystore File
# base64 -d 명령어를 사용하여 복호화
run: echo "$KEYSTORE_BASE64" | base64 -d > app/keystore.jks
# 서명에 필요한 비밀번호와 별칭 정보를 signing.properties 파일로 생성
- name: Set up Signing Properties
run: |
echo "storeFile=keystore.jks" > ./signing.properties
echo "storePassword=$KEYSTORE_PASSWORD" >> ./signing.properties
echo "keyAlias=$KEY_ALIAS" >> ./signing.properties
echo "keyPassword=$KEY_PASSWORD" >> ./signing.properties
# 릴리즈 AAB 빌드 실행
- name: Build Release AAB
# 프로젝트 설정을 통해 서명된다
run: ./gradlew bundleRelease
# GitHub Release 생성 및 고정 메시지 적용
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
# Git Tag가 푸시될 때만 Release를 생성 (예: v1.0.0)
if: startsWith(github.ref, 'refs/tags/')
with:
# 빌드된 AAB 파일 업로드
files: app/build/outputs/bundle/release/app-release.aab
name: ${{ github.ref_name }}