mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
103 lines
3.0 KiB
YAML
103 lines
3.0 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@v2
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
- name: apt
|
|
run: sudo apt update && sudo apt install libudev-dev libsqlite3-dev protobuf-compiler libwxgtk3.0-gtk3-dev libfmt-dev
|
|
- name: make
|
|
run: CXXFLAGS="-Wp,-D_GLIBCXX_ASSERTIONS" make -j2 -C fluxengine
|
|
|
|
build-macos-current:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v2
|
|
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 -j2 -C fluxengine
|
|
|
|
- name: Upload build artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ github.event.repository.name }}.${{ github.sha }}
|
|
path: fluxengine/FluxEngine.pkg
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
update: true
|
|
msystem: MINGW32
|
|
install: >-
|
|
diffutils
|
|
make
|
|
mingw-w64-i686-fmt
|
|
mingw-w64-i686-gcc
|
|
mingw-w64-i686-libusb
|
|
mingw-w64-i686-pkg-config
|
|
mingw-w64-i686-protobuf
|
|
mingw-w64-i686-sqlite3
|
|
mingw-w64-i686-wxWidgets
|
|
mingw-w64-i686-zlib
|
|
mingw-w64-i686-nsis
|
|
zip
|
|
vim
|
|
- name: update-protobuf
|
|
run: |
|
|
pacman -U --noconfirm https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-protobuf-21.9-1-any.pkg.tar.zst
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: 'davidgiven/fluxengine'
|
|
path: 'fluxengine'
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: 'davidgiven/fluxengine-testdata'
|
|
path: 'fluxengine-testdata'
|
|
- name: build
|
|
run: make -j2 -C fluxengine
|
|
|
|
- name: nsis
|
|
run: |
|
|
cd fluxengine
|
|
strip fluxengine.exe -o fluxengine-stripped.exe
|
|
strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
|
|
makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
|
|
|
|
- name: zip
|
|
run: |
|
|
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@v2
|
|
with:
|
|
name: ${{ github.event.repository.name }}.${{ github.sha }}
|
|
path: fluxengine/fluxengine-windows.zip
|