From 704bdc35db589842c09bf39ebbf9cee6d1a43393 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Mon, 15 Jun 2026 00:42:33 +0200 Subject: [PATCH] ci: fix integration + bundle jobs on their first GitHub run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These two jobs moved from the old Gitea runner and ran for the first time on GitHub ubuntu-latest in this branch's test workflow; both failed on environment differences, not on product regressions. integration_test: the GitHub runner exposes BOTH a `linux` desktop and a `chrome` web device, so a bare `flutter test integration_test/...` aborts with "More than one device connected" before compiling. The Gitea runner / dev box only had the one device, so it was latent. Pin `-d linux` in ci/test_integration.sh. Verified locally: the full suite boots and passes. smoke-bundle: the `smoke-bundle` make target was the only test target missing the `gen-build-info` prerequisite, so build_info.g.dart was absent and the release build failed to compile (clideVersion/clideCommit/clideName/ clideTagline/... undefined). Add the prereq. Verified locally: the release bundle now builds (`✓ Built .../release/bundle/clide`); the xvfb run step is CI-only. Co-Authored-By: Claude Opus 4.8 (1M context) --- Makefile | 2 +- ci/test_integration.sh | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 67561adf..8779f579 100644 --- a/Makefile +++ b/Makefile @@ -148,7 +148,7 @@ changelog-gate: ## Changelog concision gate — fails on `## [Unreleased]` bulle ci/changelog_gate.sh .PHONY: smoke-bundle -smoke-bundle: ## Build Linux release bundle and run it under xvfb for 5s. +smoke-bundle: gen-build-info ## Build Linux release bundle and run it under xvfb for 5s. ci/smoke_bundle.sh # -- web UI harness ------------------------------------------------------ diff --git a/ci/test_integration.sh b/ci/test_integration.sh index b2fec5c9..fdd241c2 100755 --- a/ci/test_integration.sh +++ b/ci/test_integration.sh @@ -3,10 +3,16 @@ # start" regression gate. Flutter integration tests prefer one file at # a time on desktop; we iterate to avoid the "Unable to start the app" # error that hits when they run as a batch. +# +# -d linux pins the desktop device explicitly: the GitHub ubuntu-latest +# runner exposes BOTH a linux desktop AND a chrome web device, so a bare +# `flutter test integration_test/...` aborts with "More than one device +# connected" before it ever compiles (the dev box / old Gitea runner only +# had the one device, so this was latent until CI moved to GitHub). set -euo pipefail cd "$(dirname "$0")/.." for f in integration_test/*_test.dart; do echo "==> integration_test: $f" - flutter test "$f" + flutter test -d linux "$f" done