-
Notifications
You must be signed in to change notification settings - Fork 86
148 lines (124 loc) · 5.52 KB
/
build_debug.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: Build Debug APK
on:
push:
branches: [ "beta" ]
workflow_dispatch:
jobs:
synchronize-with-crowdin:
name: Upload strings to Crowdin
if: github.repository_owner == 'Mahmud0808'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Upload Strings
uses: crowdin/github-action@v2
with:
upload_translations: false
upload_sources: true
download_translations: false
localization_branch_name: beta-localization
create_pull_request: false
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
build:
name: Build Debug APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: set up JDK 18
uses: actions/setup-java@v4
with:
java-version: '18'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Get application version name
run: echo "VERSION_NAME=$(${{github.workspace}}/gradlew -q printVersionName)" >> $GITHUB_ENV
- name: Bump application version code
uses: chkfung/[email protected]
with:
gradlePath: app/build.gradle.kts
versionCode: ${{github.run_number}}
versionName: "${{ env.VERSION_NAME }} Dev (#${{github.run_number}})"
- name: Write sign info
if: github.repository == 'Mahmud0808/Iconify'
run: |
if [ ! -z "${{ secrets.KEYSTORE }}" ]; then
echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> keystore.properties
echo keyAlias='${{ secrets.KEY_ALIAS }}' >> keystore.properties
echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> keystore.properties
echo storeFile='${{ github.workspace }}/key.jks' >> keystore.properties
echo ${{ secrets.KEYSTORE }} | base64 --decode > ${{ github.workspace }}/key.jks
fi
- name: Build with Gradle
run: |
./gradlew assembleFossDebug -PsplitApks
./gradlew assembleStandardDebug
- name: Upload Standard Build Artifact
uses: actions/upload-artifact@v4
with:
name: "Iconify Standard v${{ env.VERSION_NAME }} Dev (#${{github.run_number}})"
path: app/build/outputs/apk/standard/debug/*.apk
if-no-files-found: error
- name: Upload FOSS Build Artifacts
uses: actions/upload-artifact@v4
with:
name: "Iconify (FOSS) v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}) - arm64-v8a"
path: app/build/outputs/apk/foss/debug/*-arm64-v8a-*.apk
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: "Iconify (FOSS) v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}) - armeabi-v7a"
path: app/build/outputs/apk/foss/debug/*-armeabi-v7a-*.apk
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: "Iconify (FOSS) v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}) - x86"
path: app/build/outputs/apk/foss/debug/*-x86-*.apk
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: "Iconify (FOSS) v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}) - x86_64"
path: app/build/outputs/apk/foss/debug/*-x86_64-*.apk
if-no-files-found: error
- name: Get Commit Messages
id: get_commit_message
run: |
COMMIT_MESSAGE_HEADER=""
COMMIT_MESSAGE_HEADER=$(git log -1 --pretty=%B | head -n 1)
if [[ "$COMMIT_MESSAGE_HEADER" == *".md"* ]]; then
echo "Skipping build upload due to '.md' commit message."
echo "COMMIT_MESSAGE_HEADER=Skipping new build" >> $GITHUB_ENV
exit 0
fi
if [[ "$COMMIT_MESSAGE_HEADER" =~ ^Merge\ remote-tracking\ branch ]]; then
echo "COMMIT_MESSAGE_HEADER=Synced with the latest changes" >> $GITHUB_ENV
fi
if [[ -z "$COMMIT_MESSAGE_HEADER" ]]; then
echo "No valid changelog found!"
COMMIT_MESSAGE_HEADER="No valid changelog found!"
fi
ESCAPED_MESSAGE=$(echo "$COMMIT_MESSAGE_HEADER" | jq -Rsa . | sed 's/^"\(.*\)"$/\1/' | sed "s/'//g")
echo "COMMIT_MESSAGE_HEADER=${ESCAPED_MESSAGE}" >> $GITHUB_ENV
- name: Clean Previous Release Folder
run: rm -rf releases && mkdir -p releases
- name: Zip Artifact for Sending to Telegram
run: |
cd app/build/outputs/apk/standard/debug/
zip "../../../../../../releases/Iconify v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}).zip" *.apk -r
- name: Telegram File Attachment
if: github.repository == 'Mahmud0808/Iconify' && ${{ env.COMMIT_MESSAGE_HEADER != 'Skipping new build' }}
run: |
set -e
curl -v "https://api.telegram.org/bot${{ secrets.TG_BOT_TOKEN }}/sendMediaGroup" \
-F chat_id=${{ secrets.TG_CHAT_ID }} \
-F message_thread_id=${{ secrets.TG_CHAT_THREAD_ID }} \
-F media='[
{"type":"document", "media":"attach://Standard", "caption":"CHANGELOG: ${{ env.COMMIT_MESSAGE_HEADER }}"}
]' \
-F Standard="@releases/Iconify v${{ env.VERSION_NAME }} Dev (#${{github.run_number}}).zip" \
-F disable_notification=true || exit 1