11name : Autorelease
22
3- concurrency :
3+ concurrency :
44 group : environment-release-${{ github.head_ref }}
55 cancel-in-progress : true
66
1212jobs :
1313 dev-release :
1414 runs-on : windows-latest
15+ defaults :
16+ run :
17+ shell : msys2 {0}
1518
1619 steps :
17- - name : setup WSL
18- run : |
19- 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
20- unzip fedora.msixbundle Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix
21- unzip Fedora-Remix-for-WSL-SL_41.0.0.0_x64.msix install.tar.gz
22- wsl --update
23- wsl --set-default-version 1
24- wsl --import fedora fedora install.tar.gz
25- wsl --set-default fedora
26- wsl sh -c 'dnf -y install https://github.com/rpmsphere/noarch/raw/master/r/rpmsphere-release-40-1.noarch.rpm'
27- 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'
28-
29- - name : fix line endings
30- run : |
31- git config --global core.autocrlf false
32- git config --global core.eol lf
33-
34- - uses : actions/checkout@v4
35- with :
36- repository : ' davidgiven/fluxengine'
37- path : ' fluxengine'
38-
39- - name : run
40- run : |
41- wsl sh -c 'cd fluxengine && make BUILDTYPE=windows -j$(nproc)'
42-
43- - name : nsis
44- run : |
45- wsl sh -c 'cd fluxengine && strip fluxengine.exe -o fluxengine-stripped.exe'
46- wsl sh -c 'cd fluxengine && strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe'
47- wsl sh -c 'cd fluxengine && makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi'
48-
49- - name : zip
50- run : |
51- 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'
52-
53- - name : date
54- run : |
55- echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV}
56-
57- - name : tag
58- uses : EndBug/latest-tag@latest
59- with :
60- tag-name : dev
61- force-branch : false
62- git-directory : ' fluxengine'
63- env :
64- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
65-
66- - name : delete-old-assets
67- uses : mknejp/delete-release-assets@v1
68- with :
69- token : ${{ github.token }}
70- tag : dev
71- assets : |
72- fluxengine.zip
73- fluxengine-installer.exe
74- fail-if-no-assets : false
75-
76- - name : release
77- uses : softprops/action-gh-release@v1
78- with :
79- name : Development build ${{ env.RELEASE_DATE }}
80- files : |
81- fluxengine/fluxengine.zip
82- fluxengine/fluxengine-installer.exe
83- tag_name : dev
84- env :
85- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
20+ - uses : msys2/setup-msys2@v2
21+ with :
22+ msystem : mingw64
23+ update : true
24+ install : |
25+ python diffutils ninja make zip
26+ pacboy : |
27+ protobuf:p pkgconf:p curl-winssl:p file:p glfw:p mbedtls:p
28+ sqlite:p freetype:p boost:p gcc:p binutils:p nsis:p abseil-cpp:p
29+
30+ - name : debug
31+ run : |
32+ pacboy -Q --info protobuf:p
33+ cat /mingw64/lib/pkgconfig/protobuf.pc
34+ /mingw64/bin/pkg-config.exe protobuf --cflags
35+ /mingw64/bin/pkg-config.exe protobuf --cflags --static
36+
37+ - uses : actions/checkout@v4
38+ with :
39+ repository : ' davidgiven/fluxengine'
40+ path : ' fluxengine'
41+ submodules : ' true'
42+
43+ - name : run
44+ run : |
45+ make -C fluxengine BUILDTYPE=windows AB_SANDBOX=no
46+
47+ - name : nsis
48+ run : |
49+ cd fluxengine
50+ strip fluxengine.exe -o fluxengine-stripped.exe
51+ strip fluxengine-gui.exe -o fluxengine-gui-stripped.exe
52+ makensis -v2 -nocd -dOUTFILE=fluxengine-installer.exe extras/windows-installer.nsi
53+
54+ - name : zip
55+ run : |
56+ 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'
57+
58+ - name : date
59+ run : |
60+ echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV}
61+
62+ - name : tag
63+ uses : EndBug/latest-tag@latest
64+ with :
65+ tag-name : dev
66+ force-branch : false
67+ git-directory : ' fluxengine'
68+ env :
69+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
70+
71+ - name : delete-old-assets
72+ uses : mknejp/delete-release-assets@v1
73+ with :
74+ token : ${{ github.token }}
75+ tag : dev
76+ assets : |
77+ fluxengine.zip
78+ fluxengine-installer.exe
79+ fail-if-no-assets : false
80+
81+ - name : release
82+ uses : softprops/action-gh-release@v1
83+ with :
84+ name : Development build ${{ env.RELEASE_DATE }}
85+ files : |
86+ fluxengine/fluxengine.zip
87+ fluxengine/fluxengine-installer.exe
88+ tag_name : dev
89+ env :
90+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
8691
8792 build-macos :
8893 strategy :
8994 matrix :
90- runs-on : [macos-13 , macos-latest ]
95+ runs-on : [ macos-15 , macos-15-intel ]
9196 runs-on : ${{ matrix.runs-on }}
9297 steps :
9398 - uses : actions/checkout@v4
99+ with :
100+ submodules : ' true'
94101
95102 - name : brew
96- run : brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg
103+ run : |
104+ brew install sqlite pkg-config libusb protobuf wxwidgets fmt make coreutils dylibbundler libjpeg libmagic nlohmann-json cli11 boost glfw3 md4c ninja python freetype2 mbedtls
105+ brew upgrade
97106
98107 - name : make
99- run : |
100- gmake
101- mv FluxEngine.pkg FluxEngine-${{ runner.arch }}.pkg
102- mv FluxEngine.app.zip FluxEngine-${{ runner.arch }}.app.zip
108+ run : gmake
103109
104110 - name : tag
105111 uses : EndBug/latest-tag@latest
@@ -114,7 +120,7 @@ jobs:
114120 with :
115121 token : ${{ github.token }}
116122 tag : dev
117- assets : |
123+ assets : |
118124 FluxEngine-${{ runner.arch }}.pkg
119125 FluxEngine-${{ runner.arch }}.app.zip
120126 fail-if-no-assets : false
0 commit comments