Skip to content
Snippets Groups Projects
Select Git revision
  • 6d209cb020535deee8a73482e52434fdc874c00c
  • master default protected
  • gh-pages
  • build-process-upgrade-merge
  • eb-apollo-generate_names
  • BT5_travis
  • hello_github
  • v18.1.0
  • v18.0.3
  • v18.0.2
  • v18.0.1
  • v18.0.0
  • v18.0.0-RC1
  • v17.0.1
  • v17.0.0
  • v16.0.17
  • v16.0.0
  • v15.0.0
  • v14.0.0
  • v13.2.0
20 results

art

Blame
  • .gitlab-ci.yml 4.42 KiB
    stages:
      - build
    
    build-zynthbox-image-armhf:
      tags:
        - arm64
      image: ubuntu:22.04@sha256:cb6ce0db39adc371523a22a0031aa978ad3efbb13a279b7608010c82f8ab214e
      stage: build
      # Run pipeline only via Run Pipeline button via web
      rules:
        - if: $CI_PIPELINE_SOURCE == "web"
      script:
        - set -x
        
        - image_name="zynthbox_rpi4_bullseye_$(date "+%F_%H%M").img"
        - image_name_miko="zynthbox_miko_bullseye_$(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"
        - apt-get update
        - apt-get install -y coreutils p7zip-full qemu-user-static sudo git wget python3 lsof fdisk xz-utils openssh-client
    
        # Clone repositories required to generate image
        - echo "# Clone repositories required to generate image"
        - git clone https://github.com/zynthbox/CustomPiOS.git
        - git clone https://github.com/zynthbox/ZynthianOS.git -b dev-bullseye
    
        # Setup Zynthbox Repo sourceline
        - echo "# Setup Zynthbox Repo sourceline"
        - echo "ZYNTHIANOS_ZYNTHBOX_REPO_KEY_URL='https://repo.zynthbox.io/repo_key.pub'" >> ZynthianOS/src/modules/zynthianos/config
        - echo "ZYNTHIANOS_ZYNTHBOX_REPO_SOURCELINE='deb http://repo.zynthbox.io/testing-bullseye bullseye main'" >> ZynthianOS/src/modules/zynthianos/config
    
        # 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 "https://github.com/zynthbox/dependencies/releases/download/v0.5/2023-01-11_2020-02-13-realtimepi-buster-armhf-lite-kernel_5.15.65-llat-v7l+_0.6.0.zip" -P ./ZynthianOS/src/image
        - wget "http://unofficialpi.org/Distros/RealtimePi/nightly/2022-03-07_2022-01-28-realtimepi-bullseye-armhf-lite-0.6.0.zip" -P ./ZynthianOS/src/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 -kzv --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 -v ./workspace/$image_name ./workspace/$image_name_miko
        - fdisk -lu ./workspace/$image_name_miko
        - root_start=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}2 | awk '{print $2}')
        - root_size=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}2 | awk '{print $4}')
        - boot_start=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}1 | awk '{print $2}')
        - boot_size=$(fdisk -lu ./workspace/$image_name_miko | grep ${image_name_miko}1 | awk '{print $4}')
        - mountdir=$(mktemp -d)
        - 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