150 lines
4.6 KiB
YAML
150 lines
4.6 KiB
YAML
name: PitchBlack Recovery Project Builder
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
MANIFEST_BRANCH:
|
|
description: 'PBRP Manifest Branch'
|
|
required: true
|
|
default: 'android-12.1'
|
|
type: choice
|
|
options:
|
|
- android-14.0
|
|
- android-12.1
|
|
- android-11.0
|
|
- android-10.0
|
|
- android-9.0
|
|
- android-8.1
|
|
- android-7.1
|
|
- android-6.0
|
|
DEVICE_TREE:
|
|
description: 'Custom Recovery Tree URL'
|
|
required: true
|
|
default: 'https://github.com/enter_username/repo_name'
|
|
DEVICE_TREE_BRANCH:
|
|
description: 'Device Tree Branch (optional)'
|
|
required: false
|
|
default: ''
|
|
BUILD_TARGET:
|
|
description: 'Build Target (use "pbrp" for Android 11+)'
|
|
required: true
|
|
default: 'recovery'
|
|
type: choice
|
|
options:
|
|
- pbrp
|
|
- recovery
|
|
- boot
|
|
- vendorboot
|
|
LDCHECK_PATH:
|
|
description: 'Path for dependency check (optional)'
|
|
required: false
|
|
default: 'recovery/root/system/bin/qseecomd'
|
|
|
|
jobs:
|
|
build:
|
|
name: Build PBRP by ${{ github.actor }}
|
|
runs-on: ubuntu-latest
|
|
if: github.event.repository.owner.id == github.event.sender.id
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Initial Setup
|
|
run: |
|
|
echo "BUILD_START=$(date +%s)" >> $GITHUB_ENV
|
|
echo "BUILD_DATE=$(TZ=UTC date +%Y%m%d)" >> $GITHUB_ENV
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Clean-up
|
|
uses: rokibhasansagar/slimhub_actions@main
|
|
|
|
- name: Swap Space # Easier
|
|
uses: pierotofy/set-swap-space@master
|
|
with:
|
|
swap-size-gb: 24
|
|
|
|
- name: Build PitchBlack Recovery
|
|
uses: mlm-games/pitchblack-pbrp-builder-action@main
|
|
id: build
|
|
with:
|
|
MANIFEST_BRANCH: ${{ inputs.MANIFEST_BRANCH }}
|
|
DEVICE_TREE: ${{ inputs.DEVICE_TREE }}
|
|
DEVICE_TREE_BRANCH: ${{ inputs.DEVICE_TREE_BRANCH }}
|
|
BUILD_TARGET: ${{ inputs.BUILD_TARGET }}
|
|
|
|
- name: Upload Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
if: inputs.upload_releases == false || github.event_name != 'workflow_dispatch'
|
|
with:
|
|
name: TWRP-Recovery-${{ env.DEVICE_NAME }}-${{ env.COMMIT_SHORT }}
|
|
path: |
|
|
${{ env.OUTPUT_DIR }}/*.img
|
|
${{ env.OUTPUT_DIR }}/*.tar
|
|
${{ env.OUTPUT_DIR }}/*vbmeta*
|
|
${{ env.OUTPUT_DIR }}/*.cpio
|
|
|
|
- name: Upload to Release
|
|
if: success()
|
|
uses: softprops/action-gh-release@master
|
|
with:
|
|
files: |
|
|
${{ env.OUTPUT_DIR }}/*.img
|
|
${{ env.OUTPUT_DIR }}/PBRP*.zip
|
|
name: PBRP for ${{ inputs.DEVICE_NAME }} - ${{ env.BUILD_DATE }}
|
|
tag_name: ${{ github.run_id }}
|
|
body: |
|
|
## Build Information
|
|
- **Build Date:** ${{ env.BUILD_DATE }}
|
|
- **Branch:** ${{ inputs.MANIFEST_BRANCH }}
|
|
- **Device:** ${{ inputs.DEVICE_NAME }}
|
|
- **Build Type:** ${{ inputs.BUILD_TARGET }}
|
|
|
|
## Source Information
|
|
- **Device Tree:** [${{ inputs.DEVICE_TREE }}](${{ inputs.DEVICE_TREE }}/tree/${{ inputs.DEVICE_TREE_BRANCH }})
|
|
- **Branch:** ${{ inputs.DEVICE_TREE_BRANCH }}
|
|
- **Commit:** [${{ env.COMMIT_ID }}](${{ inputs.DEVICE_TREE }}/commit/${{ env.COMMIT_ID }})
|
|
|
|
## Build Status
|
|
- Recovery Image MD5: `${{ env.MD5_IMG }}`
|
|
- ZIP Package MD5: `${{ env.MD5_ZIP }}`
|
|
|
|
> Note: This is an automated build. Please test thoroughly before using.
|
|
prerelease: true
|
|
draft: false
|
|
|
|
- name: Run LDCHECK
|
|
uses: mlm-games/ldcheck-action@main
|
|
with:
|
|
OUTPUT_DIR: ${{ env.OUTPUT_DIR }}
|
|
LDCHECKPATH: ${{ inputs.LDCHECK_PATH }}
|
|
continue-on-error: true
|
|
|
|
- name: Calculate Build Time
|
|
if: always()
|
|
run: |
|
|
BUILD_END=$(date +%s)
|
|
BUILD_DURATION=$((BUILD_END - BUILD_START))
|
|
|
|
hours=$((BUILD_DURATION / 3600))
|
|
minutes=$(((BUILD_DURATION % 3600) / 60))
|
|
seconds=$((BUILD_DURATION % 60))
|
|
|
|
echo "Build completed in ${hours}h ${minutes}m ${seconds}s"
|
|
|
|
# Save build statistics
|
|
echo "BUILD_DURATION=${BUILD_DURATION}" >> $GITHUB_ENV
|
|
echo "BUILD_HOURS=${hours}" >> $GITHUB_ENV
|
|
echo "BUILD_MINUTES=${minutes}" >> $GITHUB_ENV
|
|
echo "BUILD_SECONDS=${seconds}" >> $GITHUB_ENV
|
|
|
|
- name: Cleanup Workspace
|
|
if: always()
|
|
run: |
|
|
cd ${{ github.workspace }}
|
|
rm -rf android-recovery
|
|
df -h
|