Skip to content

chore(ci): target Dependabot at develop and add PR checks - #92

Merged
martinbogo merged 1 commit into
developfrom
chore/ci-pr-checks-and-dependabot
Jul 27, 2026
Merged

chore(ci): target Dependabot at develop and add PR checks#92
martinbogo merged 1 commit into
developfrom
chore/ci-pr-checks-and-dependabot

Conversation

@martinbogo

Copy link
Copy Markdown
Collaborator

Two gaps found while reviewing the open PRs. Both are causes, not symptoms.

1. Dependabot had no config, so it targeted master

There is no .github/dependabot.yml on any branch (verified with git log --all). Dependabot therefore fell back to the repository default branch, which is master. That is why all four open bumps (#77, #79, #80, #90) arrived targeting the release-only branch and had to be retargeted by hand before they could be merged.

Adds a config with target-branch: develop for npm (/web-portal), gomod (the web portal's Go backend) and github-actions.

Two deliberate choices in the npm entry:

  • Grouped dev-dependency minor/patch updates. All of these edit web-portal/package-lock.json, so separate PRs conflict with one another and must be merged one at a time with a rebase in between - exactly what happened this round. Grouping keeps routine churn to a single lockfile change.
  • Major bumps of vite and @sveltejs/vite-plugin-svelte are ignored. chore(deps-dev): bump vite and @sveltejs/vite-plugin-svelte in /web-portal #80 is the reason: presented as chore(deps-dev), it is actually vite 7→8 plus plugin 6→7, which swaps the bundler from rollup+esbuild to rolldown (54 packages removed, 30 added) and quietly carries a @tailwindcss/vite bump. That changes the JavaScript we ship inside the firmware image and deserves a deliberate decision. Note ignore rules do not suppress security updates, which still come through.

2. Nothing ran on pull requests

Confirmed across all four existing workflows: build-swu and develop-test-build are workflow_dispatch, auto-release is push-on-tag, gh-pages-deploy is push-to-master. statusCheckRollup was empty on every open PR - their BLOCKED state is REVIEW_REQUIRED, not a failing check.

So npm ci && npm run build had never run on any of the four dependency PRs. A bump that breaks the frontend would only surface at release time, when the Docker image build fails.

Adds a pull_request workflow with two cheap jobs:

  • web-portal - npm ci + npm run build, skipped unless web-portal/ actually changed. Node 22 to match the Dockerfile's build-web-ui stage.
  • python-tests - the existing pytest tests/ -q suite (28 tests).

Deliberately not building the SWU here: that needs the ARM toolchain and is far too slow for a PR gate.

Verification

Both files parse as valid YAML. I also ran the frontend build locally against the just-merged develop (dompurify 3.4.12, kit 2.69.3, svelte 5.56.5) and it succeeds - so this workflow should be green on arrival rather than landing red.

Two gaps found while reviewing the open PRs.

1. There was no .github/dependabot.yml at all, so Dependabot fell back to
   the repository default branch (master) and opened every update against
   it. master is release-only here, so all four open bumps (#77, #79, #80,
   #90) had to be retargeted by hand before they could be merged. Add a
   config with target-branch: develop for npm, gomod and github-actions.

   The npm entry also groups routine dev-dependency minor/patch updates,
   because separate PRs all edit web-portal/package-lock.json and therefore
   conflict with each other - they have to be merged one at a time with a
   rebase in between. Major bumps of vite and @sveltejs/vite-plugin-svelte
   are ignored deliberately: vite 7 -> 8 swaps the bundler from
   rollup+esbuild to rolldown, which changes the JavaScript we ship inside
   the firmware image and deserves an explicit decision rather than
   arriving as "chore(deps-dev)". Ignore rules do not affect security
   updates, which still come through.

2. No workflow triggered on pull_request: build-swu and develop-test-build
   are workflow_dispatch, auto-release is push-on-tag, gh-pages-deploy is
   push-to-master. So a dependency bump that breaks the frontend build was
   only discovered at release time, when the Docker image build failed. Add
   a PR workflow running npm ci + npm run build for web-portal (only when
   web-portal actually changed) and the pytest suite. Deliberately does not
   build the SWU - that needs the ARM toolchain and is far too slow for a
   PR gate.
@martinbogo
martinbogo merged commit 2a9faea into develop Jul 27, 2026
2 checks passed
@martinbogo
martinbogo deleted the chore/ci-pr-checks-and-dependabot branch July 27, 2026 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant