diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index a760f2b9756..cc6acddf5e4 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -223,78 +223,79 @@ jobs: - name: Build full BMDA run: make PROBE_HOST=hosted HOSTED_BMP_ONLY=0 - # TODO: This is disabled because its out of date and needs updating after the latest refactoring - # # This workflow tests the experimental Meson build system - # build-linux-meson: - # # The type of runner that the job will run on - # runs-on: ubuntu-20.04 - - # # We define a matrix of GCCs and OSes to build against so we can cover a variety of - # # suitable compilation environments and early discover issues. The `build-and-upload` - # # workflow contains an extended set. - # strategy: - # matrix: - # arm-compiler: - # - '12.2.Rel1' - # probe: - # - '96b_carbon' - # - 'bluepill' - # - 'f072' - # - 'f3' - # - 'f4discovery' - # - 'hydrabus' - # - 'launchpad-icdi' - # - 'native' - # - 'stlink' - # - 'stlinkv3' - # - 'swlink' - # fail-fast: false - - # # Steps represent a sequence of tasks that will be executed as part of the job - # steps: - # # Build a suitable runtime environment - # - name: Runtime environment - # shell: bash - # env: - # WORKSPACE: ${{ github.workspace }} - # # The GITHUB_WORKSPACE step here fixes https://github.com/actions/runner/issues/2058 which is an ongoing issue. - # run: | - # echo "$GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV - - # # Setup and use a suitable ARM GCC for the firmware - # - name: Setup ARM GCC - # uses: carlosperate/arm-none-eabi-gcc-action@v1 - # with: - # release: ${{ matrix.arm-compiler }} - - # # Record the versions of all the tools used in the build - # # - name: Version tools - # # shell: bash - # # run: | - # # arm-none-eabi-gcc --version - # # make --version - # # meson --version - # # ninja --version - - # # Checkout the repository and branch to build under the default location - # - name: Checkout - # uses: actions/checkout@v3 - # with: - # submodules: true - - # # Prepare the submodule as they conflict with the Meson build by default - # # This is mesons job, but I can't figure out how to make it work :( - # - name: Prepare submodules - # run: cp -r lib/packagefiles/libopencm3/* lib/libopencm3/ - - # # Build the firmware for all platform variants (currently available) - # - name: Build - # uses: BSFishy/meson-build@v1.0.3 - # with: - # action: build - # directory: build/${{ matrix.probe }} - # setup-options: --cross-file cross-file/arm-none-eabi.ini -Dprobe=${{ matrix.probe }} - # meson-version: 1.2.0 + # This workflow tests the experimental Meson build system + build-linux-meson: + # The type of runner that the job will run on + runs-on: ubuntu-20.04 + + # We define a matrix of GCCs and OSes to build against so we can cover a variety of + # suitable compilation environments and early discover issues. The `build-and-upload` + # workflow contains an extended set. + strategy: + matrix: + arm-compiler: + - '12.2.Rel1' + probe: + - '96b_carbon' + - 'bluepill' + - 'f072' + - 'f3' + - 'f4discovery' + - 'hydrabus' + - 'launchpad-icdi' + - 'native' + - 'stlink' + - 'stlinkv3' + - 'swlink' + fail-fast: false + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Build a suitable runtime environment + - name: Runtime environment + shell: bash + env: + WORKSPACE: ${{ github.workspace }} + # The GITHUB_WORKSPACE step here fixes https://github.com/actions/runner/issues/2058 which is an ongoing issue. + run: | + echo "$GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV + + # Setup and use a suitable ARM GCC for the firmware + - name: Setup ARM GCC + uses: carlosperate/arm-none-eabi-gcc-action@v1 + with: + release: ${{ matrix.arm-compiler }} + + # Install and setup a suitable Meson + Ninja + - name: Setup Meson + Ninja + run: | + sudo python3 -m pip install --upgrade pip setuptools wheel + sudo python3 -m pip install meson ninja + working-directory: ${{ runner.temp }} + + # Record the versions of all the tools used in the build + - name: Version tools + run: | + arm-none-eabi-gcc --version + meson --version + ninja --version + + # Checkout the repository and branch to build under the default location + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + + # Prepare the submodule as they conflict with the Meson build by default + # This is mesons job, but I can't figure out how to make it work :( + - name: Prepare submodules + run: cp -r deps/packagefiles/libopencm3/* deps/libopencm3/ + + # Build the firmware for all platform variants (currently available) + - name: Build + run: | + meson setup build --cross-file cross-file/arm-none-eabi.ini -Dprobe=${{ matrix.probe }} + meson compile -C build size-diff: runs-on: ubuntu-20.04