|
216 | 216 | hash = "sha256-mROaUYqcOa+XePl4CzM/zM/mE21ejM2UhyQSYc8emc4="; |
217 | 217 | }; |
218 | 218 |
|
219 | | - intermittent-tracker-service = workingDir: script: { |
| 219 | + intermittent-tracker-service = workingDir: app: { |
220 | 220 | # Wait for networking |
221 | 221 | wants = ["network-online.target"]; |
222 | 222 | after = ["network-online.target"]; |
|
225 | 225 | wantedBy = ["multi-user.target"]; |
226 | 226 |
|
227 | 227 | path = ["/run/current-system/sw"]; |
228 | | - inherit script; |
| 228 | + script = '' |
| 229 | + FLASK_DEBUG=1 ${app}/bin/intermittent_tracker |
| 230 | + ''; |
229 | 231 |
|
230 | 232 | serviceConfig = { |
231 | 233 | WorkingDirectory = workingDir; |
232 | 234 | Restart = "on-failure"; |
233 | 235 | }; |
234 | 236 | }; |
235 | | - # v1 service requires manual deployment of the app: |
236 | | - # $ git clone https://github.com/servo/intermittent-tracker.git <staging|prod> |
237 | | - # $ cd <staging|prod> |
238 | | - # $ uv venv |
239 | | - # $ . .venv/bin/activate |
240 | | - # $ uv pip install -r requirements.txt |
241 | | - # $ cp config.json.example config.json |
242 | | - intermittent-tracker-service-v1 = workingDir: |
243 | | - intermittent-tracker-service workingDir '' |
244 | | - . .venv/bin/activate |
245 | | - FLASK_DEBUG=1 python3 -m intermittent_tracker.flask_server |
246 | | - ''; |
247 | | - intermittent-tracker-service-v2 = workingDir: app: |
248 | | - intermittent-tracker-service workingDir '' |
249 | | - FLASK_DEBUG=1 ${app}/bin/intermittent_tracker |
250 | | - ''; |
251 | 237 |
|
252 | 238 | intermittent-tracker-staging = pkgs.callPackage ./python-app.nix { |
253 | 239 | src = pkgs.fetchFromGitHub { |
|
258 | 244 | }; |
259 | 245 | packageName = "intermittent-tracker"; |
260 | 246 | }; |
| 247 | + |
| 248 | + intermittent-tracker-prod = pkgs.callPackage ./python-app.nix { |
| 249 | + src = pkgs.fetchFromGitHub { |
| 250 | + owner = "servo"; |
| 251 | + repo = "intermittent-tracker"; |
| 252 | + rev = "42d55fdcce5e1d4e3aec70e4cfeb575d8569c8d3"; |
| 253 | + hash = "sha256-L8Sk1aL3Na0JFymFj07eCcFIUZ0uYLt1ED2DDKnZ4VU="; |
| 254 | + }; |
| 255 | + packageName = "intermittent-tracker"; |
| 256 | + }; |
261 | 257 | in { |
262 | 258 | # For benchmarking: disable CPU frequency boost, offline SMT siblings, etc. |
263 | 259 | # Process affinity will be isolated externally via `isolcpus`. |
|
278 | 274 | }; |
279 | 275 | }; |
280 | 276 |
|
| 277 | + # mkdir -p /config/intermittent-tracker/staging |
| 278 | + # cat /config/intermittent-tracker/staging/config.json |
281 | 279 | intermittent-tracker-staging = lib.mkIf hasIntermittentTracker |
282 | | - (intermittent-tracker-service-v2 |
| 280 | + (intermittent-tracker-service |
283 | 281 | "/config/intermittent-tracker/staging" |
284 | 282 | intermittent-tracker-staging); |
| 283 | + # mkdir -p /config/intermittent-tracker/prod |
| 284 | + # cat /config/intermittent-tracker/prod/config.json |
285 | 285 | intermittent-tracker-prod = lib.mkIf hasIntermittentTracker |
286 | | - (intermittent-tracker-service-v1 |
287 | | - "/config/intermittent-tracker/prod"); |
| 286 | + (intermittent-tracker-service |
| 287 | + "/config/intermittent-tracker/prod" |
| 288 | + intermittent-tracker-prod); |
288 | 289 |
|
289 | 290 | monitor = { |
290 | 291 | # Wait for networking |
|
0 commit comments