6666 run : pnpm install --frozen-lockfile
6767
6868 - name : Build with Turbo
69- run : pnpm turbo build --filter=testing-view --filter=competition-view
69+ run : pnpm turbo build --filter=testing-view --filter=competition-view --filter=flashing-view
7070
7171 - uses : actions/upload-artifact@v4
7272 with :
8080 path : frontend/competition-view/dist/**
8181 retention-days : 1
8282
83+ - uses : actions/upload-artifact@v4
84+ with :
85+ name : flashing-dist
86+ path : frontend/flashing-view/dist/**
87+ retention-days : 1
88+
8389 build-backend :
8490 name : Build Backend - ${{ matrix.os }}
8591 needs : determine-version
@@ -125,22 +131,103 @@ jobs:
125131 path : electron-app/binaries/${{ matrix.binary }}
126132 retention-days : 1
127133
134+ build-blcu :
135+ name : Build BLCU - ${{ matrix.os }}
136+ needs : determine-version
137+ runs-on : ${{ matrix.os }}
138+ strategy :
139+ fail-fast : true
140+ matrix :
141+ include :
142+ - os : windows-latest
143+ binary : blcu-programming-windows-amd64.exe
144+ binary-base : blcu-programming-windows-amd64
145+ - os : ubuntu-latest
146+ binary : blcu-programming-linux-amd64
147+ binary-base : blcu-programming-linux-amd64
148+ - os : macos-latest
149+ binary : blcu-programming-darwin-arm64
150+ binary-base : blcu-programming-darwin-arm64
151+ - os : macos-15-intel
152+ binary : blcu-programming-darwin-amd64
153+ binary-base : blcu-programming-darwin-amd64
154+ steps :
155+ - uses : actions/checkout@v4
156+
157+ - uses : actions/setup-python@v5
158+ with :
159+ python-version : " 3.11"
160+
161+ - name : Create virtual environment
162+ working-directory : blcu-programming
163+ run : python -m venv .venv-build
164+
165+ - name : Install dependencies
166+ working-directory : blcu-programming
167+ shell : bash
168+ run : |
169+ if [ "${{ runner.os }}" = "Windows" ]; then
170+ .venv-build/Scripts/pip install -r requirements-build.txt
171+ else
172+ .venv-build/bin/pip install -r requirements-build.txt
173+ fi
174+
175+ - name : Build with PyInstaller
176+ working-directory : blcu-programming
177+ shell : bash
178+ run : |
179+ if [ "${{ runner.os }}" = "Windows" ]; then
180+ PYTHON=".venv-build/Scripts/python"
181+ else
182+ PYTHON=".venv-build/bin/python"
183+ fi
184+ if [ "${{ runner.os }}" = "Windows" ]; then
185+ PATH_SEP=";"
186+ else
187+ PATH_SEP=":"
188+ fi
189+ "$PYTHON" -m PyInstaller \
190+ --clean \
191+ --noconfirm \
192+ --onefile \
193+ --name "${{ matrix.binary-base }}" \
194+ --distpath "../electron-app/binaries" \
195+ --hidden-import uvicorn.loops.auto \
196+ --hidden-import uvicorn.protocols.http.auto \
197+ --hidden-import uvicorn.protocols.websockets.auto \
198+ --hidden-import uvicorn.lifespan.on \
199+ --hidden-import multipart \
200+ --hidden-import multipart.multiparser \
201+ --paths "." \
202+ --add-data "BLCU-config.json${PATH_SEP}." \
203+ api/main.py
204+
205+ - uses : actions/upload-artifact@v4
206+ with :
207+ name : blcu-${{ matrix.os }}
208+ path : electron-app/binaries/${{ matrix.binary }}
209+ retention-days : 1
210+
128211 package-and-upload :
129212 name : Package & Upload - ${{ matrix.os }}
130- needs : [determine-version, create-draft-release, build-frontend, build-backend]
213+ needs : [determine-version, create-draft-release, build-frontend, build-backend, build-blcu ]
131214 runs-on : ${{ matrix.os }}
132215 strategy :
133216 fail-fast : true
134217 matrix :
135218 include :
136219 - os : windows-latest
137220 binary : backend-windows-amd64.exe
221+ blcu-binary : blcu-programming-windows-amd64.exe
138222 - os : ubuntu-latest
139223 binary : backend-linux-amd64
224+ blcu-binary : blcu-programming-linux-amd64
140225 - os : macos-latest
141226 binary : backend-darwin-arm64
227+ blcu-binary : blcu-programming-darwin-arm64
142228 - os : macos-15-intel
143229 binary : backend-darwin-amd64
230+ blcu-binary : blcu-programming-darwin-amd64
144231 steps :
145232 - uses : actions/checkout@v4
146233
@@ -150,6 +237,12 @@ jobs:
150237 name : backend-${{ matrix.os }}
151238 path : electron-app/binaries
152239
240+ - name : Download BLCU binary
241+ uses : actions/download-artifact@v4
242+ with :
243+ name : blcu-${{ matrix.os }}
244+ path : electron-app/binaries
245+
153246 - name : Set executable permissions (Unix)
154247 if : runner.os != 'Windows'
155248 run : chmod +x electron-app/binaries/*
@@ -166,6 +259,12 @@ jobs:
166259 name : competition-dist
167260 path : electron-app/renderer/competition-view
168261
262+ - name : Download flashing-view dist
263+ uses : actions/download-artifact@v4
264+ with :
265+ name : flashing-dist
266+ path : electron-app/renderer/flashing-view
267+
169268 - uses : pnpm/action-setup@v4
170269 with :
171270 version : 10.26.0
0 commit comments