mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-24 11:11:02 -07:00
127 lines
4.4 KiB
YAML
127 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
|
|
- 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
|
|
- 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
|
|
fluxengine/FluxEngine.app.zip
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- name: setup WSL
|
|
run: |
|
|
curl -L https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL/releases/download/41.0.0/Fedora-Remix-for-WSL-SL_41.0.0.0_x64_arm64.msixbundle -o fedora.msixbundle
|
|
unzip fedora.msixbundle Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix
|
|
unzip Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix install.tar.gz
|
|
wsl --update
|
|
wsl --set-default-version 1
|
|
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 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 png2ico ninja-build'
|
|
|
|
- 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
|