mirror of
				https://github.com/AlexandreRouma/SDRPlusPlus.git
				synced 2025-11-04 02:39:11 +01:00 
			
		
		
		
	Added raspberry pi CI
This commit is contained in:
		
							
								
								
									
										25
									
								
								.github/workflows/build_all.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/build_all.yml
									
									
									
									
										vendored
									
									
								
							@@ -297,9 +297,31 @@ jobs:
 | 
			
		||||
          with:
 | 
			
		||||
              name: sdrpp_ubuntu_impish_amd64
 | 
			
		||||
              path: ${{runner.workspace}}/sdrpp_debian_amd64.deb
 | 
			
		||||
 | 
			
		||||
    build_raspios_bullseye:
 | 
			
		||||
        runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
        steps:
 | 
			
		||||
        - uses: actions/checkout@v2
 | 
			
		||||
        
 | 
			
		||||
        - name: Create Docker Image
 | 
			
		||||
          run: cd $GITHUB_WORKSPACE/docker_builds/raspios_bullseye && docker build . --tag sdrpp_build
 | 
			
		||||
 | 
			
		||||
        - name: Run Container
 | 
			
		||||
          run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh
 | 
			
		||||
 | 
			
		||||
        - name: Recover Deb Archive
 | 
			
		||||
          working-directory: ${{runner.workspace}}
 | 
			
		||||
          run: docker cp build:/root/SDRPlusPlus/sdrpp_raspios_arm32.deb ./
 | 
			
		||||
 | 
			
		||||
        - name: Save Deb Archive
 | 
			
		||||
          uses: actions/upload-artifact@v2
 | 
			
		||||
          with:
 | 
			
		||||
              name: sdrpp_raspios_bullseye_arm32
 | 
			
		||||
              path: ${{runner.workspace}}/sdrpp_raspios_arm32.deb
 | 
			
		||||
    
 | 
			
		||||
    create_full_archive:
 | 
			
		||||
        needs: ['build_windows', 'build_macos', 'build_debian_buster', 'build_debian_bullseye', 'build_debian_sid', 'build_ubuntu_bionic', 'build_ubuntu_focal', 'build_ubuntu_groovy', 'build_ubuntu_hirsute', 'build_ubuntu_impish']
 | 
			
		||||
        needs: ['build_windows', 'build_macos', 'build_debian_buster', 'build_debian_bullseye', 'build_debian_sid', 'build_ubuntu_bionic', 'build_ubuntu_focal', 'build_ubuntu_groovy', 'build_ubuntu_hirsute', 'build_ubuntu_impish', 'build_raspios_bullseye']
 | 
			
		||||
        runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
        steps:
 | 
			
		||||
@@ -319,6 +341,7 @@ jobs:
 | 
			
		||||
            mv sdrpp_ubuntu_groovy_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_groovy_amd64.deb && 
 | 
			
		||||
            mv sdrpp_ubuntu_hirsute_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_hirsute_amd64.deb &&
 | 
			
		||||
            mv sdrpp_ubuntu_impish_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_impish_amd64.deb
 | 
			
		||||
            mv sdrpp_raspios_bullseye_arm32/sdrpp_raspios_arm32.deb sdrpp_all/sdrpp_raspios_bullseye_arm32.deb
 | 
			
		||||
 | 
			
		||||
        - uses: actions/upload-artifact@v2
 | 
			
		||||
          with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								docker_builds/raspios_bullseye/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker_builds/raspios_bullseye/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
FROM ubuntu:latest
 | 
			
		||||
ENV DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
COPY do_build.sh /root
 | 
			
		||||
RUN chmod +x /root/do_build.sh
 | 
			
		||||
							
								
								
									
										48
									
								
								docker_builds/raspios_bullseye/do_build.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docker_builds/raspios_bullseye/do_build.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
cd /root
 | 
			
		||||
 | 
			
		||||
# Install tools
 | 
			
		||||
apt update
 | 
			
		||||
apt install -y wget p7zip-full qemu-user-static gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf build-essential cmake pkg-config
 | 
			
		||||
 | 
			
		||||
# Download and extract raspberry pi image
 | 
			
		||||
wget https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-11-08/2021-10-30-raspios-bullseye-armhf-lite.zip
 | 
			
		||||
7z x 2021-10-30-raspios-bullseye-armhf-lite.zip
 | 
			
		||||
7z x 2021-10-30-raspios-bullseye-armhf-lite.img
 | 
			
		||||
 | 
			
		||||
# Expand and mount rootfs image
 | 
			
		||||
dd if=/dev/zero bs=1G count=1 >> 1.img
 | 
			
		||||
e2fsck -f 1.img
 | 
			
		||||
resize2fs 1.img
 | 
			
		||||
mount 1.img /mnt
 | 
			
		||||
 | 
			
		||||
# Copy qemu to the rootfs
 | 
			
		||||
cp /usr/bin/qemu-arm-static /mnt/bin/
 | 
			
		||||
 | 
			
		||||
# Inject script to install dependencies
 | 
			
		||||
echo 'export DEBIAN_FRONTEND=noninteractive' >> /mnt/root/prepare.sh
 | 
			
		||||
echo 'apt update --allow-releaseinfo-change' >> /mnt/root/prepare.sh
 | 
			
		||||
echo 'apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libglew-dev libvolk2-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \' >> /mnt/root/prepare.sh
 | 
			
		||||
echo '            libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \' >> /mnt/root/prepare.sh
 | 
			
		||||
echo '            libcodec2-dev' >> /mnt/root/prepare.sh
 | 
			
		||||
 | 
			
		||||
# Run prepare.sh script
 | 
			
		||||
chroot /mnt /bin/qemu-arm-static /bin/bash /root/prepare.sh
 | 
			
		||||
 | 
			
		||||
# Setup environment variables
 | 
			
		||||
export PKG_CONFIG_PATH=''
 | 
			
		||||
export PKG_CONFIG_LIBDIR='/mnt/usr/lib/arm-linux-gnueabihf/pkgconfig:/mnt/usr/lib/pkgconfig:/mnt/usr/share/pkgconfig'
 | 
			
		||||
export PKG_CONFIG_SYSROOT_DIR='/mnt'
 | 
			
		||||
 | 
			
		||||
# Build SDR++
 | 
			
		||||
cd SDRPlusPlus
 | 
			
		||||
mkdir build
 | 
			
		||||
cd build
 | 
			
		||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../docker_builds/raspios_bullseye/rpi_toolchain.cmake -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON
 | 
			
		||||
make VERBOSE=1 -j2
 | 
			
		||||
 | 
			
		||||
# Create deb
 | 
			
		||||
cd ..
 | 
			
		||||
sh make_debian_package.sh ./build 'libfftw3-dev, libglfw3-dev, libglew-dev, libvolk2-dev, librtaudio-dev'
 | 
			
		||||
mv sdrpp_debian_amd64.deb sdrpp_raspios_arm32.deb
 | 
			
		||||
							
								
								
									
										12
									
								
								docker_builds/raspios_bullseye/rpi_toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docker_builds/raspios_bullseye/rpi_toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
set(CMAKE_SYSTEM_NAME Linux)
 | 
			
		||||
set(CMAKE_SYSTEM_PROCESSOR arm)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_SYSROOT /mnt)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
 | 
			
		||||
set(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 | 
			
		||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 | 
			
		||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 | 
			
		||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
 | 
			
		||||
		Reference in New Issue
	
	Block a user