forked from j-hc/revanced-magisk-module
-
Notifications
You must be signed in to change notification settings - Fork 0
143 lines (124 loc) · 4.67 KB
/
build.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
name: Build Modules
on: [workflow_call, workflow_dispatch]
jobs:
run:
permissions: write-all
runs-on: ubuntu-latest
steps:
- uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: "17"
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Get next version code
id: next_ver_code
run: |
TAG=$(git tag --sort=creatordate | tail -1)
if [ -z "$TAG" ]; then TAG=0; fi
echo "NEXT_VER_CODE=$((TAG + 1))" >> $GITHUB_OUTPUT
- name: Build modules/APKs
run: ./build.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: $GITHUB_REPOSITORY
NEXT_VER_CODE: ${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}
- name: Get output
id: get_output
run: |
DELIM="$(openssl rand -hex 8)"
echo "BUILD_LOG<<${DELIM}" >> "$GITHUB_OUTPUT"
cat build.md >> "$GITHUB_OUTPUT"
echo "${DELIM}" >> "$GITHUB_OUTPUT"
cp -f build.md build.tmp
cd build
yt_op=$(find . -maxdepth 1 -name "youtube-revanced-magisk-*.zip" -printf '%P')
if [ -z "$yt_op" ]; then
echo "RELEASE_NAME=ReVanced" >> $GITHUB_OUTPUT
else
echo "RELEASE_NAME=$yt_op" >> $GITHUB_OUTPUT
fi
- name: Upload modules to release
uses: svenstaro/upload-release-action@v2
with:
body: ${{ steps.get_output.outputs.BUILD_LOG }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./build/*
release_name: ${{ steps.get_output.outputs.RELEASE_NAME }}
tag: ${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}
file_glob: true
overwrite: false
- name: Switch to update branch
run: git checkout -f update || git switch --discard-changes --orphan update
- name: Update changelog and Magisk update jsons
id: update_config
run: |
cp -f build.tmp build.md
get_update_json() {
echo "{
\"version\": \"$1\",
\"versionCode\": ${{ steps.next_ver_code.outputs.NEXT_VER_CODE}},
\"zipUrl\": \"$2\",
\"changelog\": \"https://raw.githubusercontent.com/$GITHUB_REPOSITORY/update/build.md\"
}"
}
cd build || echo "build folder not found"
for OUTPUT in *revanced*.zip; do
[ "$OUTPUT" = "*revanced*.zip" ] && continue
ZIP_S=$(unzip -p "$OUTPUT" module.prop)
if ! UPDATE_JSON=$(echo "$ZIP_S" | grep updateJson); then
continue
fi
UPDATE_JSON="${UPDATE_JSON##*/}"
VER=$(echo "$ZIP_S" | grep version=)
VER="${VER##*=}"
DLURL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/releases/download/${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}/${OUTPUT}"
get_update_json "$VER" "$DLURL" >"../$UPDATE_JSON"
done
cd ..
find . -name "*-update.json" | grep . || : >dummy-update.json
- uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: update
skip_checkout: true
file_pattern: build.md *-update.json
commit_message: Bump version ${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}
- name: Report to Telegram
env:
TG_TOKEN: ${{ secrets.TG_TOKEN }}
if: env.TG_TOKEN != null
run: |
cd build || echo "build folder not found"
TG_CHAT="@rvc_magisk"
NL=$'\n'
APKS=""
MODULES=""
for OUTPUT in *revanced*; do
DL_URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/releases/download/${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}/${OUTPUT}"
if [[ $OUTPUT = *.apk ]]; then
APKS+="${NL}📦[${OUTPUT}](${DL_URL})"
elif [[ $OUTPUT = *.zip ]]; then
MODULES+="${NL}📦[${OUTPUT}](${DL_URL})"
fi
done
MODULES=${MODULES#"$NL"}
APKS=${APKS#"$NL"}
BODY="$(sed 's/^\* \*\*/↪ \*\*/g; s/^\* `/↪ \*\*/g; s/`/\*/g; s/\*\*/\*/g; s/###//g;' ../build.md)"
MSG="*New build!*
${BODY}
*▼ Download Links:*
Modules:
${MODULES}
APKs:
${APKS}
"
echo "'$MSG'"
POST="https://api.telegram.org/bot${TG_TOKEN}/sendMessage"
curl -X POST --data-urlencode "parse_mode=Markdown" --data-urlencode "text=${MSG}" --data-urlencode "chat_id=${TG_CHAT}" "$POST"
- uses: actions/upload-artifact@v3
with:
name: logs
path: logs