OrangeFox - Build #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: OrangeFox - Build | |
on: | |
workflow_dispatch: | |
inputs: | |
MANIFEST_BRANCH: | |
description: 'OrangeFox Branch' | |
required: true | |
default: '12.1' | |
type: choice | |
options: | |
- 12.1 | |
- 11.0 | |
DEVICE_TREE: | |
description: 'Custom Recovery Tree' | |
required: true | |
default: 'https://github.com/kinguser981/cap_sprout_orangefox' | |
DEVICE_TREE_BRANCH: | |
description: 'Custom Recovery Tree Branch' | |
required: true | |
default: 'OrangeFox-12.1' | |
DEVICE_PATH: | |
description: 'Specify your device path.' | |
required: true | |
default: 'device/nokia/cap_sprout' | |
DEVICE_NAME: | |
description: 'Specify your Device Codename.' | |
required: true | |
default: 'cap_sprout' | |
BUILD_TARGET: | |
description: 'Specify your Build Target' | |
required: true | |
default: 'recovery' | |
type: choice | |
options: | |
- boot | |
- recovery | |
- vendorboot | |
LDCHECK: | |
description: 'Path of blobs to check' | |
required: true | |
default: 'system/bin/qseecomd' | |
RECOVERY_TAR: | |
description: 'Release recovery.tar For Samsung devices' | |
required: false | |
default: false | |
type: boolean | |
RECOVERY_INSTALLER: | |
description: 'Include recovery installer zip' | |
type: boolean | |
required: true | |
default: true | |
jobs: | |
build: | |
name: Build OFRP by ${{ github.actor }} | |
runs-on: ubuntu-latest | |
if: github.event.repository.owner.id == github.event.sender.id | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Display Inputs | |
run: | | |
echo "::group::User Environment Variables" | |
echo "Displaying variables/inputs." | |
echo "Include Recovery Installer: ${{ github.event.inputs.RECOVERY_INSTALLER }}" | |
echo "Release recovery.tar For Samsung devices: ${{ github.event.inputs.RECOVERY_TAR }}" | |
echo "::endgroup::" | |
- name: Clean-up | |
uses: rokibhasansagar/slimhub_actions@main | |
- name: Swap Space | |
uses: pierotofy/set-swap-space@master | |
with: | |
swap-size-gb: 24 | |
- name: Build Environment | |
run: | | |
sudo apt update | |
sudo apt -y upgrade | |
git clone https://gitlab.com/OrangeFox/misc/scripts | |
cd scripts | |
sudo bash setup/android_build_env.sh | |
- name: Set-up Manifest | |
if: github.event.inputs.MANIFEST_BRANCH == '11.0' || github.event.inputs.MANIFEST_BRANCH == '12.1' | |
run: | | |
mkdir -p ${GITHUB_WORKSPACE}/OrangeFox | |
cd ${GITHUB_WORKSPACE}/OrangeFox | |
git config --global user.name "Samuel Kendall" | |
git config --global user.email "kinguser981@gmail.com" | |
git clone https://gitlab.com/OrangeFox/sync.git | |
cd sync | |
./orangefox_sync.sh --branch ${{ github.event.inputs.MANIFEST_BRANCH }} --path ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
- name: Clone Device Tree | |
run: | | |
cd ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
git clone ${{ github.event.inputs.DEVICE_TREE }} -b ${{ github.event.inputs.DEVICE_TREE_BRANCH }} ./${{ github.event.inputs.DEVICE_PATH }} | |
cd ${{ github.event.inputs.DEVICE_PATH }} | |
echo "COMMIT_ID=$(git rev-parse HEAD)" >> $GITHUB_ENV | |
- name: Check Manifest Branch | |
uses: haya14busa/action-cond@v1 | |
id: fox_branch | |
with: | |
cond: ${{ github.event.inputs.MANIFEST_BRANCH == '11.0' || github.event.inputs.MANIFEST_BRANCH == '12.1' }} | |
if_true: lunch twrp_${{ github.event.inputs.DEVICE_NAME }}-eng && make clean && mka adbd ${{ github.event.inputs.BUILD_TARGET }}image | |
if_false: lunch omni_${{ github.event.inputs.DEVICE_NAME }}-eng && make clean && mka ${{ github.event.inputs.BUILD_TARGET }}image | |
- name: Building OrangeFox | |
run: | | |
cd ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
set +e | |
source build/envsetup.sh | |
export ALLOW_MISSING_DEPENDENCIES=true | |
set -e | |
${{ steps.fox_branch.outputs.value }} | |
- name: Set Build Date # Output will be use in Release | |
run: | | |
echo "BUILD_DATE=$(date +%Y%m%d)" >> $GITHUB_ENV | |
- name: Check if Recovery Exist | |
run: | | |
cd ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
if [ -f out/target/product/${{ github.event.inputs.DEVICE_NAME }}/OrangeFox*.img ]; then | |
echo "CHECK_IMG_IS_OK=true" >> $GITHUB_ENV | |
echo "MD5_IMG=$(md5sum out/target/product/${{ github.event.inputs.DEVICE_NAME }}/OrangeFox*.img | cut -d ' ' -f 1)" >> $GITHUB_ENV | |
else | |
echo "Recovery out directory is empty." | |
cd Exit | |
fi | |
- name: Rename the Recovery | |
run: | | |
cd OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/ | |
if [ "${{ github.event.inputs.BUILD_TARGET }}" = "boot" ]; then | |
mv OrangeFox*.img boot.img | |
echo "RECOVERY_TYPE=boot" >> $GITHUB_ENV | |
echo "boot.img file found!" | |
elif [ "${{ github.event.inputs.BUILD_TARGET }}" = "recovery" ]; then | |
mv OrangeFox*.img recovery.img | |
echo "RECOVERY_TYPE=recovery" >> $GITHUB_ENV | |
echo "recovery.img file found!" | |
elif [ "${{ github.event.inputs.BUILD_TARGET }}" = "vendorboot" ]; then | |
mv OrangeFox*.img vendor_boot.img | |
echo "RECOVERY_TYPE=vendor_boot" >> $GITHUB_ENV | |
echo "vendor_boot.img file found!" | |
else | |
echo "No Recovery file found!" | |
fi | |
continue-on-error: true | |
- name: Include Recovery Installer | |
run: | | |
if [ ${{ github.event.inputs.RECOVERY_INSTALLER }} = true ]; then | |
cd OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/ | |
wget https://github.com/kinguser981/recovery-installer/releases/download/11256427880/recovery-installer.zip | |
zip -ur recovery-installer.zip ${{ env.RECOVERY_TYPE }}.img | |
fi | |
continue-on-error: true | |
- name: Recovery to tar for Samsung devices | |
run: | | |
if [ ${{ github.event.inputs.RECOVERY_TAR }} = true ]; then | |
cd OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/ | |
tar -cvf ${{ env.RECOVERY_TYPE }}.tar ${{ env.RECOVERY_TYPE }}.img | |
fi | |
continue-on-error: true | |
- name: Upload to Release | |
if: env.CHECK_IMG_IS_OK == 'true' | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/${{ env.RECOVERY_TYPE }}.img | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/${{ env.RECOVERY_TYPE }}.tar | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/recovery-installer.zip | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/OrangeFox*.zip | |
name: Unofficial OrangeFox for ${{ github.event.inputs.DEVICE_NAME }} // ${{ env.BUILD_DATE }} | |
tag_name: ${{ github.run_id }} | |
body: | | |
Build: ${{ github.event.inputs.MANIFEST_BRANCH }} | |
Device: [Device Tree/Branch](${{ github.event.inputs.DEVICE_TREE }}/tree/${{ github.event.inputs.DEVICE_TREE_BRANCH }}) | |
Commit: Most recent [commit](${{ github.event.inputs.DEVICE_TREE }}/commit/${{ env.COMMIT_ID }}) during building. | |
- name: Release ramdisk-recovery | |
if: env.CHECK_IMG_IS_OK == 'true' | |
uses: softprops/action-gh-release@4634c16e79c963813287e889244c50009e7f0981 | |
with: | |
files: | | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/obj/PACKAGING/vendor_ramdisk_fragments_intermediates/recovery.* | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/ramdisk-recovery.* | |
name: Unofficial OrangeFox for ${{ github.event.inputs.DEVICE_NAME }} // ${{ env.BUILD_DATE }} | |
tag_name: ${{ github.run_id }} | |
body: | | |
Target: ${{ env.RECOVERY_TYPE }}.img | |
Build: ${{ github.event.inputs.MANIFEST_BRANCH }} | |
Device: [Device Tree/Branch](${{ github.event.inputs.DEVICE_TREE }}/tree/${{ github.event.inputs.DEVICE_TREE_BRANCH }}) | |
Commit: Most recent [commit](${{ github.event.inputs.DEVICE_TREE }}/commit/${{ env.COMMIT_ID }}) during building. | |
MD5 (img): ${{ env.MD5_IMG }} | |
- name: Run LDCheck | |
run: | | |
cd tools | |
mv -n libneeds ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/recovery/root/ | |
mv -n ldcheck ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/recovery/root/ | |
cd ../OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/recovery/root/ | |
python3 ldcheck -p system/lib64:vendor/lib64:system/lib:vendor/lib -d ${{ github.event.inputs.LDCHECK }} | |
echo "Done checking missing dependencies. Review, and reconfigure your tree." | |
continue-on-error: true |