Skip to content

feature[release]: fix release workflows #5

feature[release]: fix release workflows

feature[release]: fix release workflows #5

Workflow file for this run

name: Release Firebase Distribution Workflow
on:
push:
branches:
- release/**
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Decode keystore
run: echo "${{ secrets.RELEASE_KEYSTORE_BASE64 }}" | base64 --decode > keystore/release.keystore.jks
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
- name: Add Local Properties
env:
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
HMH_DEV_BASE_URL: ${{ secrets.HMH_DEV_BASE_URL }}
HMH_PROD_BASE_URL: ${{ secrets.HMH_PROD_BASE_URL }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
run: |
echo kakaoApiKey=$KAKAO_API_KEY >> ./local.properties
echo amplitudeApiKey=$AMPLITUDE_API_KEY >> ./local.properties
echo keyAlias=$KEY_ALIAS >> ./local.properties
echo keyPassword=$KEY_PASSWORD >> ./local.properties
echo storePassword=$STORE_PASSWORD >> ./local.properties
echo hmhDevBaseUrl=$HMH_DEV_BASE_URL >> ./local.properties
echo hmhProdBaseUrl=$HMH_PROD_BASE_URL >> ./local.properties
- name: Access Firebase Service
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > ./app/google-services.json
- name: Cache Gradle dependencies
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: gradle-cache-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-cache-${{ runner.os }}-
- name: Build APK
run: ./gradlew assembleRelease
- name: Verify APK Existence
run: test -f app/build/outputs/apk/release/app-release.apk
- name: Generate Release Notes
id: release-notes
run: echo "RELEASE_NOTES=$(git log --oneline -n 5)" >> $GITHUB_ENV
- name: Upload to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{ secrets.FIREBASE_APP_ID }}
serviceCredentialsFileContent: ${{ secrets.CREDENTIAL_FILE_CONTENT }}
groups: hmh-team
file: app/build/outputs/apk/release/app-release.apk
releaseNotes: ${{ env.RELEASE_NOTES }}
- name: Install Firebase CLI
run: curl -sL https://firebase.tools | bash
- name: Get Firebase Download URL
id: firebase-url
run: |
DOWNLOAD_URL=$(firebase appdistribution:releases:list --app ${{ secrets.FIREBASE_APP_ID }} --limit 1 --format json | jq -r '.[0].downloadUrl')
echo "DOWNLOAD_URL=$DOWNLOAD_URL" >> $GITHUB_ENV
- name: Find Latest Release Branch
id: previous-release
run: |
PREV_RELEASE_BRANCH=$(git branch -r --sort=-committerdate | grep 'origin/release/' | grep -v ${{ github.ref_name }} | head -n 1 | sed 's/origin\///')
echo "PREV_RELEASE_BRANCH=$PREV_RELEASE_BRANCH" >> $GITHUB_ENV
- name: Generate Release Notes
id: release-notes

Check failure on line 92 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / Release Firebase Distribution Workflow

Invalid workflow file

The workflow is not valid. .github/workflows/release.yml (Line: 92, Col: 13): The identifier 'release-notes' may not be used more than once within the same scope.
run: |
RELEASE_NOTES=$(git log ${{ env.PREV_RELEASE_BRANCH }}..HEAD --oneline)
echo "RELEASE_NOTES=$RELEASE_NOTES" >> $GITHUB_ENV
- name: Extract Version Information
id: version-info
run: |
VERSION_NAME=$(grep 'versionName' app/build.gradle.kts | awk '{print $2}' | tr -d '"')
VERSION_CODE=$(grep 'versionCode' app/build.gradle.kts | awk '{print $2}')
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
- name: Send Slack Notification
if: success()
run: |
curl -X POST -H 'Content-type: application/json' --data '{
"text": "🎉 *Firebase 릴리즈 완료!* 🎉\n
🚀 *배포 버전:* `${{ env.VERSION_NAME }} (버전 코드: ${{ env.VERSION_CODE }})`\n
📌 *배포 브랜치:* `${{ github.ref_name }}`\n
🔖 *릴리즈 노트:*\n
```${{ env.RELEASE_NOTES }}```\n
📥 *다운로드 링크:* <${{ env.DOWNLOAD_URL }}|여기를 클릭>"
}' ${{ secrets.SLACK_WEBHOOK_URL }}