Skip to content

scripts: utils: fix vars #273

scripts: utils: fix vars

scripts: utils: fix vars #273

Workflow file for this run

name: Release
on:
push:
paths:
- '.github/workflows/release.yml'
- 'module/**'
- 'update.json'
- 'overlay/**'
- 'tools/**'
workflow_dispatch:
inputs:
force_release:
description: 'Force change release file?'
required: true
type: boolean
default: false
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
with:
fetch-depth: 2
- name: Set variables
id: setup
run: |
MODULE_NAME="HyperUnlocked"
MODULE_DESC="A Magisk/KernelSU/APatch module to unlock high-end features on all Xiaomi devices."
CHANGELOG_FILE="$(pwd)/CHANGELOG.md"
MODULE_PATH=$(pwd)/module/
CURRENT_VERSION_CODE="$(jq -r .versionCode update.json)" >> $GITHUB_ENV
echo "CURRENT_VERSION_CODE=$(jq -r .versionCode update.json)" >> $GITHUB_ENV
PREVIOUS_VERSION_CODE="$(jq -r .versionCode <(git show HEAD~1:update.json))"
COMMIT_ID="$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "COMMIT_ID=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "VERSION=$(jq -r .version update.json)" >> $GITHUB_ENV
echo "MODULE_PATH=${MODULE_PATH}" >> $GITHUB_ENV
CHANGELOG_RAW=$(git diff HEAD^ HEAD -- ${CHANGELOG_FILE} | grep '^+[^+]' | sed 's/^+//')
{
echo "CHANGELOG<<EOF"
echo -e "## ${MODULE_NAME}\n${MODULE_DESC}\n\n---\n\n# Changelog:\n${CHANGELOG_RAW}"
echo "EOF"
} >> $GITHUB_ENV
if [ "$CURRENT_VERSION_CODE" -gt "$PREVIOUS_VERSION_CODE" ]; then
echo "version_changed=true" >> $GITHUB_ENV
echo "ZIP_NAME=$MODULE_NAME" >> $GITHUB_ENV
elif [ "${{ inputs.force_release }}" == "true" ]; then
echo "ZIP_NAME=$MODULE_NAME" >> $GITHUB_ENV
else
echo "version_changed=false" >> $GITHUB_ENV
echo "ZIP_NAME=${MODULE_NAME}_${CURRENT_VERSION_CODE}-${COMMIT_ID}" >> $GITHUB_ENV
fi
cp ./LICENSE ${MODULE_PATH}
cp ./LICENSE_NOTICE.txt ${MODULE_PATH}
- name: Build Overlays
run: |
cd ./overlay
export LD_LIBRARY_PATH=../tools:$LD_LIBRARY_PATH
export PATH=../tools:$PATH
for folder in ./*; do
[ -d "$folder" ] || continue
FOLDER_NAME=$(basename "$folder")
aapt package -f -F "HyperUnlocked-${FOLDER_NAME}-unalign.apk" -M "${folder}/AndroidManifest.xml" -S "${folder}/res" -I ../tools/android.jar
zipalign -f -p -v 4 "HyperUnlocked-${FOLDER_NAME}-unalign.apk" "HyperUnlocked-${FOLDER_NAME}-unsigned.apk"
java -jar ../tools/signapk.jar ../tools/keys/platform.x509.pem ../tools/keys/platform.pk8 "HyperUnlocked-${FOLDER_NAME}-unsigned.apk" "HyperUnlocked-${FOLDER_NAME}.apk"
done
rm -f HyperUnlocked-*-unalign.apk HyperUnlocked-*-unsigned.apk
mkdir -p ${{ env.MODULE_PATH }}/system/product/overlay
mv HyperUnlocked-*.apk ${{ env.MODULE_PATH }}/system/product/overlay
cd ..
- name: Setting up test release
run: |
cp -r ${{ env.MODULE_PATH }} ./debug_module/
sed -i "s/^\(version=\)\(.*\)/\1\2_${{ env.CURRENT_VERSION_CODE }}-${{ env.COMMIT_ID }}/" ./debug_module/module.prop
- name: Upload artifact
uses: actions/upload-artifact@v7.0.1
with:
name: ${{ env.ZIP_NAME }}
path: debug_module/**
compression-level: 9
- name: Compressing files
if: ${{ env.version_changed == 'true' || inputs.force_release }}
run: |
echo "Compressing files..."
cd ${{ env.MODULE_PATH }}
zip -r -9 ${{ env.ZIP_NAME }}.zip *
echo "Created zip file: ${{ env.ZIP_NAME }}.zip"
mv *.zip ../
- name: Create release
if: ${{ env.version_changed == 'true' }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: "${{ env.ZIP_NAME }}.zip"
tag_name: "${{ env.VERSION }}"
name: "Release ${{ env.VERSION }}"
body: "${{ env.CHANGELOG }}"
draft: false
prerelease: false
- name: Force update release file
if: ${{ inputs.force_release }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: "${{ env.ZIP_NAME }}.zip"
tag_name: "${{ env.VERSION }}"
name: "Release ${{ env.VERSION }}"