Set version to 2026.01.3+ #1446
Workflow file for this run
This file contains hidden or 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 | |
| on: | |
| push: | |
| pull_request: | |
| # Run automatically every monday | |
| schedule: | |
| - cron: 1 12 * * 1 | |
| env: | |
| # Override OSX architecture detection. Required for CMake versions < 3.19.2. | |
| CMAKE_OSX_ARCHITECTURES: arm64 | |
| jobs: | |
| host: | |
| strategy: | |
| matrix: | |
| sys: | |
| - {os: 'macos', shell: 'bash'} | |
| - {os: 'ubuntu', shell: 'bash'} | |
| - {os: 'windows', shell: 'pwsh'} | |
| - {os: 'windows', shell: 'msys2'} | |
| cmake: ['3.10.0', '3.16.0', '3.21.0', '4.0.0', 'latest'] | |
| exclude: | |
| # GitHub runners use Visual Studio 2022. Support added in CMake 3.21. | |
| - sys: {os: 'windows', shell: 'pwsh'} | |
| cmake: '3.10.0' | |
| - sys: {os: 'windows', shell: 'pwsh'} | |
| cmake: '3.16.0' | |
| # MSYS2 always supplies the latest cmake. | |
| - sys: {os: 'windows', shell: 'msys2'} | |
| cmake: '3.10.0' | |
| - sys: {os: 'windows', shell: 'msys2'} | |
| cmake: '3.16.0' | |
| - sys: {os: 'windows', shell: 'msys2'} | |
| cmake: '3.21.0' | |
| - sys: {os: 'windows', shell: 'msys2'} | |
| cmake: '4.0.0' | |
| include: | |
| - sys: {os: 'windows', shell: 'pwsh'} | |
| cmake_args: >- | |
| -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe | |
| -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake | |
| --install-prefix=$env:GITHUB_WORKSPACE/install | |
| - sys: {os: 'windows', shell: 'msys2'} | |
| cmake_args: >- | |
| --install-prefix=/usr/local | |
| # Don't cancel all builds when one fails | |
| fail-fast: false | |
| runs-on: ${{ matrix.sys.os }}-latest | |
| defaults: | |
| run: | |
| shell: '${{ matrix.sys.shell }} {0}' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup cmake | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| with: | |
| cmake-version: ${{ matrix.cmake }} | |
| if: matrix.sys.shell != 'msys2' | |
| - name: Install dependencies (macOS) | |
| run: brew install fftw | |
| if: matrix.sys.os == 'macos' | |
| - name: Install dependencies (Ubuntu) | |
| run: | | |
| sudo apt update | |
| sudo apt install libfftw3-dev libusb-1.0-0-dev | |
| if: matrix.sys.os == 'ubuntu' | |
| - name: Install dependencies (Windows) | |
| run: vcpkg install --triplet=x64-windows libusb fftw3 pthreads pkgconf | |
| if: matrix.sys.os == 'windows' && matrix.sys.shell != 'msys2' | |
| - name: Setup MSYS (Windows) | |
| if: matrix.sys.os == 'windows' && matrix.sys.shell == 'msys2' | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: UCRT64 | |
| install: >- | |
| git | |
| make | |
| mingw-w64-ucrt-x86_64-cmake | |
| mingw-w64-ucrt-x86_64-toolchain | |
| mingw-w64-ucrt-x86_64-libusb | |
| mingw-w64-ucrt-x86_64-fftw | |
| # Build libhackrf and hackrf-tools together | |
| - name: Configure & Build | |
| run: | | |
| cmake -E make_directory host/build | |
| cd host/build | |
| cmake .. -DCMAKE_BUILD_TYPE=Release ${{matrix.cmake_args}} | |
| cmake --build . --config Release | |
| # Build libhackrf ONLY | |
| - name: Configure & Build (libhackrf) | |
| run: | | |
| cmake -E make_directory host/libhackrf/build | |
| cd host/libhackrf/build | |
| cmake .. -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_args }} | |
| cmake --build . --config Release | |
| - name: Install (libhackrf) | |
| run: | | |
| sudo cmake --install host/libhackrf/build --config Release | |
| if: matrix.sys.os != 'windows' && matrix.cmake != '3.10.0' | |
| - name: Install (libhackrf, CMake 3.10) | |
| run: | | |
| sudo cmake --build host/libhackrf/build --target install --config Release | |
| if: matrix.sys.os != 'windows' && matrix.cmake == '3.10.0' | |
| - name: Install (libhackrf, Windows) | |
| run: cmake --install host/libhackrf/build --config Release | |
| if: matrix.sys.os == 'windows' | |
| # Build hackrf-tools ONLY | |
| - name: Configure & Build (hackrf-tools) | |
| run: | | |
| cmake -E make_directory host/hackrf-tools/build | |
| cd host/hackrf-tools/build | |
| cmake .. -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmake_args }} | |
| cmake --build . --config Release | |
| - name: Install (hackrf-tools) | |
| run: | | |
| sudo cmake --install host/hackrf-tools/build --config Release | |
| if: matrix.sys.os != 'windows' && matrix.cmake != '3.10.0' | |
| - name: Install (hackrf-tools, CMake 3.10) | |
| run: | | |
| sudo cmake --build host/hackrf-tools/build --target install --config Release | |
| if: matrix.sys.os != 'windows' && matrix.cmake == '3.10.0' | |
| - name: Install (hackrf-tools, Windows) | |
| run: cmake --install host/hackrf-tools/build --config Release | |
| if: matrix.sys.os == 'windows' | |
| # Publish the contents of install/bin (which should be the combination libhackrf and host-tools) for Windows | |
| - name: Publish Artifacts (Windows) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: hackrf-tools-windows | |
| path: ${{github.workspace}}/install/bin | |
| if: matrix.sys.os == 'windows' && matrix.cmake == 'latest' && matrix.sys.shell == 'pwsh' | |
| firmware: | |
| strategy: | |
| matrix: | |
| os: ['macos', 'ubuntu', 'windows'] | |
| board: ['HACKRF_ONE', 'JAWBREAKER', 'RAD1O', 'PRALINE'] | |
| cmake: ['3.10.0', 'latest'] | |
| exclude: | |
| - os: 'windows' | |
| cmake: '3.10.0' | |
| # Don't cancel all builds when one fails | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }}-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup cmake | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| with: | |
| cmake-version: ${{ matrix.cmake }} | |
| if: matrix.os != 'windows' | |
| - name: Install Arm GNU Toolchain | |
| uses: carlosperate/arm-none-eabi-gcc-action@v1 | |
| if: matrix.os != 'windows' | |
| - name: Install dependencies (macOS) | |
| run: | | |
| brew install dfu-util | |
| python3 -m venv environment && source environment/bin/activate | |
| python3 -m pip install PyYAML | |
| if: matrix.os == 'macos' | |
| - name: Install dependencies (Ubuntu) | |
| run: | | |
| python3 -m venv environment && source environment/bin/activate | |
| python3 -m pip install PyYAML | |
| sudo apt install dfu-util | |
| if: matrix.os == 'ubuntu' | |
| - name: Build libopencm3 | |
| shell: bash | |
| working-directory: ${{github.workspace}}/firmware/libopencm3/ | |
| run: | | |
| source ../../environment/bin/activate | |
| make | |
| if: matrix.os != 'windows' | |
| - name: Create Build Environment | |
| run: cmake -E make_directory ${{github.workspace}}/firmware/build | |
| if: matrix.os != 'windows' | |
| - name: Configure CMake | |
| shell: bash | |
| working-directory: ${{github.workspace}}/firmware/build | |
| run: cmake $GITHUB_WORKSPACE/firmware/ -DCMAKE_BUILD_TYPE=Release -DBOARD=${{ matrix.board }} | |
| if: matrix.os != 'windows' | |
| - name: Build | |
| working-directory: ${{github.workspace}}/firmware/build | |
| shell: bash | |
| run: | | |
| source ../../environment/bin/activate | |
| cmake --build . --config Release | |
| if: matrix.os != 'windows' | |
| - name: Setup MSYS (Windows) | |
| if: matrix.os == 'windows' | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: UCRT64 | |
| update: true | |
| install: >- | |
| git | |
| make | |
| mingw-w64-ucrt-x86_64-arm-none-eabi-gcc | |
| mingw-w64-ucrt-x86_64-cmake | |
| mingw-w64-ucrt-x86_64-dfu-util | |
| mingw-w64-ucrt-x86_64-python-yaml | |
| - name: Build with MSYS (Windows) | |
| if: matrix.os == 'windows' | |
| shell: msys2 {0} | |
| run: | | |
| mkdir firmware/build | |
| cd firmware/build | |
| cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DBOARD=${{ matrix.board }} .. | |
| make |