FakeDreamer - clang-r547379 tester #110
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: FakeDreamer - clang-r547379 tester | |
on: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
BUILD_TITLE: | |
description: 'Custom Build Title' | |
required: false | |
KERNEL_TREE: | |
description: 'Kernel Tree' | |
default: 'https://github.com/re-noroi/kernel_sm8250' | |
required: true | |
KERNEL_TREE_BRANCH: | |
description: 'Kernel Tree Branch' | |
required: true | |
default: 'tester' | |
CODENAME: | |
description: 'Phone Codename' | |
default: 'alioth' | |
required: true | |
ANYKERNEL_URL: | |
description: 'AnyKernel Url (leave blank if you dont want AnyKernel)' | |
default: 'https://github.com/re-noroi/anykernel3-stock' | |
required: false | |
ANYKERNEL_BRANCH: | |
description: 'AnyKernel Branch (defaults to codename)' | |
default: 'main' | |
required: false | |
UPLOAD_TO_RELEASE: | |
description: 'Upload to release' | |
type: boolean | |
default: false | |
jobs: | |
build: | |
if: github.event.repository.owner.id == github.event.sender.id | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Display User Inputs | |
run: | | |
echo "::group::User Environment Variables" | |
echo "Custom Build Title: ${{ github.event.inputs.BUILD_TITLE }}" | |
echo "Kernel Tree: ${{ github.event.inputs.KERNEL_TREE }}/tree/${{ github.event.inputs.KERNEL_TREE_BRANCH }}" | |
echo "Codename: ${{ github.event.inputs.CODENAME }}" | |
echo "AnyKernel Url: ${{ github.event.inputs.ANYKERNEL_URL }}/tree/${{ github.event.inputs.ANYKERNEL_BRANCH }}" | |
echo "Second AnyKernel Url: ${{ github.event.inputs.SECOND_ANYKERNEL_URL }}/tree/${{ github.event.inputs.SECOND_ANYKERNEL_BRANCH }}" | |
echo "::endgroup::" | |
- name: Initialize workspace | |
run: | | |
mkdir workspace | |
cd workspace | |
echo "workspace-folder=$(pwd)" >> $GITHUB_OUTPUT | |
echo "start_time=$(date +%s)" >> $GITHUB_OUTPUT | |
echo "build_title=${{ github.event.inputs.BUILD_TITLE || github.event.inputs.CODENAME }}" >> $GITHUB_OUTPUT | |
id: workspace | |
- name: Prepare the build environment | |
run: | | |
sudo apt install flex && sudo apt install libncurses6 | |
wget https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/main/clang-r547379.tar.gz -O clang.tar.gz | |
mkdir clang | |
tar -xf clang.tar.gz -C clang | |
echo "tools-folder=$(pwd)" >> $GITHUB_OUTPUT | |
working-directory: ${{ steps.workspace.outputs.workspace-folder }} | |
id: tools | |
- name: Clone kernel source | |
run: | | |
git clone --depth=1 ${{ github.event.inputs.KERNEL_TREE }} -b ${{ github.event.inputs.KERNEL_TREE_BRANCH }} kernel_tree | |
echo "kernel-folder=$(pwd)/kernel_tree" >> $GITHUB_OUTPUT | |
working-directory: ${{ steps.workspace.outputs.workspace-folder }} | |
id: kernel | |
- name: Building kernel | |
run: | | |
git submodule init && git submodule update | |
bash nextpatch.sh | |
export ARCH=arm64 | |
export SUBARCH=ARM64 | |
export KBUILD_BUILD_USER="renoroi" | |
export KBUILD_BUILD_HOST="dreamstate" | |
make O=out vendor/alioth_defconfig PATH="${{ steps.tools.outputs.tools-folder }}/clang/bin:$PATH" | |
make O=out CC=clang -j$(nproc --all) PATH="${{ steps.tools.outputs.tools-folder }}/clang/bin:$PATH" CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1 | |
echo "elapsed_time=$(echo "$(date +%s)"-"${{ steps.workspace.outputs.start_time }}" | bc)" >> $GITHUB_OUTPUT | |
working-directory: ${{ steps.kernel.outputs.kernel-folder }} | |
id: build | |
- name: AnyKernel3 | |
if: ${{ success() && github.event.inputs.ANYKERNEL_URL != '' }} | |
run: | | |
if [[ -z "${{ github.event.inputs.ANYKERNEL_BRANCH }}" ]]; then | |
anykernel_branch=${{ github.event.inputs.CODENAME }} | |
else | |
anykernel_branch=${{ github.event.inputs.ANYKERNEL_BRANCH }} | |
fi | |
git clone --recursive --depth=1 ${{ github.event.inputs.ANYKERNEL_URL }} -b $anykernel_branch AnyKernel3 | |
if [ -e "Image.gz" ]; then | |
cp -f Image.gz AnyKernel3 | |
fi | |
if [ -e "dtb.img" ]; then | |
mv -f dtb.img dtb | |
cp -f dtb AnyKernel3/alioth-normal-dtb | |
fi | |
# Check if dtbo.img exists, then copy it to AnyKernel3 folder | |
if [ -e "dtbo.img" ]; then | |
cp -f dtbo.img AnyKernel3/alioth-aosp-dtbo.img | |
fi | |
name=FakeDreamer-stk-test-${{ github.event.inputs.CODENAME }}-${{ github.run_id }}.zip | |
cd AnyKernel3 | |
zip -q -r $name * | |
mv $name ../ | |
echo "zipname=$name" >> $GITHUB_OUTPUT | |
working-directory: ${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/ | |
id: anykernel | |
- name: Check the output directory before uploading | |
run: | | |
ls -al ${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/ | |
- name: Upload to Release | |
if: ${{ github.event.inputs.UPLOAD_TO_RELEASE == 'true' }} | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: | | |
${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/${{ steps.anykernel.outputs.zipname }} | |
name: ${{ github.event.inputs.CODENAME }}-${{ github.run_id }}-MAGIC | |
tag_name: ${{ github.run_id }} | |
body: | | |
<b>${{ steps.workspace.outputs.build_title }}</b> | |
<b>Kernel successfully built!</b>, took ${{ steps.build.outputs.elapsed_time }} seconds. | |
<b>Kernel tree</b>: ${{ github.event.inputs.KERNEL_TREE }}/tree/${{ github.event.inputs.KERNEL_TREE_BRANCH }} | |
<b>Action</b>: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
if: ${{ success() && github.event.inputs.UPLOAD_TO_RELEASE != 'true' }} | |
with: | |
name: Image.gz | |
path: ${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/Image.gz | |
- uses: actions/upload-artifact@v4 | |
if: ${{ success() && github.event.inputs.ANYKERNEL_URL != '' && github.event.inputs.UPLOAD_TO_RELEASE != 'true' }} | |
with: | |
name: ${{ steps.anykernel.outputs.zipname }} | |
path: | | |
${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/AnyKernel3/ | |
!${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/AnyKernel3/.git | |
!${{ steps.kernel.outputs.kernel-folder }}/out/arch/arm64/boot/AnyKernel3/.github |