Skip to content

Fix the use of the runtime enum tools #710

Fix the use of the runtime enum tools

Fix the use of the runtime enum tools #710

Workflow file for this run

name: CI Matrix
on:
push:
branches: [ "master", "release" ]
pull_request:
branches: [ "master", "release" ]
permissions:
contents: read
jobs:
build-and-test:
runs-on: ${{ startsWith(matrix.platform, 'arm') && 'ubuntu-24.04-arm' || format('{0}-latest', matrix.os) }} # GitHub-hosted runners
strategy:
matrix:
os: [windows, ubuntu]
compiler: [dmd, ldc]
platform: [x86, x86_64, arm, arm64, riscv64]
exclude:
# No point cross-compiling on Windows; linux is so much faster!
- os: windows
platform: arm
- os: windows
platform: arm64
- os: windows
platform: riscv64
# TODO: DMD ARM64 support is WIP; remove when it releases...
- compiler: dmd
platform: arm64
- compiler: dmd
platform: arm
- platform: arm # TODO: not yet working...
- platform: riscv64 # TODO: not yet working...
fail-fast: false
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
fetch-depth: 1
- name: Setup D Compiler
uses: dlang-community/setup-dlang@v2
with:
compiler: ${{ matrix.compiler == 'dmd' && 'dmd-master' || matrix.compiler }}
# 32-bit linux needs libs to link and run tests...
- name: Install 32-bit Toolchains (Linux)
if: ${{ matrix.os == 'ubuntu' && matrix.platform == 'x86' }}
run: sudo apt-get update && sudo apt-get install -y gcc-multilib
- name: Install 32-bit ARM Toolchains (Linux)
if: ${{ matrix.os == 'ubuntu' && matrix.platform == 'arm' }}
run: sudo dpkg --add-architecture armhf && sudo apt-get update && sudo apt-get install -y libstdc++6:armhf
- name: Build release
if: ${{ github.ref == 'refs/heads/release' }}
run: make PLATFORM=${{ matrix.platform }} CONFIG=release OS=${{ matrix.os }} COMPILER=${{ matrix.compiler }}
- name: Build unittest
run: make PLATFORM=${{ matrix.platform }} CONFIG=unittest OS=${{ matrix.os }} COMPILER=${{ matrix.compiler }}
- name: Test
if: ${{ success() && (matrix.platform == 'x86_64' || matrix.platform == 'x86' || matrix.platform == 'arm64') }}
run: ./bin/${{ matrix.platform }}_unittest/openwatt_test
- name: Upload release binary
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/release' && matrix.compiler == 'ldc' }}
uses: actions/upload-artifact@v4
with:
name: enum_${{ matrix.os }}_${{ matrix.platform }}
path: ./bin/${{ matrix.platform }}_release/${{ matrix.os == 'windows' && 'openwatt.exe' || 'openwatt' }}