mirror of
https://github.com/MustardChef/WSABuilds.git
synced 2024-11-14 15:45:06 +01:00
183 lines
8.2 KiB
YAML
183 lines
8.2 KiB
YAML
name: Build MagiskOnWSA
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
arch:
|
|
description: "WSA Architecture"
|
|
required: true
|
|
default: "x86_64"
|
|
type: choice
|
|
options:
|
|
- x86_64
|
|
- AArch64
|
|
release_type:
|
|
description: "WSA Release Channel"
|
|
required: true
|
|
default: "Dev Channel"
|
|
type: choice
|
|
options:
|
|
- General Availability Channel
|
|
- Release Preview Channel
|
|
- Beta Channel
|
|
- Dev Channel
|
|
magisk_ver:
|
|
description: "Magisk Version"
|
|
required: true
|
|
default: "Stable"
|
|
type: choice
|
|
options:
|
|
- None
|
|
- Stable
|
|
- Beta
|
|
- Canary
|
|
- Debug
|
|
- Custom (URL)
|
|
magisk_url:
|
|
description: "Custom Magisk APK/ZIP URL"
|
|
required: false
|
|
type: string
|
|
gapps_var:
|
|
description: "GApps Variant"
|
|
required: true
|
|
default: "Full"
|
|
type: choice
|
|
options:
|
|
- None
|
|
- Pico
|
|
- Full
|
|
- MindTheGapps (URL)
|
|
mindthegapps_url:
|
|
description: "MindTheGapps ZIP URL"
|
|
required: false
|
|
type: string
|
|
remove_amazon:
|
|
description: "Remove Amazon AppStore"
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
offline_mode:
|
|
description: "Offline Mode"
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Install Dependencies
|
|
working-directory: ./scripts
|
|
run: |
|
|
sudo apt update && sudo apt -y install setools lzip wine winetricks patchelf e2fsprogs python3-pip aria2
|
|
python3 -m pip install requests
|
|
cp -r ../wine/.cache/* ~/.cache
|
|
winetricks msxml6
|
|
- name: Build MagiskOnWSA
|
|
working-directory: ./scripts
|
|
run: |
|
|
DOWNLOAD_DIR=../download
|
|
DOWNLOAD_CONF_NAME=download.list
|
|
|
|
declare -A opts=( ["ARCH,x86_64"]="x64" ["ARCH,AArch64"]="arm64" ["RELEASE_TYPE,General Availability Channel"]="retail" ["RELEASE_TYPE,Release Preview Channel"]="RP" ["RELEASE_TYPE,Beta Channel"]="WIS" ["RELEASE_TYPE,Dev Channel"]="WIF" ["MAGISK_VER,Stable"]="stable" ["MAGISK_VER,Beta"]="beta" ["MAGISK_VER,Canary"]="canary" ["MAGISK_VER,Debug"]="debug" ["GAPPS_VAR,None"]="none" ["GAPPS_VAR,Pico"]="pico" ["GAPPS_VAR,Full"]="full" ["GAPPS_VAR,MindTheGapps (URL)"]="MindTheGapps" ["REMOVE_AMAZON,true"]="--remove-amazon" ["REMOVE_AMAZON,false"]="" ["OFFLINE_MODE,true"]="--offline" ["OFFLINE_MODE,false"]="" )
|
|
|
|
ARCH="${opts[ARCH,${{ inputs.arch }}]}"
|
|
|
|
RELEASE_TYPE="${opts[RELEASE_TYPE,${{ inputs.release_type }}]}"
|
|
|
|
if [ "${{inputs.magisk_ver }}" != "None" ]; then
|
|
ROOT_SOL="magisk"
|
|
if [ "${{ inputs.magisk_ver }}" != "Custom (URL)" ]; then
|
|
MAGISK_VER="${opts[MAGISK_VER,${{ inputs.magisk_ver }}]}"
|
|
else
|
|
echo "${{ inputs.magisk_url }}" > "$DOWNLOAD_DIR"/"$DOWNLOAD_CONF_NAME"
|
|
|
|
if ! aria2c --no-conf --log-level=info --log="$DOWNLOAD_DIR/aria2_custom_magisk_download.log" -R --allow-overwrite -d"$DOWNLOAD_DIR" -o magisk-debug.zip -i"$DOWNLOAD_DIR"/"$DOWNLOAD_CONF_NAME"; then
|
|
echo "Custom Magisk download error!"
|
|
exit 1
|
|
fi
|
|
CUSTOM_MAGISK="1"
|
|
MAGISK_VER="${opts[MAGISK_VER,Debug]}"
|
|
fi
|
|
else
|
|
ROOT_SOL="none"
|
|
MAGISK_VER="${opts[MAGISK_VER,Stable]}"
|
|
fi
|
|
|
|
if [ "$ARCH" != "arm64" ]; then
|
|
GAPPS_VAR="${opts[GAPPS_VAR,${{ inputs.gapps_var }}]}"
|
|
else
|
|
# TODO: keep it 11.0 since official opengapps does not support 12+ yet
|
|
# As soon as opengapps is available for 12+, we need to get the sdk/release from build.prop and download the corresponding version
|
|
if [ "${{ inputs.gapps_var }}" == "Full" ]; then
|
|
GAPPS_VAR="pico"
|
|
else
|
|
GAPPS_VAR="${opts[GAPPS_VAR,${{ inputs.gapps_var }}]}"
|
|
fi
|
|
fi
|
|
|
|
if [ "${{inputs.gapps_var }}" != "None" ]; then
|
|
if [ "${{ inputs.gapps_var }}" != "MindTheGapps (URL)" ]; then
|
|
GAPPS_BRAND="OpenGApps"
|
|
else
|
|
echo "${{ inputs.mindthegapps_url }}" > -i"$DOWNLOAD_DIR"/"$DOWNLOAD_CONF_NAME"
|
|
|
|
if ! aria2c --no-conf --log-level=info --log="$DOWNLOAD_DIR/aria2_mindthegapps_download.log" -R --allow-overwrite -d"$DOWNLOAD_DIR" -o MindTheGapps-"$ARCH".zip -i"$DOWNLOAD_DIR"/"$DOWNLOAD_CONF_NAME"; then
|
|
echo "MindTheGapps download error!"
|
|
exit 1
|
|
fi
|
|
GAPPS_BRAND="MindTheGapps"
|
|
fi
|
|
fi
|
|
|
|
REMOVE_AMAZON="${opts[REMOVE_AMAZON,${{ inputs.remove_amazon }}]}"
|
|
|
|
OFFLINE_MODE="${opts[OFFLINE_MODE,${{ inputs.offline_mode }}]}"
|
|
|
|
COMMAND_LINE=(--arch "$ARCH" --release-type "$RELEASE_TYPE" --magisk-ver "$MAGISK_VER" --gapps-brand "$GAPPS_BRAND" --gapps-variant "$GAPPS_VAR" "$REMOVE_AMAZON" --root-sol "$ROOT_SOL" "$COMPRESS_OUTPUT" "$OFFLINE" "$DEBUG" "$CUSTOM_MAGISK")
|
|
echo "COMMAND_LINE=${COMMAND_LINE[*]}"
|
|
|
|
chmod +x ./build.sh
|
|
./build.sh "${COMMAND_LINE[@]}"
|
|
- name: Generate Release Asset Name
|
|
working-directory: ./output
|
|
run: |
|
|
declare -A magisk_vers=( ["Stable"]="stable" ["Beta"]="beta" ["Canary"]="canary" ["Debug"]="debug" )
|
|
|
|
if [[ "${{ inputs.magisk_ver }}" == "None" ]]; then
|
|
magiskVer=""
|
|
elif [[ "${{ inputs.magisk_ver }}" == "Custom (URL)" ]]; then
|
|
magiskVer="_Magisk-Custom"
|
|
else
|
|
magiskVer="_Magisk-$(curl -s https://raw.githubusercontent.com/topjohnwu/magisk-files/master/${magisk_vers[${{ inputs.magisk_ver }}]}.json | jq -r ".magisk.version")"
|
|
fi
|
|
|
|
if [[ "${{ inputs.gapps_var }}" == "None" ]]; then
|
|
gappsVar=""
|
|
elif [[ "${{ inputs.gapps_var }}" == "MindTheGapps (URL)" ]]; then
|
|
gappsVar="_MindTheGapps"
|
|
else
|
|
gappsVar="_${{ inputs.gapps_var }}-OpenGApps"
|
|
fi
|
|
|
|
if [[ "${{ inputs.remove_amazon }}" == "true" ]]; then
|
|
amazon=""
|
|
else
|
|
amazon="_Amazon-AppStore"
|
|
fi
|
|
echo "release_asset_name=WSA_${{ env.WSA_VER }}$magiskVer$gappsVar${amazon}_${{ inputs.arch }}" >> $GITHUB_ENV
|
|
- name: Compress Asset
|
|
working-directory: ./output
|
|
run: |
|
|
find ./ -maxdepth 1 -type d -not -path './' -exec mv "{}" WSA \;
|
|
zip -qrv "${{ env.release_asset_name }}.zip" ./*
|
|
- name: Upload Asset
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: ./output/${{ env.release_asset_name }}.zip
|
|
tag_name: WSA
|