diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 000000000..1bdea5587 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,28 @@ +name: Build dump1090-fa + +on: [ push, pull_request ] + +jobs: + build: + name: Build dump1090-fa + strategy: + matrix: + image: + - ubuntu-24.04 + - ubuntu-24.04-arm + runs-on: ${{ matrix.image }} + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Install build prerequisites + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends debhelper librtlsdr-dev libbladerf-dev libhackrf-dev liblimesuite-dev libsoapysdr-dev libusb-1.0-0-dev pkg-config libncurses5-dev + - name: Build it + run: | + make RTLSDR=yes BLADERF=yes HACKRF=yes LIMESDR=yes SOAPYSDR=yes all + - name: Run tests + run: | + make test diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 2156195d8..000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,73 +0,0 @@ -node(label: 'raspberrypi') { - properties([ - pipelineTriggers([ - upstream(threshold: 'SUCCESS', - upstreamProjects: "bladeRF/${env.BRANCH_NAME}") - ]), - disableConcurrentBuilds(), - durabilityHint(hint: 'PERFORMANCE_OPTIMIZED') - ]) - - def srcdir = "${WORKSPACE}/src" - - stage('Checkout') { - sh "rm -fr ${srcdir}" - sh "mkdir ${srcdir}" - dir(srcdir) { - checkout scm - } - } - - def dist_arch_list = [ - ["bookworm", "armhf"], - ["bookworm", "arm64"], - ["bullseye", "armhf"], - ["bullseye", "arm64"], - ["buster", "armhf"] - ] - - def pkgdirs = [:] - def resultdirs = [:] - for (int i = 0; i < dist_arch_list.size(); ++i) { - def dist_and_arch = dist_arch_list[i] - def dist = dist_and_arch[0] - def arch = dist_and_arch[1] - - String pkgdir - if (pkgdirs.containsKey(dist)) { - pkgdir = pkgdirs[dist] - } else { - pkgdir = "pkg-${dist}" - stage("Prepare source for ${dist}") { - sh "rm -fr ${pkgdir}" - sh "${srcdir}/prepare-build.sh ${dist} ${pkgdir}" - } - pkgdirs[dist] = pkgdir - } - - def resultdir = "results-${dist}-${arch}" - resultdirs[dist_and_arch] = resultdir - stage("Build for ${dist} (${arch})") { - sh "rm -fr ${resultdir}" - sh "mkdir -p ${resultdir}" - dir(pkgdir) { - sh "DIST=${dist} BRANCH=${env.BRANCH_NAME} ARCH=${arch} pdebuild --use-pdebuild-internal --debbuildopts -b --buildresult ${WORKSPACE}/${resultdir} -- --override-config" - } - archiveArtifacts artifacts: "${resultdir}/*.deb", fingerprint: true - } - - stage("Test install on ${dist} (${arch})") { - sh "BRANCH=${env.BRANCH_NAME} ARCH=${arch} /build/pi-builder/scripts/validate-packages.sh ${dist} ${resultdir}/dump1090-fa_*.deb" - } - } - - stage('Deploy to internal repository') { - for (int i = 0; i < dist_arch_list.size(); ++i) { - def dist_and_arch = dist_arch_list[i] - def dist = dist_and_arch[0] - def arch = dist_and_arch[1] - def resultdir = resultdirs[dist_and_arch] - sh "/build/pi-builder/scripts/deploy.sh -distribution ${dist} -architectures ${arch} -branch ${env.BRANCH_NAME} ${resultdir}/*.deb" - } - } -}