mirror of
https://github.com/Nezumi-2711/revanced-apk-build.git
synced 2026-09-22 13:38:52 +00:00
Initial commit
This commit is contained in:
Executable
+147
@@ -0,0 +1,147 @@
|
||||
name: Build Modules
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
from_ci:
|
||||
type: boolean
|
||||
required: false
|
||||
default: true
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
run:
|
||||
permissions: write-all
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: "zulu"
|
||||
java-version: "17"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
|
||||
- name: Update config
|
||||
if: ${{ inputs.from_ci }}
|
||||
run: |
|
||||
if git checkout origin/update build.md; then
|
||||
UPDATE_CFG=$(./build.sh config.toml --config-update)
|
||||
if [ "$UPDATE_CFG" ]; then
|
||||
echo "$UPDATE_CFG" > config.json
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Get next version code
|
||||
id: next_ver_code
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
TAG=$(gh release list -L 1 | awk -F '\t' '{print $3}')
|
||||
if [ -z "$TAG" ]; then TAG=0; fi
|
||||
echo "NEXT_VER_CODE=$((TAG + 1))" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build modules/APKs
|
||||
run: if [ -f "config.json" ]; then ./build.sh config.json; else ./build.sh config.toml; fi
|
||||
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
|
||||
|
||||
- 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: ReVanced
|
||||
tag: ${{ steps.next_ver_code.outputs.NEXT_VER_CODE }}
|
||||
file_glob: true
|
||||
overwrite: true
|
||||
|
||||
- name: Update changelog and Magisk update json
|
||||
id: update_config
|
||||
run: |
|
||||
git checkout -f update || git switch --discard-changes --orphan update
|
||||
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"; exit 1; }
|
||||
for OUTPUT in *magisk*.zip; do
|
||||
[ "$OUTPUT" = "*magisk*.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@v5
|
||||
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"; exit 1; }
|
||||
|
||||
TG_CHAT="@rvc_magisk"
|
||||
NL=$'\n'
|
||||
APKS=""
|
||||
MODULES=""
|
||||
for OUTPUT in *; 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; s/^- /↪ /g; /^==/d;' ../build.md)"
|
||||
MSG="*New build!*
|
||||
|
||||
${BODY}
|
||||
|
||||
*▼ Download Links:*
|
||||
Modules:
|
||||
${MODULES}
|
||||
|
||||
APKs:
|
||||
${APKS}
|
||||
"
|
||||
echo "'$MSG'"
|
||||
MSG=${MSG:0:9450}
|
||||
POST="https://api.telegram.org/bot${TG_TOKEN}/sendMessage"
|
||||
curl -X POST --data-urlencode "parse_mode=Markdown" --data-urlencode "disable_web_page_preview=true" --data-urlencode "text=${MSG}" --data-urlencode "chat_id=${TG_CHAT}" "$POST"
|
||||
Reference in New Issue
Block a user