-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (122 loc) · 4.1 KB
/
gradle.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
name: CI
on:
push:
paths-ignore:
- README.md
branches:
- '*'
pull_request:
paths-ignore:
- README.md
branches:
- '*'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'adopt'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build and Test
run: ./gradlew test
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: ${{ github.ref_name }}-test-results
path: app/build/reports/tests/
if-no-files-found: warn
retention-days: 90
compression-level: 6
overwrite: true
- name: Code Lint
run: ./gradlew lint
- name: Upload Lint Results
uses: actions/upload-artifact@v4
with:
name: ${{ github.ref_name }}-lint-results
path: app/build/reports/lint-results-debug.html
if-no-files-found: warn
retention-days: 90
compression-level: 6
overwrite: true
- name: Build APK
run: ./gradlew assembleDebug
- name: Upload Debug APK
uses: actions/upload-artifact@v4
with:
name: ${{ github.ref_name }}-debug.apk
path: app/build/outputs/apk/debug/app-debug.apk
if-no-files-found: warn
retention-days: 90
compression-level: 6
overwrite: true
- name: Display Job Summary
run: |
echo "### :page_facing_up: **Job Summary**" >> $GITHUB_STEP_SUMMARY
echo " - :shipit: **Branch:** ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo " - :calendar: **Event:** ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo " - :hammer: **Build Status:** ${{ job.status }}" >> $GITHUB_STEP_SUMMARY
echo " - :hash: **Commit Hash:** ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'adopt'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build Release APK
run: ./gradlew assembleRelease
- name: Sign Release APK
uses: r0adkll/sign-android-release@v1
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:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Generate release tag
id: tag
run: |
echo "release_tag=PowerDroid_$(date +"%Y.%m.%d_%H-%M")" >> $GITHUB_OUTPUT
- name: Upload Signed Release Apk
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: app/build/outputs/apk/release/app-release-unsigned-signed.apk
asset_name: PowerDroid.apk
tag: ${{ steps.tag.outputs.release_tag }}
# overwrite: true
# body: "This is my release text"
# - name: Upload Signed Release Apk
# uses: softprops/action-gh-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ steps.tag.outputs.release_tag }}
# files: |
# app/build/outputs/apk/release/app-release-unsigned-signed.apk