feat: add dlm-auth command for authenticated DLM state transitions #72
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: CI | |
| on: | |
| push: | |
| branches: [master, win32_port] | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| format: | |
| name: Check formatting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install clang-format | |
| run: sudo apt-get install -y clang-format | |
| - name: Check formatting | |
| run: | | |
| find src tests -name '*.c' -o -name '*.h' | xargs clang-format --dry-run --Werror | |
| shellcheck: | |
| name: Shellcheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install shellcheck | |
| run: sudo apt-get install -y shellcheck | |
| - name: Run shellcheck | |
| run: shellcheck install.sh scripts/*.sh | |
| build: | |
| name: Build and test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y meson ninja-build libcmocka-dev help2man | |
| - name: Configure | |
| run: meson setup build | |
| - name: Build | |
| run: meson compile -C build | |
| - name: Run tests | |
| run: meson test -C build --print-errorlogs | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-linux-x86_64 | |
| path: build/radfu | |
| build-static: | |
| name: Build static | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y meson ninja-build help2man | |
| - name: Configure static build | |
| run: meson setup build-static -Dstatic=true -Dtests=false | |
| - name: Build static | |
| run: meson compile -C build-static | |
| - name: Verify static linking | |
| run: file build-static/radfu | grep -q "statically linked" | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-linux-x86_64-static | |
| path: build-static/radfu | |
| build-linux-arm64: | |
| name: Build Linux ARM64 | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y meson ninja-build libcmocka-dev | |
| - name: Configure | |
| run: meson setup build | |
| - name: Build | |
| run: meson compile -C build | |
| - name: Run tests | |
| run: meson test -C build --print-errorlogs | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-linux-arm64 | |
| path: build/radfu | |
| build-linux-arm64-static: | |
| name: Build Linux ARM64 static | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y meson ninja-build | |
| - name: Configure static build | |
| run: meson setup build-static -Dstatic=true -Dtests=false | |
| - name: Build static | |
| run: meson compile -C build-static | |
| - name: Verify static linking | |
| run: file build-static/radfu | grep -q "statically linked" | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-linux-arm64-static | |
| path: build-static/radfu | |
| build-macos: | |
| name: Build macOS | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: brew install meson ninja | |
| - name: Configure | |
| run: meson setup build -Dtests=false | |
| - name: Build | |
| run: meson compile -C build | |
| - name: Verify binary | |
| run: file build/radfu | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-macos-arm64 | |
| path: build/radfu | |
| build-windows: | |
| name: Build Windows | |
| runs-on: windows-latest | |
| env: | |
| VCPKG_ROOT: C:\vcpkg | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Meson | |
| run: pip install meson ninja | |
| - name: Setup MSVC | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install cmocka via vcpkg | |
| run: | | |
| vcpkg install cmocka:x64-windows | |
| vcpkg integrate install | |
| - name: Configure | |
| run: | | |
| $env:PKG_CONFIG_PATH = "C:\vcpkg\installed\x64-windows\lib\pkgconfig" | |
| meson setup build --pkg-config-path="C:\vcpkg\installed\x64-windows\lib\pkgconfig" --cmake-prefix-path="C:\vcpkg\installed\x64-windows" | |
| - name: Build | |
| run: meson compile -C build | |
| - name: Run tests | |
| run: meson test -C build --print-errorlogs | |
| - name: Verify binary | |
| run: Get-Item build\radfu.exe | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: radfu-windows-x86_64 | |
| path: build/radfu.exe |