Skip to content

[Core] CD Pipeline

[Core] CD Pipeline #18

Workflow file for this run

name: Android CI
on:
pull_request:
branches: ["develop"]
jobs:
cd-build:
env:
TITLE: ${{ github.event.pull_request.title }}
KEYSTORE: ${{ secrets.DODAM_KEYSTORE }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Check Env
run: |
echo '${{ env.KEYSTORE }}'
- name: Generate Keystore File
run: |
echo '${{ env.KEYSTORE }}' | base64 --d > ./dodam.jks
ls
- name: 버전 이름 추출
id: extract_version
run: echo "version=v$(echo '${{ env.TITLE }}' | grep -oP 'release v\\K[0-9]+\\.[0-9]+\\.[0-9]+')" >> $GITHUB_ENV
- name: 버전 출력
run: echo "Extract Version ${{ steps.extract_version.outputs.version }}"
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Student spotless
if: startsWith(env.TITLE, 'Student')
run: ./gradlew dodam-student:spotlessCheck
- name: Run Teacher spotless
if: startsWith(env.TITLE, 'Teacher')
run: ./gradlew dodam-teacher-android:spotlessCheck
- name: Assemble Student Release Bundle
if: startsWith(env.TITLE, 'Student')
run: ./gradlew dodam-student:bundleRelease
- name: Assemble Teacher Release Bundle
if: startsWith(env.TITLE, 'Teacher')
run: ./gradlew dodam-teacher-android:bundleRelease
- name: Sign Student Release
if: startsWith(env.TITLE, 'Student')
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: ./dodam-student/build/outputs/bundle/release
signingKeyBase64: ${{ secrets.DODAM_KEYSTORE }}
keyStorePassword: ${{ secrets.DODAM_KEYSTORE_PASSWORD }}
alias: ${{ secrets.DODAM_KEYSTORE_ALIAS }}
keyPassword: ${{ secrets.DODAM_KEYSTORE_PASSWORD }}
- name: Sign Teacher Release
if: startsWith(env.TITLE, 'Teacher')
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: ./dodam-teacher-android/build/outputs/bundle/release
signingKeyBase64: ${{ secrets.DODAM_KEYSTORE }}
keyStorePassword: ${{ secrets.DODAM_KEYSTORE_PASSWORD }}
alias: ${{ secrets.DODAM_KEYSTORE_ALIAS }}
keyPassword: ${{ secrets.DODAM_KEYSTORE_PASSWORD }}
- name: Setup Authorization With Google Play Store
run: |
echo '${{ secrets.DODAM_GOOGLE_PLAY_API_AUTH }}' > service_account.json
mkdir whatsNewDirectory
- name: Student Dodam Deploy to Production Channel
if: startsWith(env.TITLE, 'Student')
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service_account.json
packageName: com.b1nd.dodam.student
releaseFiles: ./dodam-student/build/outputs/bundle/release/dodam-student-release.aab
track: production
status: completed
inAppUpdatePriority: 2
whatsNewDirectory: whatsNewDirectory/
- name: Teacher Dodam Deploy to Production Channel
if: startsWith(env.TITLE, 'Teacher')
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service_account.json
packageName: com.b1nd.dodam.teacher
releaseFiles: ./dodam-teacher-android/build/outputs/bundle/release/dodam-teacher-android-release.aab
track: production
status: completed
inAppUpdatePriority: 2
whatsNewDirectory: whatsNewDirectory/