Skip to content

Commit

Permalink
Merge pull request #289 from team-peekabook/feature/#288-fix-cd
Browse files Browse the repository at this point in the history
#288 [chore] CI, CD 분리
  • Loading branch information
2zerozu authored Jan 1, 2024
2 parents c14b329 + ae9346e commit cd902f8
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 64 deletions.
99 changes: 99 additions & 0 deletions .github/workflows/delivery.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Peekabook Delivery

on:
push:
branches: [ "develop" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Gradle cache
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'
cache: gradle

- name: Create Google-Services.json
env:
GOOGLE_SERVICES: ${{ secrets.GOOGLE_SERVICES }}
run: |
touch ./app/google-services.json
echo $GOOGLE_SERVICES >> ./app/google-services.json
cat ./app/google-services.json
- name: Create Local Properties
run: touch local.properties

- name: Access Local Properties
env:
HOST_URI: ${{ secrets.BASE_URI }}
PROD_URI: ${{ secrets.PROD_URI }}
NAVER_URL: ${{ secrets.NAVER_URL }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
KAKAO_NATIVE_APP_KEY: ${{ secrets.KAKAO_NATIVE_APP_KEY }}
KAKAO_REDIRECT_SCHEME: ${{ secrets.KAKAO_REDIRECT_SCHEME }}
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
STORE_FILE: ${{ secrets.STORE_FILE }}
run: |
echo BASE_URI=\"$BASE_URI\" >> local.properties
echo PROD_URI=\"PROD_URI\" >> local.properties
echo NAVER_URL=\"$NAVER_URL\" >> local.properties
echo CLIENT_ID=\"$CLIENT_ID\" >> local.properties
echo CLIENT_SECRET=\"$CLIENT_SECRET\" >> local.properties
echo KAKAO_NATIVE_APP_KEY=\"KAKAO_NATIVE_APP_KEY\" >> local.properties
echo KAKAO_REDIRECT_SCHEME=\"KAKAO_REDIRECT_SCHEME\" >> local.properties
echo STORE_PASSWORD= $STORE_PASSWORD >> local.properties
echo KEY_PASSWORD= $KEY_PASSWORD >> local.properties
echo KEY_ALIAS= $KEY_ALIAS >> local.properties
echo STORE_FILE= $STORE_FILE >> local.properties
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Create keystore
run: |
mkdir -p app/keystore
touch app/keystore/peeka_key.jks
- name: decode release keystore
run: echo "${{ secrets.RELEASE_KEYSTORE_FILE_BASE_64 }}" | base64 -d > app/keystore/peeka_key.jks

- name: AssembleRelease with Gradle
run: ./gradlew assembleRelease

- name: Upload APK
if: ${{ success() }}
uses: actions/upload-artifact@v2
with:
name: apk
path: app/build/outputs/apk/release/
retention-days: 1

- name: send apk
uses: MeilCli/slack-upload-file@v3
with:
slack_token: ${{ secrets.SLACK_BOT_TOKEN }}
channel_id: ${{ secrets.SLACK_CHANNEL_ID }}
initial_comment: 'Peekabook Release APK ! ! !'
file_type: 'apk'
file_name: '피카북.apk'
file_path: './app/build/outputs/apk/release/app-release.apk'
retries: 1
66 changes: 2 additions & 64 deletions .github/workflows/pr_checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,11 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Create keystore
run: |
mkdir -p app/keystore
touch app/keystore/peeka_key.jks
- name: decode release keystore
run: echo "${{ secrets.RELEASE_KEYSTORE_FILE_BASE_64 }}" | base64 -d > app/keystore/peeka_key.jks

- name: Lint Check
run: ./gradlew ktlintCheck

- name: Build with Gradle
run: ./gradlew build
- name: AssembleDebug with Gradle
run: ./gradlew assembleDebug

- name: On Success!! Congratulations
if: ${{ success() }}
Expand All @@ -103,57 +95,3 @@ jobs:
MSG_MINIMAL: true
SLACK_USERNAME: Peekabook-AOS
SLACK_MESSAGE: '에러를 확인해주세요'

- name: Upload APK
if: ${{ success() }}
uses: actions/upload-artifact@v2
with:
name: apk
path: app/build/outputs/apk/release/app-release.apk/

upload:
needs: [ build ]
name: upload to Slack
runs-on: ubuntu-latest
steps:
- name: download Article
uses: actions/download-artifact@v2
with:
name: apk

- name: Update Release apk name
if: ${{ success() }}
run: |
mv app-release.apk 피카북-Release.apk
echo 'apk=피카북-Release.apk' >> $GITHUB_ENV
- name: Upload APK at Slack
if: ${{ success() }}
run: |
curl -X POST \
-F file=@$apk \
-F channels=${{secrets.SLACK_CHANNEL_ID}} \
-H "Authorization: Bearer ${{secrets.SLACK_BOT_TOKEN}}" \
https://slack.com/api/files.upload
- name: On Success
if: ${{ success() }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_TITLE: 'peekabook/Anroid apk upload S.U.C.C.E.S.S 🎉🎉🎉'
SLACK_COLOR: '#5BFF33'
MSG_MINIMAL: true
SLACK_USERNAME: Peekabook-AOS
SLACK_MESSAGE: 'apk 생성 완료! '

- name: On Success but Fail
if: ${{ failure() }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_TITLE: 'peekabook/Anroid apk upload Fail❌'
SLACK_COLOR: '#FFF233'
MSG_MINIMAL: true
SLACK_USERNAME: Peekabook-AOS
SLACK_MESSAGE: '빌드는 완료 되었으나 apk업로드 에러'

0 comments on commit cd902f8

Please sign in to comment.