Update build.yml #265
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: Build nightly images | |
on: | |
push: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 5' # Run every friday at midnight | |
jobs: | |
build-image: | |
strategy: | |
matrix: | |
version: ["next"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out build configurations | |
uses: actions/checkout@v4 | |
- name: Substitute placeholders in configs | |
run: | | |
#sudo apt update | |
#sudo apt-get install -y gcc-aarch64-linux-gnu | |
#sudo apt-get install -y binutils-aarch64-linux-gnu | |
find . -type f -name "*.cfg" -exec sed -i "s|HOME|$(echo $HOME)|;s|NPROC|$(nproc)|" {} + | |
echo "KERNEL_BRANCH=$DEFAULT_BRANCH" >> $GITHUB_ENV | |
- name: Install pmbootstrap from git | |
run: | | |
git clone --depth=1 https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git | |
#py3-dt-schema only avail for edge channel | |
sed -i '/py3-dt-schema/d' pmbootstrap/helpers/envkernel.sh | |
mkdir -p ~/.local/bin | |
ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap | |
pmbootstrap --version | |
# ccording to https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5774 | |
# this is not need to apply | |
# remove ppc64 to workaround pmbootstrap for lacking alpine ppc64 platform | |
#sed -i 's/Arch.ppc64le,/#Arch.ppc64le,/g' pmbootstrap/pmb/core/arch.py | |
- name: Set up pmaports | |
run: | | |
echo -e '\nedge\nfairphone\nfp4\n\n\nphosh\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' | pmbootstrap init || true | |
# Since v23.06 do not have testing folder, create it. | |
echo after pmbootstrap init | |
mkdir -p ~/.local/var/pmbootstrap/cache_git/pmaports/device/testing | |
cd ~/.local/var/pmbootstrap/cache_git/pmaports | |
echo "merging local pmaport device files to upstream aport...." | |
git config user.name "Your Name" | |
git config user.email "[email protected]" | |
git remote add 99degree https://github.com/99degree/pmaports.git | |
git fetch origin master | |
git fetch 99degree next | |
#git fetch 99degree v23.06 | |
#Currently edge channel is not working... | |
git checkout origin/master -f | |
git merge -m "merge upstreaam master with local changes" 99degree/next | |
#git checkout 99degree/v23.06 -f | |
git clean -fdx | |
- name: Choose any SM7125 device in pmbootstrap to build kernel | |
run: | | |
pmbootstrap config auto_zap_misconfigured_chroots no | |
pmbootstrap config boot_size 256 | |
pmbootstrap config build_default_device_arch False | |
pmbootstrap config build_pkgs_on_install True | |
pmbootstrap config ccache_size 5G | |
pmbootstrap config device xiaomi-surya | |
pmbootstrap config extra_space 0 | |
pmbootstrap config hostname | |
pmbootstrap config is_default_channel False | |
pmbootstrap config jobs 5 | |
pmbootstrap config kernel joyeuse | |
pmbootstrap config keymap | |
pmbootstrap config locale en_US.UTF-8 | |
pmbootstrap config qemu_redir_stdio False | |
pmbootstrap config ssh_key_glob ~/.ssh/*.pub | |
pmbootstrap config ssh_keys False | |
pmbootstrap config sudo_timer False | |
pmbootstrap config systemd default | |
pmbootstrap config ui phosh | |
pmbootstrap config ui_extras False | |
pmbootstrap config user user | |
#pmbootstrap config work /home/user/.local/var/pmbootstrap | |
pmbootstrap config extra_packages firmware-xiaomi-miatoll | |
uname -a | |
echo -e '\nedge\nxiaomi\nsurya\n\n\nphosh\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' | pmbootstrap init || true | |
- name: Create artifact directory | |
run: | | |
mkdir out | |
mkdir out_raw | |
- name: Build xiaomi-miatoll | |
run: | | |
pmbootstrap config | |
#pmbootstrap config boot_size 256 | |
# according to https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5774 | |
# --non-existing should not add here | |
#pmbootstrap update --non-existing | |
pmbootstrap build adbd-linux | |
pmbootstrap build firmware-xiaomi-miatoll | |
pmbootstrap build --force soc-qcom-sm7150 | |
pmbootstrap chroot apk add qcam | |
pmbootstrap chroot apk add opencv | |
pmbootstrap chroot apk add py3-opencv | |
pmbootstrap chroot apk add libcamera | |
pmbootstrap chroot apk add /mnt/pmbootstrap/packages/edge/aarch64/firmware-xiaomi-miatoll* || true | |
pmbootstrap chroot apk add /mnt/pmbootstrap/packages/edge/aarch64/soc-qcom-sm7150* || true | |
pmbootstrap -v install --password 147147 --no-sparse --split | |
#pmbootstrap chroot apk add qcam | |
pmbootstrap export out_raw/ | |
ls -la out_raw/ | |
cp -R -u -p -L out_raw/* out/ | true | |
# pmbootstrap export do not work atm, cp manually | |
ls -la $HOME/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/* | |
cp $HOME/.local/var/pmbootstrap/chroot_native/home/pmos/rootfs/* out/ | |
# zip them all | |
xz -T0 -9e -v out/*.img | |
ls -la out/ | |
echo -e "n\nn\ny\n" | pmbootstrap zap | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: xiaomi-miatoll-${{ matrix.version }} | |
path: out/* | |
retention-days: 15 |