ci: create builds using devcontainer

This change makes it so that CI/CD builds against all supported platforms,
utilizing the devcontainer as its environment rather than setting up one
separately. This allows to have the CICD builds and dev local builds more
similar and reduces the maintenance overhead.

Co-authored-by: Peter Buchegger <peter@pbuchegger.at>
This commit is contained in:
Ryan Turner 2025-09-07 15:46:51 -05:00 committed by Silvano Seva
parent 26b15d46f3
commit e1994357f8
1 changed files with 35 additions and 46 deletions

View File

@ -9,62 +9,51 @@ env:
jobs: jobs:
build: build:
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
- name: install-deps - name: Compile using devcontainer
run: | uses: devcontainers/ci@v0.3
sudo apt update with:
sudo apt install -y git pkg-config build-essential meson libsdl2-dev libreadline-dev dfu-util cmake libusb-1.0-0 libusb-1.0-0-dev libcodec2-dev codec2 runCmd: |
- name: install miosix meson setup build_linux
run: | meson setup --cross-file cross_arm.txt build_arm
wget https://miosix.org/toolchain/MiosixToolchainInstaller.run meson setup --cross-file cross_cm7.txt build_cm7
chmod +x MiosixToolchainInstaller.run meson compile -C build_linux openrtx_linux
sudo sh MiosixToolchainInstaller.run meson compile -C build_linux openrtx_linux_smallscreen
wget https://github.com/v0l/radio_tool/releases/download/v$RADIO_TOOL_VERSION/radio_tool-$RADIO_TOOL_VERSION-Linux.deb meson compile -C build_linux openrtx_linux_mod17
sudo dpkg -i radio_tool-$RADIO_TOOL_VERSION-Linux.deb meson compile -C build_arm openrtx_cs7000_bin
- name: Get opengd77 for wrapping meson compile -C build_arm openrtx_cs7000_dfu
run: | meson compile -C build_arm openrtx_dm1701_wrap
git clone https://github.com/open-ham/OpenGD77.git /tmp/OpenGD77 meson compile -C build_arm openrtx_dm1801_wrap
- name: setup meson meson compile -C build_arm openrtx_md3x0_wrap
run: | meson compile -C build_arm openrtx_md9600_wrap
cd ${{github.workspace}} meson compile -C build_arm openrtx_mduv3x0_wrap
meson setup build_linux meson compile -C build_arm openrtx_mod17_wrap
meson setup --cross-file cross_arm.txt build_arm meson compile -C build_arm openrtx_gd77_wrap
meson setup --cross-file cross_cm7.txt build_cm7 meson compile -C build_cm7 openrtx_cs7000p_wrap
- name: Compile linux meson compile -C build_cm7 openrtx_cs7000p_dfu
run: | chmod -R 777 *
meson compile -C build_linux openrtx_linux
meson compile -C build_linux openrtx_linux_smallscreen
meson compile -C build_linux openrtx_linux_mod17
- name: Compile arm cortex m4 targets
run: |
export PATH=$PATH:/tmp/OpenGD77/tools/Python/FirmwareLoader:/tmp/OpenGD77/firmware/tools
echo $PATH
meson compile -C build_arm openrtx_md3x0_wrap
meson compile -C build_arm openrtx_mduv3x0_wrap
meson compile -C build_arm openrtx_md9600_wrap
meson compile -C build_arm openrtx_gd77_wrap
meson compile -C build_arm openrtx_dm1801_wrap
meson compile -C build_arm openrtx_mod17_wrap
meson compile -C build_arm openrtx_cs7000_wrap
meson compile -C build_arm openrtx_dm1701_wrap
- name: Compile arm cortex m7 targets
run: |
export PATH=$PATH:/tmp/OpenGD77/tools/Python/FirmwareLoader:/tmp/OpenGD77/firmware/tools
echo $PATH
meson compile -C build_cm7 openrtx_cs7000p_wrap
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: release-bins name: release-bins
path: | path: |
${{github.workspace}}/build_arm/openrtx_*_wrap ${{github.workspace}}/build_cm7/openrtx_cs7000p_wrap.bin
${{github.workspace}}/build_cm7/openrtx_cs7000p_dfu
${{github.workspace}}/build_arm/openrtx_cs7000_bin
${{github.workspace}}/build_arm/openrtx_cs7000_dfu
${{github.workspace}}/build_arm/openrtx_dm1701_wrap
${{github.workspace}}/build_arm/openrtx_dm1801_wrap.sgl
${{github.workspace}}/build_arm/openrtx_gd77_wrap.sgl
${{github.workspace}}/build_linux/openrtx_linux ${{github.workspace}}/build_linux/openrtx_linux
${{github.workspace}}/build_linux/openrtx_linux_smallscreen ${{github.workspace}}/build_arm/openrtx_md3x0_wrap
${{github.workspace}}/build_linux/openrtx_linux_mod17 ${{github.workspace}}/build_arm/openrtx_md9600_wrap
${{github.workspace}}/build_arm/openrtx_mduv3x0_wrap
${{github.workspace}}/build_arm/openrtx_mod17_wrap
if-no-files-found: error
build-zephyr: build-zephyr:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps: