mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
125 lines
4.4 KiB
YAML
125 lines
4.4 KiB
YAML
name: C/C++ CI
|
|
|
|
on: [push]
|
|
|
|
concurrency:
|
|
group: environment-${{ github.head_ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-linux:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
- name: apt
|
|
run: |
|
|
sudo apt install libudev-dev libsqlite3-dev protobuf-compiler libwxgtk3.0-gtk3-dev libfmt-dev libprotobuf-dev wx-common
|
|
- name: make
|
|
run: CXXFLAGS="-Wp,-D_GLIBCXX_ASSERTIONS" make -j`nproc` -C fluxengine
|
|
|
|
build-linux-debian-11:
|
|
runs-on: ubuntu-22.04
|
|
container: debian:11
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
- name: apt update
|
|
run: apt update
|
|
- name: apt
|
|
run: >
|
|
apt install -y python3 make xz-utils python3 python3-hamcrest
|
|
protobuf-compiler libprotobuf-dev libsqlite3-dev
|
|
libfmt-dev libprotobuf-dev wx-common pkg-config
|
|
libudev-dev g++ libwxgtk3.0-gtk3-dev
|
|
- name: make
|
|
run: make -C fluxengine
|
|
|
|
build-macos-current:
|
|
strategy:
|
|
matrix:
|
|
runs-on: [macos-13, macos-latest]
|
|
runs-on: ${{ matrix.runs-on }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
- name: brew
|
|
run: |
|
|
brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg
|
|
- name: make
|
|
run: gmake -C fluxengine -j2
|
|
- name: Upload build artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ github.event.repository.name }}.${{ github.sha }}.fluxengine.${{ runner.arch }}.pkg
|
|
path: fluxengine/FluxEngine.pkg
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- name: setup WSL
|
|
run: |
|
|
curl -L https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/releases/download/40.1.0/Fedora-Remix-for-WSL-SL_40.1.0.0_x64_arm64.msixbundle -o fedora.msixbundle
|
|
unzip fedora.msixbundle Fedora-Remix-for-WSL-SL_40.1.0.0_x64.msix
|
|
unzip Fedora-Remix-for-WSL-SL_40.1.0.0_x64.msix install.tar.gz
|
|
wsl --update
|
|
wsl --set-default-version 2
|
|
wsl --import fedora fedora install.tar.gz
|
|
wsl --set-default fedora
|
|
wsl sh -c 'dnf -y install https://github.com/rpmsphere/noarch/raw/master/r/rpmsphere-release-40-1.noarch.rpm'
|
|
wsl sh -c 'dnf -y install --setop=install_weak_deps=False gcc gcc-c++ protobuf-c-compiler protobuf-devel fmt-devel systemd-devel sqlite-devel wxGTK-devel mingw32-gcc mingw32-gcc-c++ mingw32-zlib-static mingw32-protobuf-static mingw32-sqlite-static mingw32-wxWidgets3-static mingw32-libpng-static mingw32-libjpeg-static mingw32-libtiff-static mingw32-nsis qt-devel mingw32-png2ico'
|
|
|
|
- name: fix line endings
|
|
run: |
|
|
git config --global core.autocrlf false
|
|
git config --global core.eol lf
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
|
|
- name: run
|
|
run: |
|
|
wsl sh -c 'make -C fluxengine BUILDTYPE=windows -j$(nproc)'
|
|
|
|
- name: nsis
|
|
run: |
|
|
wsl sh -c 'cd fluxengine && strip fluxengine.exe -o fluxengine-stripped.exe'
|
|
wsl sh -c 'cd fluxengine && strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe'
|
|
wsl sh -c 'cd fluxengine && makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi'
|
|
|
|
- name: zip
|
|
run: |
|
|
wsl sh -c 'cd fluxengine && zip -9 fluxengine-windows.zip fluxengine.exe fluxengine-gui.exe upgrade-flux-file.exe brother120tool.exe brother240tool.exe FluxEngine.cydsn/CortexM3/ARM_GCC_541/Release/FluxEngine.hex fluxengine-installer.exe'
|
|
|
|
- name: Upload build artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ github.event.repository.name }}.${{ github.sha }}.windows.zip
|
|
path: fluxengine/fluxengine-windows.zip
|