test #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Android CI | |
on: | |
push: | |
branches: [ "github-action" ] | |
pull_request: | |
branches: [ "master" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
# | |
# - name: Run a one-line script | |
# run: echo Hello, world! | |
# | |
# - name: Run a multi-line script | |
# run: | | |
# echo Add other actions to build, | |
# echo test, and deploy your project. | |
- name: Cache Gradle packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/buildSrc/**/*.kt') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
# - name: Decode Keystore | |
# id: decode_keystore | |
# uses: timheuer/base64-to-file@v1 | |
# with: | |
# fileName: '../nextroom_key' | |
# encodedString: ${{ secrets.SIGNING_KEY }} | |
# - name: Decode And Save Keystore Base64 | |
# run: | | |
# echo $DATA | base64 -d > app/keystore.jks | |
# env: | |
# DATA: ${{ secrets.KEYSTORE_BASE64 }} | |
- name: Decode And Save Keystore Base64 # app.keystore.jks 키 값을 디코드 해서 app/ksystore.jks로 저장한다. (생략 가능) | |
run: | | |
echo $DATA | base64 --decode > ../nextroom_key | |
env: | |
DATA: ${{ secrets.KEYSTORE_BASE64 }} | |
- name: Access Build Key | |
run: | | |
echo DEV_BASE_URL=\"DEV_BASE_URL\" > local.properties | |
echo PROD_BASE_URL=\"PROD_BASE_URL\" >> local.properties | |
echo key_alias=\"key_alias\" >> local.properties | |
echo key_password=\"key_password\" >> local.properties | |
echo store_password=\"store_password\" >> local.properties | |
shell: bash | |
env: | |
DEV_BASE_URL: ${{ secrets.DEV_BASE_URL }} | |
PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }} | |
key_alias: ${{ secrets.ALIAS }} | |
key_password: ${{ secrets.KEY_PASSWORD }} | |
store_password: ${{ secrets.KEY_STORE_PASSWORD }} | |
- name: Load Google Service file | |
run: echo $DATA | base64 -di > app/google-services.json | |
env: | |
DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
- name: Build clean | |
run: ./gradlew clean | |
# - name: Run ktlint | |
# run: ./gradlew ktlintCheck | |
# | |
# - name: Run detekt | |
# run: ./gradlew detekt | |
- name: Build assemble debug apk | |
run: ./gradlew assembleDebug --stacktrace | |
- name: Build assemble release apk | |
run: ./gradlew assembleRelease --stacktrace | |
- name: Upload Debug APK | |
uses: actions/upload-artifact@v3 | |
with: | |
name: debug | |
path: ./app/build/outputs/apk/debug/app-debug.apk | |
# - name: Signing Release APK | |
# uses: r0adkll/sign-android-release@v1 | |
# # ID used to access action output | |
# id: sign_app | |
# with: | |
# releaseDirectory: app/build/outputs/apk/release | |
# signingKeyBase64: ${{ secrets.SIGNING_KEY }} | |
# alias: ${{ secrets.ALIAS }} | |
# keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} | |
# keyPassword: ${{ secrets.KEY_PASSWORD }} | |
# env: | |
# # override default build-tools version (33.0.0) -- optional | |
# BUILD_TOOLS_VERSION: "34.0.0" | |
# Example use of `signedReleaseFile` output -- not needed | |
# - name: Upload Release APK | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: Signed app bundle | |
# path: ${{steps.sign_app.outputs.signedReleaseFile}} | |
- name: Upload Release APK | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release | |
path: ./app/build/outputs/apk/release/app-release.apk | |
# | |
# - name: Upload apk to Firebase App Distribution | |
# uses: wzieba/Firebase-Distribution-Github-Action@v1 | |
# with: | |
# appId: ${{ secrets.FIREBASE_APP_ID }} | |
# serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }} | |
# groups: testers | |
# file: app/build/outputs/apk/release/app-release-unsigned.apk | |