Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
da9e44a
misc: update links github to codeberg
gojimmypi Mar 8, 2026
884b1fb
bmp-v3: Begun fleshing out the platform definitions for the pinout
dragonmux Oct 31, 2025
3d97712
bmp-v3: Added pin definitions for all the most major moving pieces
dragonmux Oct 31, 2025
bc95949
adiv5_swd: Fixed some issues in the copyright header
dragonmux Oct 31, 2025
4d904ba
bmp-v3: Started filling in interrupt setup and control macros
dragonmux Oct 31, 2025
4102404
common/stm32: Defined the STM32U5 as a viable BMP platform target
dragonmux Oct 31, 2025
abe324f
native: Fixed the copyright headers
dragonmux Nov 1, 2025
5fc8e01
common: Enable various facilities for the STM32U5 series
dragonmux Nov 3, 2025
2e9efe7
bmp-v3: Roughly implemented the SWDIO drive mode switch macros
dragonmux Nov 3, 2025
7909e62
bmp-v3: Added configuration for the SWO pin
dragonmux Nov 3, 2025
ed6236d
bmp-v3: Defined the DMA setup for the SWO and AUX UART subsystems
dragonmux Nov 3, 2025
419998c
common/aux_serial: Implemented support for sourcing data from two UAR…
dragonmux Nov 4, 2025
168a2f2
bmp-v3: Added a linker script for the platform
dragonmux Nov 4, 2025
707835f
common/aux_serial: Built out DMA configuration for the STM32U5 as it'…
dragonmux Nov 10, 2025
b554f1d
ch32vx: Gate the read Flash size function properly on whether DEBUG_I…
dragonmux Nov 11, 2025
c829e3f
common/swo_uart: Built out DMA configuration for the STM32U5 as it's …
dragonmux Nov 12, 2025
1ffd45e
common/swo_manchester: Handle the STM32U5 timer input multiplexing pr…
dragonmux Nov 17, 2025
967623b
meson: Added the new BMPv3 platform to the build system, integrating …
dragonmux Nov 17, 2025
83ed674
bmp-v3: Begun implementing the platform-specific functions
dragonmux Nov 17, 2025
ca1da30
native: Removed a duplicated include line
dragonmux Nov 18, 2025
634f916
native: Fixed up the copyright header
dragonmux Nov 18, 2025
09f7e65
bmp-v3: Defined the first part of platform initialisation, bringing u…
dragonmux Nov 19, 2025
ec70fa8
stlinkv3: Removed a duplicated include line
dragonmux Nov 20, 2025
c0c6cd3
native: Added some `const` to the ADC code the updated locm3 allows
dragonmux Nov 20, 2025
0bd5e0b
bmp-v3: Implemented target voltage readout using the ADCs and tpwr se…
dragonmux Nov 20, 2025
d6f573f
bmp-v3: Implemented bringup of the various core peripherals and clocking
dragonmux Nov 20, 2025
c2e9662
bmp-v3: Implemented the boot request logic
dragonmux Nov 21, 2025
2f6d25b
bmp-v3: Implemented handling for the hardware version info
dragonmux Nov 21, 2025
010c15a
bmp-v3: Fleshed out GPIO configuration and bringup
dragonmux Nov 21, 2025
8c0d570
bmp-v3: Defined clocking for the platform
dragonmux Nov 21, 2025
8768d5a
bmp-v3: Built out the bootloader for the platform
dragonmux Nov 21, 2025
f199fdd
common: Built a new, more suitable bootloader backend for the STM32U5
dragonmux Nov 24, 2025
825a922
common: Enabled the STM32U5 in the core DFU bootloader
dragonmux Nov 24, 2025
2abc501
common: Cleaned up the core DFU bootloader using the buffer_utils header
dragonmux Nov 27, 2025
cdee664
bmp-v3: Initialise the UART subsystem and configure the UART pins app…
dragonmux Dec 22, 2025
6468821
misc: Turn off a clang-analyzer-core lint that we cannot avoid due to…
dragonmux Dec 22, 2025
64c1527
bmp-v3: Initialise the LED pins so we can see the GDB machinary state
dragonmux Dec 22, 2025
5beecc9
common: Enable the USB DFU stub to properly reboot cores that are ARM…
dragonmux Dec 22, 2025
28c3bcf
common/usb_serial: Cleanup to improve nomenclature consistency and re…
dragonmux Dec 23, 2025
e33293d
common/stm32/gdb_if: Upgraded the receive callback mechanism with pro…
dragonmux Dec 31, 2025
b54782c
common/stm32/gdb_if: Nomenclature fixes to make things easier to read…
dragonmux Dec 31, 2025
11084a5
common/usb_serial: Fixed some clang-tidy lints
dragonmux Dec 31, 2025
f635cac
common/ctxlink/gdb_if: Upgraded the receive callback mechanism with p…
dragonmux Dec 31, 2025
02833c4
common/usb_descriptors: Switch to a 125ms polling interval for state …
dragonmux Jan 2, 2026
63d26f5
bmp-v3: Implemented target power support
dragonmux Jan 2, 2026
2e60902
bmp-v3: Refactor the GPIO init into its own function
dragonmux Jan 3, 2026
34b8f2e
bmp-v3: More GPIO initialisation work, making sure nRST is bought up …
dragonmux Jan 4, 2026
92812d5
native: Fixed up some nomenclature and warnings in the tpwr voltage r…
dragonmux Jan 4, 2026
3457755
bmp-v3: Handle proper initialisation of the bus direction pins
dragonmux Jan 5, 2026
b681120
bmp-v3: Defined the pin setup for the QSPI Flash memory interface to …
dragonmux Jan 6, 2026
4a331f8
common/swdptap: Small tweak to where the read happens in the I/O cycl…
dragonmux Jan 6, 2026
7c28617
common/aux_serial: Implemented more of the multi-UART logic for hooki…
dragonmux Jan 11, 2026
a9c8fdc
common/aux_serial: Handle errors that can occur on the UARTs so DMA d…
dragonmux Jan 19, 2026
0fb4bd8
common/aux_serial: More tweaks for the IRQ handling to make things sa…
dragonmux Jan 19, 2026
45f10fb
common/aux_serial: Fixed an order of includes error that meant certai…
dragonmux Jan 26, 2026
0ee082b
common/aux_serial: Impelemented the UART1 half of the switchable UART…
dragonmux Jan 26, 2026
5a207dc
common/aux_serial: Roughly implemented the UART2 half of the switchab…
dragonmux Jan 26, 2026
dd8ec3d
bmp-v3: Implemented platform support for UART RX/TX switching for the…
dragonmux Feb 4, 2026
6dfa0ec
common/timing_stm32: Implemented handling for seeing which way around…
dragonmux Feb 4, 2026
6e6545e
bmp-v3: Implemented logic for enabling and disabling the secondary UA…
dragonmux Feb 17, 2026
c78f1f4
github: Enabled BMPv3 in both the PR and build-and-upload flows
dragonmux Feb 23, 2026
b2620d6
f072/atomic: Implemented compare-exchange and fetch-add for 32-bit un…
dragonmux Feb 23, 2026
1abd3fb
common/stm32/dfucore: Removed all the extra unnecessary spaces from t…
dragonmux Mar 9, 2026
5a371b2
stm32l4: Implemented option bytes support for the STM32U5
dragonmux Feb 23, 2026
8957f29
stm32l4: Modernised and fixed how erase is done to better fit the STM…
dragonmux Feb 23, 2026
6ab8dbf
stm32l4: Enable non-halting I/O for the STM32U5 parts as there are no…
dragonmux Feb 23, 2026
571a68e
hosted/serial_win: Prevent the RegGetValue() call that fills the outp…
dragonmux Mar 8, 2026
6fe4d68
hosted/bmp_serial: Prevent the RegGetValue() call that fills the outp…
dragonmux Mar 8, 2026
f086915
gdb_main: Fix a comment style issue in exec_q_memory_map()
dragonmux Feb 23, 2026
a7421d9
cortexm: Cleaned up the comment style and some of the logic in the AR…
dragonmux Feb 23, 2026
08a43bb
target: Built out a function for building the target memory map in ch…
dragonmux Feb 25, 2026
12e36f0
gdb_main: Switch exec_q_memory_map() to using the new map chunk funct…
dragonmux Feb 25, 2026
095818b
target: Removed the old memory map builder function
dragonmux Feb 25, 2026
28862a7
github: Updated the OSes built for in the PR flow
dragonmux Feb 24, 2026
d707ca8
github: Switched size-diff over to BMPv3 in the PR workflow
dragonmux Feb 24, 2026
5e7069c
github: Updated the OSes built for in the build-and-upload flow
dragonmux Feb 24, 2026
81a955e
github: Updated the version of the ARM toolchain we CI with (14.3 -> …
dragonmux Feb 24, 2026
75197fb
github: Updated the toolchains used in the Linux CI builds for build-…
dragonmux Feb 24, 2026
2ee5ca8
github: Updated the actions version pinnings in the PR flow
dragonmux Feb 24, 2026
cd436f7
github: Updated the actions version pinnings in the build-and-upload …
dragonmux Feb 24, 2026
db9692b
target: Improved the naming of the RAM memory map handler
dragonmux Mar 14, 2026
1295bf7
target: Improved the naming of the Flash memory map handler
dragonmux Mar 14, 2026
e524e57
target: Simplified the Flash memory entry formatter, shaving some siz…
dragonmux Mar 14, 2026
3f556b0
target: Added some missing `const` to the parameters of the memory ma…
dragonmux Mar 14, 2026
de9c855
riscv_debug: Fixed some type conversions lints in the target descript…
dragonmux Mar 14, 2026
0b2d04f
hosted/probe_info: Fixed the allocation failure error in probe_info_a…
dragonmux Mar 14, 2026
37c2393
hosted/bmp_libusb: Fixed (at least partially) probe_info_add_by_id() …
dragonmux Mar 14, 2026
94fc333
remote: Fix a comment carrying the incorrect command characters for a…
dragonmux Mar 16, 2026
65ef172
hosted/remote/protocol_v2: Avoid issuing `Jc` to the probe if there's…
dragonmux Mar 16, 2026
7fc79bf
common/jtagtap: Avoid running any cycles if we're asked to do nothing…
dragonmux Mar 16, 2026
dd49a6c
codeberg: Implemented steps for building the firmware for all the dif…
dragonmux Mar 17, 2026
3699698
codeberg: Implemented steps for building BMDA on Linux with both Clan…
dragonmux Mar 17, 2026
a267510
codeberg: Install the pre-requisites for BMDA in the firmware flow so…
dragonmux Mar 17, 2026
b712c7a
codeberg: Remove `-Werror` from the BMDA flow on Linux for now till o…
dragonmux Mar 17, 2026
1725e19
codeberg: Enabled LTO for the Linux BMDA builds
dragonmux Mar 18, 2026
29436d8
codeberg: Added a cross-file describing how to build BMDA for Windows…
dragonmux Mar 18, 2026
b1c1679
codeberg: Implemented steps for building BMDA for Windows from Linux
dragonmux Mar 18, 2026
c4ea63b
meson: Allow BMDA to be cross-compiled when not building the firmware…
dragonmux Mar 18, 2026
50a001a
mspm0: Flash target using on-device core loop stub
hardesk Feb 8, 2026
db181ee
mspm0: Expand the id list of supported mspm0 targets
hardesk Feb 8, 2026
9007cab
mspm0: Remove the FACTORY/NONMAIN register inspection
hardesk Feb 8, 2026
7d51c11
mspm0: Fix condition check whether flash erase command has finished
hardesk Feb 8, 2026
ab56f9f
ctxlink/WiFi_Server: Cleaned up in the GDB send interface code
dragonmux Dec 15, 2024
003f96b
gdb_packet: Converted consume_remote_packet() to using the new GDB pa…
dragonmux Dec 15, 2024
ed378c8
remote: Begun to switch the remote protocol to be expressed in terms …
dragonmux Dec 15, 2024
b983da4
remote: Converted the SWD packet handler to be expressed in terms of …
dragonmux Dec 15, 2024
3da9427
remote: Converted the JTAG packet handler to be expressed in terms of…
dragonmux Dec 15, 2024
b72e43e
remote: Converted the general packet handler to be expressed in terms…
dragonmux Dec 15, 2024
fe8791f
remote: Converted the high-level packet handler to be expressed in te…
dragonmux Dec 15, 2024
f111d72
remote: Converted the ADIv5 packet handler to be expressed in terms o…
dragonmux Dec 15, 2024
4d91de3
remote: Converted the ADIv6 packet handler to be expressed in terms o…
dragonmux Dec 15, 2024
f12ce00
remote: Converted the RISC-V packet handler to be expressed in terms …
dragonmux Dec 15, 2024
b7275e6
remote: Converted the SPI packet handler to be expressed in terms of …
dragonmux Dec 15, 2024
cd5f315
gdb_packet: Fixed a clang-tidy warning about type conversions in the …
dragonmux Dec 15, 2024
6f901ad
stm32f1: Hardcode GD32VW553 memory map
ALTracer Mar 5, 2026
6ee78d0
cortexm: wait for halt
mdrssv Mar 19, 2026
eed71d8
adiv5: keep trying to read TARGETID
mdrssv Mar 19, 2026
efecf9d
riscv_debug: Log tdata2 from discovered triggers during probe (to det…
ALTracer Feb 12, 2026
9b8f7ea
riscv_debug: Unconditionally disable triggers during attach
ALTracer Feb 12, 2026
2ff786f
riscv_debug: Unconditionally disable triggers during detach
ALTracer Feb 12, 2026
46eb51e
hosted/ftdi_bmp: Register generic FT2232H on Icebreaker for JTAG on M…
ALTracer Apr 19, 2025
1d343d4
jtag_devs: Register Hazard3/ice40 TAP as a RISC-V DTM
ALTracer Apr 19, 2025
5e3c7e7
riscv32: Add very basic support for Hazard3 SoC on Icebreaker SPRAM
ALTracer Apr 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Checks: 'bugprone-*,cert-*,clang-analyzer-*,misc-*,modernize-*,portability-*,performance-*,readability-*,-readability-magic-numbers,-readability-braces-around-statements,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-modernize-macro-to-enum,-bugprone-easily-swappable-parameters,-misc-include-cleaner,-misc-no-recursion,-misc-header-include-cycle'
Checks: 'bugprone-*,cert-*,clang-analyzer-*,misc-*,modernize-*,portability-*,performance-*,readability-*,-readability-magic-numbers,-readability-braces-around-statements,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-modernize-macro-to-enum,-bugprone-easily-swappable-parameters,-misc-include-cleaner,-misc-no-recursion,-misc-header-include-cycle,-clang-analyzer-core.FixedAddressDereference'
FormatStyle: 'none'
HeaderFilterRegex: '(src|upgrade)/.+'
#AnalyzeTemporaryDtors: false
Expand Down
55 changes: 55 additions & 0 deletions .codeberg/ci/build-firmware.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

matrix:
# Define a matrix of all the probe platforms to get full build coverage for all the firmware possibilities
BMD_PROBE:
- '96b_carbon'
- 'blackpill-f401cc'
- 'blackpill-f401ce'
- 'blackpill-f411ce'
- 'bluepill'
- 'bmp-v3'
- 'ctxlink'
- 'f072'
- 'f3'
- 'f4discovery'
- 'hydrabus'
- 'launchpad-icdi'
- 'native'
- 'native-uncommon'
- 'native-st-clones'
- 'native-riscv'
- 'native-remote'
- 'stlink'
- 'stlinkv3'
- 'swlink'

steps:
# Build the firmware for a given probe platform w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
export PATH="$$HOME/arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi/bin:$$PATH"
apt update
apt install -y libftdi1-dev libhidapi-dev libusb-1.0-0-dev

cc --version
arm-none-eabi-gcc --version
meson --version
ninja --version

meson setup build --cross-file cross-file/${BMD_PROBE}.ini --werror
meson compile -C build
34 changes: 34 additions & 0 deletions .codeberg/ci/build-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

matrix:
# Define a matrix of compilers to build BMDA with
C_COMPILER:
- gcc
- clang

steps:
# Build BMDA with a given compiler from the matrix w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
export CC="${C_COMPILER}"

$$CC --version
meson --version
ninja --version

meson setup build -Db_lto=true
meson compile -C build
26 changes: 26 additions & 0 deletions .codeberg/ci/build-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

steps:
# Build BMDA with a Meson config for Windows cross-builds w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
x86_64-w64-mingw32ucrt-gcc --version
meson --version
ninja --version

meson setup build --cross-file .codeberg/ci/x86_64-pc-windows-mingw-ucrt64.ini -Db_lto=true
meson compile -C build
34 changes: 34 additions & 0 deletions .codeberg/ci/x86_64-pc-windows-mingw-ucrt64.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[constants]
compileFlags = ['--sysroot', '/usr/x86_64-w64-mingw32ucrt']
linkFlags = ['--sysroot', '/usr/x86_64-w64-mingw32ucrt']

[binaries]
c = 'x86_64-w64-mingw32ucrt-gcc'
cpp = 'x86_64-w64-mingw32ucrt-g++'
# c_ld = 'x86_64-w64-mingw32ucrt-ld.bdf'
# cpp_ld = 'x86_64-w64-mingw32ucrt-ld.bdf'
ar = 'x86_64-w64-mingw32ucrt-ar'
as = 'x86_64-w64-mingw32ucrt-as'
rc = 'x86_64-w64-mingw32ucrt-rc'
windres = 'x86_64-w64-mingw32ucrt-windres'
strip = 'x86_64-w64-mingw32ucrt-strip'
objcopy = 'x86_64-w64-mingw32ucrt-objcopy'
objdump = 'x86_64-w64-mingw32ucrt-objdump'
size = 'x86_64-w64-mingw32ucrt-size'
cmake = 'false'
exe_wrapper = 'wine'

[properties]
needs_exe_wrapper = true

[built-in options]
c_args = compileFlags
cpp_args = compileFlags
c_link_args = linkFlags
cpp_link_args = linkFlags

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'amd64'
endian = 'little'
8 changes: 4 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ Information embedded in the description part of the commits doesn't count.

## Your checklist for this pull request

* [ ] I've read the [Code of Conduct](https://github.com/blackmagic-debug/blackmagic/blob/main/CODE_OF_CONDUCT.md)
* [ ] I've read the [guidelines for contributing](https://github.com/blackmagic-debug/blackmagic/blob/main/CONTRIBUTING.md) to this repository
* [ ] It builds for hardware native (see [Building the firmware](https://github.com/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-firmware))
* [ ] It builds as BMDA (see [Building the BMDA](https://github.com/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-app))
* [ ] I've read the [Code of Conduct](https://codeberg.org/blackmagic-debug/blackmagic/src/CODE_OF_CONDUCT.md)
* [ ] I've read the [guidelines for contributing](https://codeberg.org/blackmagic-debug/blackmagic/src/CONTRIBUTING.md) to this repository
* [ ] It builds for hardware native (see [Building the firmware](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-the-firmware))
* [ ] It builds as BMDA (see [Building the BMDA](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-app))
* [ ] I've tested it to the best of my ability
* [ ] My commit messages provide a useful short description of what the commits do

Expand Down
40 changes: 21 additions & 19 deletions .github/workflows/build-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,14 @@ jobs:
os:
- {id: ubuntu-24.04, name: noble}
compiler:
- '14.3.Rel1'
- '15.2.Rel1'
probe:
- '96b_carbon'
- 'blackpill-f401cc'
- 'blackpill-f401ce'
- 'blackpill-f411ce'
- 'bluepill'
- 'bmp-v3'
- 'ctxlink'
- 'f072'
- 'f3'
Expand Down Expand Up @@ -90,7 +91,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -112,7 +113,7 @@ jobs:

# Package up the artefacts and upload them
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_firmware-${{ matrix.probe }}
path: src/artefacts/*
Expand All @@ -121,7 +122,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-firmware-${{ matrix.probe }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -132,7 +133,7 @@ jobs:
needs: build-firmware
steps:
- name: Merge firmware artefacts
uses: actions/upload-artifact/merge@v4
uses: actions/upload-artifact/merge@v6
with:
name: blackmagic_firmware
pattern: blackmagic_firmware-*
Expand All @@ -150,9 +151,9 @@ jobs:
- {id: ubuntu-24.04, name: noble}
compiler:
- 'clang-17' # Native Clang compiler for the CI image
- 'clang-20' # Latest Clang compiler from the apt mirror
- 'clang-21' # Latest Clang compiler from the apt mirror
- 'gcc-12' # Native GCC compiler for the CI image
- 'gcc-13' # Latest GCC compiler from the toolchain PPA
- 'gcc-14' # Latest GCC compiler from the toolchain PPA
fail-fast: false

# Steps represent a sequence of tasks that will be executed as part of the job
Expand All @@ -172,7 +173,7 @@ jobs:
shell: bash
run: |
CXX=${CC/#gcc/g++}
sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-add-repository ppa:ubuntu-toolchain-r/ppa
sudo apt-get update
sudo apt-get install $CC $CXX
echo "CC=$CC" >> $GITHUB_ENV
Expand Down Expand Up @@ -219,7 +220,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -235,7 +236,7 @@ jobs:

# Package up the artefact and upload it
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_linux-${{ matrix.os.id }}-${{ matrix.compiler }}
path: src/artefacts/*
Expand All @@ -244,7 +245,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-linux-${{ matrix.os.id }}-${{ matrix.compiler }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -266,7 +267,7 @@ jobs:
strategy:
matrix:
os:
- windows-2022
- windows-2025
sys:
- {abi: ucrt64, env: ucrt-x86_64, compiler: gcc}
fail-fast: false
Expand Down Expand Up @@ -319,7 +320,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -336,7 +337,7 @@ jobs:

# Package up all the artefacts and upload them
- name: Archive firmware build artefacts as a zip
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_${{ matrix.os }}-${{ matrix.sys.abi }}-${{ matrix.sys.compiler }}
path: src/artefacts/*
Expand All @@ -345,7 +346,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-${{ matrix.os }}-${{ matrix.sys.abi }}-${{ matrix.sys.compiler }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -368,8 +369,9 @@ jobs:
strategy:
matrix:
os:
- {id: macos-13, name: '13'}
- {id: macos-14, name: '14'}
- {id: macos-15, name: '15'}
- {id: macos-26, name: '26'}
fail-fast: false

# Steps represent a sequence of tasks that will be executed as part of the job
Expand Down Expand Up @@ -397,7 +399,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -413,7 +415,7 @@ jobs:

# Package up the artefact and upload it
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_macos-${{ matrix.os.name }}
path: src/artefacts/*
Expand All @@ -422,7 +424,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-macos-${{ matrix.os.name }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand Down
Loading