mirror of
https://github.com/j-hc/revanced-magisk-module.git
synced 2025-04-29 14:14:38 +02:00
144 lines
4.7 KiB
YAML
Executable File
144 lines
4.7 KiB
YAML
Executable File
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; 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
|