OrangeFox - Build #38
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 | |
# Credits to: | |
# https://github.com/TeamWin | |
# https://gitlab.com/OrangeFox | |
# https://github.com/azwhikaru for Recovery Builder Template | |
# And all Contributors in every repositories I used | |
on: | |
workflow_dispatch: | |
inputs: | |
MANIFEST_BRANCH: | |
description: 'OrangeFox Manifest Branch' | |
required: true | |
default: '12.1' | |
type: choice | |
options: | |
- 12.1 | |
- 11.0 | |
DEVICE_TREE: | |
description: 'OrangeFox Device Tree' | |
required: true | |
default: 'https://github.com/cd-Crypton/custom_recovery_tree_realme_nashc' | |
DEVICE_TREE_BRANCH: | |
description: 'OrangeFox Device Tree Branch' | |
required: true | |
default: 'android-12.1' | |
DEVICE_PATH: | |
description: 'Specify your Device Path' | |
required: true | |
default: 'device/realme/nashc' | |
DEVICE_NAME: | |
description: 'Specify your Device Codename' | |
required: true | |
default: 'nashc' | |
BUILD_TARGET: | |
description: 'Specify your Build Target' | |
required: true | |
default: 'recovery' | |
type: choice | |
options: | |
- boot | |
- recovery | |
- vendorboot | |
jobs: | |
build: | |
name: Build OFR by ${{ github.actor }} | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Clean-up | |
uses: rokibhasansagar/slimhub_actions@main | |
- name: Swap Space | |
uses: pierotofy/set-swap-space@master | |
with: | |
swap-size-gb: 12 | |
- name: Build Environment | |
run: | | |
sudo apt install aria2 -y | |
git clone https://gitlab.com/OrangeFox/misc/scripts.git -b master | |
cd scripts | |
sudo bash setup/android_build_env.sh | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
max-size: "10G" | |
- 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 "${{ github.actor }}" | |
git config --global user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" | |
git clone https://gitlab.com/OrangeFox/sync.git -b master | |
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: Building OrangeFox | |
run: | | |
cd ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
set +e | |
export USE_CCACHE=1 | |
export CCACHE_EXEC=/usr/bin/ccache | |
# Hack: Disable Soong sandboxing to avoid conflict with ccache | |
sed -i 's/return sandboxConfig\.working/return false/g' build/soong/ui/build/sandbox_linux.go | |
source build/envsetup.sh | |
export ALLOW_MISSING_DEPENDENCIES=true | |
set -e | |
lunch twrp_${{ github.event.inputs.DEVICE_NAME }}-eng && make clean && mka adbd ${{ github.event.inputs.BUILD_TARGET }}image | |
- name: Set Release Properties | |
run: | | |
echo "BUILD_DATE=$(TZ=Asia/Manila date +%Y%m%d)" >> $GITHUB_ENV | |
cd ${GITHUB_WORKSPACE}/OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }} | |
- name: Upload to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/OrangeFox*.img | |
OrangeFox/fox_${{ github.event.inputs.MANIFEST_BRANCH }}/out/target/product/${{ github.event.inputs.DEVICE_NAME }}/OrangeFox*.zip | |
name: OrangeFox Recovery for ${{ github.event.inputs.DEVICE_NAME }} // ${{ env.BUILD_DATE }} | |
tag_name: ${{ github.run_id }} | |
body: | | |
## OrangeFox Recovery Build - Unofficial | |
Build: fox_${{ 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. |