Skip to content

Commit 4e4b790

Browse files
committed
Add automatic release
1 parent e902d01 commit 4e4b790

File tree

3 files changed

+144
-0
lines changed

3 files changed

+144
-0
lines changed

.github/workflows/build.yml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
9+
test:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
14+
- uses: actions/checkout@v2
15+
16+
- uses: actions/setup-java@v1
17+
with:
18+
java-version: 1.8
19+
20+
- run: |
21+
chmod +x ./gradlew
22+
./gradlew test
23+
24+
25+
build:
26+
runs-on: ubuntu-latest
27+
28+
steps:
29+
30+
- uses: actions/checkout@v2
31+
32+
- uses: actions/setup-java@v1
33+
with:
34+
java-version: 1.8
35+
36+
- run: |
37+
chmod +x ./gradlew
38+
./gradlew assembleRelease
39+
40+
- uses: r0adkll/sign-android-release@v1
41+
with:
42+
releaseDirectory: app/build/outputs/apk/release
43+
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
44+
alias: ${{ secrets.ALIAS }}
45+
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
46+
keyPassword: ${{ secrets.KEY_PASSWORD }}
47+
48+
- uses: actions/upload-artifact@v2
49+
with:
50+
name: built-app
51+
path: ${{ env.SIGNED_RELEASE_FILE }}
52+
53+
54+
draft:
55+
runs-on: ubuntu-latest
56+
needs: [test, build]
57+
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
58+
steps:
59+
60+
- uses: actions/checkout@v2
61+
62+
- env:
63+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+
run: |
65+
curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases \
66+
| tr '\r\n' ' ' \
67+
| jq '.[] | select(.draft == true) | .id' \
68+
| xargs -I '{}' \
69+
curl -X DELETE -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/$GITHUB_REPOSITORY/releases/{}
70+
71+
- run: |
72+
DIR_TIMESTAMP=$(git log -1 --pretty="format:%ct" ./changelogs/)
73+
for d in ./changelogs/*/; do
74+
if [ $(git log -1 --pretty="format:%ct" "$d") = $DIR_TIMESTAMP ]; then
75+
echo "CHANGELOG_DIR=$d" >> $GITHUB_ENV
76+
echo "CHANGELOG_VERSION=$(basename -as / "$d")" >> $GITHUB_ENV
77+
fi
78+
done
79+
80+
- uses: actions/create-release@v1
81+
id: draft
82+
env:
83+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84+
with:
85+
tag_name: ${{ env.CHANGELOG_VERSION }}
86+
release_name: ${{ env.CHANGELOG_VERSION }}
87+
body_path: ${{ env.CHANGELOG_DIR }}whatsnew-en-US
88+
draft: true
89+
90+
- uses: actions/download-artifact@v1
91+
with:
92+
name: built-app
93+
94+
- run: |
95+
cd ./built-app
96+
echo "ARTIFACT_FILE=$(find . -type f -name "*.apk" | head -1 | gawk -F/ '{print $NF}')" >> $GITHUB_ENV
97+
98+
- uses: actions/upload-release-asset@v1
99+
env:
100+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101+
with:
102+
upload_url: ${{ steps.draft.outputs.upload_url }}
103+
asset_path: ./built-app/${{ env.ARTIFACT_FILE }}
104+
asset_name: itc-lms-unofficial-${{ env.CHANGELOG_VERSION }}.apk
105+
asset_content_type: application/vnd.android.package-archive

.github/workflows/release.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [released]
6+
7+
jobs:
8+
9+
release:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
14+
- uses: actions/checkout@v2
15+
16+
- uses: actions/setup-java@v1
17+
with:
18+
java-version: 1.8
19+
20+
- run: |
21+
chmod +x ./gradlew
22+
./gradlew bundleRelease
23+
24+
- uses: r0adkll/sign-android-release@v1
25+
with:
26+
releaseDirectory: app/build/outputs/bundle/release
27+
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
28+
alias: ${{ secrets.ALIAS }}
29+
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
30+
keyPassword: ${{ secrets.KEY_PASSWORD }}
31+
32+
- uses: r0adkll/upload-google-play@v1
33+
with:
34+
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
35+
packageName: net.accelf.devoptshide
36+
releaseFile: ${{ env.SIGNED_RELEASE_FILE }}
37+
track: production
38+
whatsNewDirectory: changelogs/${{ github.event.release.tag_name }}

changelogs/v1.0/whatsnew-en-US

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Initial release

0 commit comments

Comments
 (0)