diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0847a7d40ee615cab2d8cdb710e4f63067c752fa..1489e9fa1a1439c630347b796044eacf0e8deed5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,9 +7,15 @@ build-zynthbox-image-armhf: image: ubuntu:22.04@sha256:cb6ce0db39adc371523a22a0031aa978ad3efbb13a279b7608010c82f8ab214e stage: build script: + - set -x + - image_name="zynthbox_rpi4_buster_$(date "+%F_%H%M").img" - image_name_miko="zynthbox_miko_buster_$(date "+%F_%H%M").img" - log_file_name="$image_name.build.log" + + # Ensuring key security + - echo "Ensuring key security" + - chmod 600 ${SSH_KEY_PUB_ZYNTHBOX_IO} # Update and install dependencies - echo "# Update and install dependencies" @@ -28,43 +34,44 @@ build-zynthbox-image-armhf: # Download prebuilt realtime kernel - echo "# Download prebuilt realtime kernel" - - wget "http://unofficialpi.org/Distros/RealtimePi/2021-06-15_2021-05-07-realtimepi-buster-armhf-lite-0.5.0.zip" -P ./ZynthianOS/src/image + # - wget "http://unofficialpi.org/Distros/RealtimePi/2021-06-15_2021-05-07-realtimepi-buster-armhf-lite-0.5.0.zip" -P ./ZynthianOS/src/image + - wget "https://pub.zynthbox.io/.ci-build-dependency-downloads/2023-01-11_2020-02-13-realtimepi-buster-armhf-lite-0.6.0.zip" -P ./ZynthianOS/src/image - # Build image - - echo "# Build image" + # Build rpi4 image + - echo "# Build rpi4 image" - cd ./ZynthianOS/src - ../../CustomPiOS/src/update-custompios-paths - bash -x ./build_dist - mv ./workspace/*.img ./workspace/$image_name - echo "Image Size -> $(du -h ./workspace/$image_name)" + # Compress rpi4 image + - echo "# Compress image" + - xz -zv --threads=12 --memory=100% ./workspace/$image_name + - echo "Compressed rpi4 Image Size -> $(du -h ./workspace/$image_name.xz)" + # Push compressed rpi4 image to pub.zynthbox.io + - echo "# Push compressed rpi4 image to pub.zynthbox.io" + - scp -P 3138 -i "$SSH_KEY_PUB_ZYNTHBOX_IO" -o "StrictHostKeyChecking no" "./workspace/$image_name.xz" zynthbox@pub.zynthbox.io:/mnt/pub_zynthbox_io_volume/ISOs/.ci-testing-isos/ # Build miko image - echo "# Build Miko image" - - cp ./workspace/$image_name ./workspace/$image_name_miko - - loopdevice=$(losetup --show -fP ./workspace/$image_name_miko) + - cp -v ./workspace/$image_name ./workspace/$image_name_miko + - root_start=$(fdisk -lu ./workspace/$image_name_miko | grep $image_name_miko.img2 | awk '{print $2}') + - root_size=$(fdisk -lu ./workspace/$image_name_miko | grep $image_name_miko.img2 | awk '{print $4}') + - boot_start=$(fdisk -lu ./workspace/$image_name_miko | grep $image_name_miko1 | awk '{print $2}') + - boot_size=$(fdisk -lu ./workspace/$image_name_miko | grep $image_name_miko1 | awk '{print $4}') - mountdir=$(mktemp -d) - - mount ${loopdevice}p2 $mountdir - - mount ${loopdevice}p1 $mountdir/boot - - mount --bind /dev $mountdir/dev - - mount --bind /dev/pts $mountdir/dev/pts - - mount --bind /proc $mountdir/proc - - mount --bind /sys $mountdir/sys - - chroot $mountdir apt install zynthbox-z2-setup - - umount $mountdir/boot/ $mountdir/dev/pts $mountdir/dev/ $mountdir/proc/ $mountdir/sys/ - - unmount $mountdir - - losetup -D $loopdevice - - # Compress image - - echo "# Compress image" - - xz -zv --threads=12 --memory=100% ./workspace/$image_name - - echo "Compressed Image Size -> $(du -h ./workspace/$image_name.xz)" + - sudo mount -o loop,offset=$(($root_start * 512)),sizelimit=$(($root_size * 512)) ./workspace/$image_name_miko $mountdir + - sudo mount -o loop,offset=$(($boot_start * 512)),sizelimit=$(($boot_size * 512)) ./workspace/$image_name_miko $mountdir/boot + - sudo mount --bind /dev $mountdir/dev + - sudo mount --bind /dev/pts $mountdir/dev/pts + - sudo mount --bind /proc $mountdir/proc + - sudo mount --bind /sys $mountdir/sys + - sudo chroot $mountdir apt install zynthbox-z2-setup + - sudo umount $mountdir/boot/ $mountdir/dev/pts $mountdir/dev/ $mountdir/proc/ $mountdir/sys/ + - sudo umount $mountdir + # Compress miko image - xz -zv --threads=12 --memory=100% ./workspace/$image_name_miko - - echo "Compressed Image Size -> $(du -h ./workspace/$image_name_miko.xz)" - - # Ensuring key security - - echo "Ensuring key security" - - chmod 600 ${SSH_KEY_PUB_ZYNTHBOX_IO} - - # Push compressed image to pub.zynthbox.io - - echo "# Push compressed image to pub.zynthbox.io" - - scp -P 3138 -i "$SSH_KEY_PUB_ZYNTHBOX_IO" -o "StrictHostKeyChecking no" "./workspace/$image_name.xz" "./workspace/$image_name_miko.xz" zynthbox@pub.zynthbox.io:/mnt/pub_zynthbox_io_volume/ISOs/.ci-testing-isos/ + - echo "Compressed miko Image Size -> $(du -h ./workspace/$image_name_miko.xz)" + # Push compressed miko image to pub.zynthbox.io + - echo "# Push compressed miko image to pub.zynthbox.io" + - scp -P 3138 -i "$SSH_KEY_PUB_ZYNTHBOX_IO" -o "StrictHostKeyChecking no" "./workspace/$image_name_miko.xz" zynthbox@pub.zynthbox.io:/mnt/pub_zynthbox_io_volume/ISOs/.ci-testing-isos/