Why use decapitated actions? (#373) #496
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: Build APK and Notify Discord | |
on: | |
push: | |
branches: | |
- dev | |
paths-ignore: | |
- '**/README.md' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
CI: true | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Download last SHA artifact | |
uses: dawidd6/action-download-artifact@v3 | |
with: | |
workflow: beta.yml | |
name: last-sha | |
path: . | |
continue-on-error: true | |
- name: Get Commits Since Last Run | |
run: | | |
if [ -f last_sha.txt ]; then | |
LAST_SHA=$(cat last_sha.txt) | |
else | |
# Fallback to first commit if no previous SHA available | |
LAST_SHA=$(git rev-list --max-parents=0 HEAD) | |
fi | |
echo "Commits since $LAST_SHA:" | |
# Accumulate commit logs in a shell variable | |
COMMIT_LOGS=$(git log $LAST_SHA..HEAD --pretty=format:"● %s ~%an") | |
# URL-encode the newline characters for GitHub Actions | |
COMMIT_LOGS="${COMMIT_LOGS//'%'/'%25'}" | |
COMMIT_LOGS="${COMMIT_LOGS//$'\n'/'%0A'}" | |
COMMIT_LOGS="${COMMIT_LOGS//$'\r'/'%0D'}" | |
# Append the encoded commit logs to the COMMIT_LOG environment variable | |
echo "COMMIT_LOG=${COMMIT_LOGS}" >> $GITHUB_ENV | |
# Debugging: Print the variable to check its content | |
echo "$COMMIT_LOGS" | |
echo "$COMMIT_LOGS" > commit_log.txt | |
shell: /usr/bin/bash -e {0} | |
env: | |
CI: true | |
continue-on-error: true | |
- name: Save Current SHA for Next Run | |
run: echo ${{ github.sha }} > last_sha.txt | |
- name: Set variables | |
run: | | |
VER=$(grep -E -o "versionName \".*\"" app/build.gradle | sed -e 's/versionName //g' | tr -d '"') | |
SHA=${{ github.sha }} | |
VERSION="$VER+${SHA:0:7}" | |
echo "Version $VERSION" | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Setup JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: gradle | |
- name: Decode Keystore File | |
run: echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > $GITHUB_WORKSPACE/key.keystore | |
- name: List files in the directory | |
run: ls -l | |
- name: Make gradlew executable | |
run: chmod +x ./gradlew | |
- name: Build with Gradle | |
run: ./gradlew assembleGoogleAlpha -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/key.keystore -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dantotsu | |
retention-days: 5 | |
compression-level: 9 | |
path: "app/build/outputs/apk/google/alpha/app-google-alpha.apk" | |
- name: Upload APK to Discord and Telegram | |
if: ${{ github.repository == 'rebelonion/Dantotsu' }} | |
shell: bash | |
run: | | |
#Discord | |
commit_messages=$(echo "$COMMIT_LOG" | sed 's/%0A/\n/g; s/^/\n/') | |
# Truncate commit messages if they are too long | |
max_length=1900 # Adjust this value as needed | |
if [ ${#commit_messages} -gt $max_length ]; then | |
commit_messages="${commit_messages:0:$max_length}... (truncated)" | |
fi | |
contentbody=$( jq -nc --arg msg "Alpha-Build: <@&1225347048321191996> **$VERSION**:" --arg commits "$commit_messages" '{"content": ($msg + "\n" + $commits)}' ) | |
curl -F "payload_json=${contentbody}" -F "dantotsu_debug=@app/build/outputs/apk/google/alpha/app-google-alpha.apk" ${{ secrets.DISCORD_WEBHOOK }} | |
#Telegram | |
curl -F "chat_id=${{ secrets.TELEGRAM_CHANNEL_ID }}" \ | |
-F "document=@app/build/outputs/apk/google/alpha/app-google-alpha.apk" \ | |
-F "caption=Alpha-Build: ${VERSION}: ${commit_messages}" \ | |
https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendDocument | |
env: | |
COMMIT_LOG: ${{ env.COMMIT_LOG }} | |
VERSION: ${{ env.VERSION }} | |
- name: Upload Current SHA as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: last-sha | |
path: last_sha.txt | |
- name: Upload Commit log as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: commit-log | |
path: commit_log.txt |