Skip to content

master does not compile; the PR test gate never runs #242

Description

@cplieger

Environment

  • Fresh clone of master at 9290055
  • Go 1.26.4, linux/amd64 (module declares go 1.25.0)
  • Frontend built first (npm ci && npm run build in web/), so the web/dist embed resolves

Symptom

go build ./... fails on current master:

# github.com/containeroo/heartbeats/internal/notify
internal/notify/receivers.go:124:3: unknown field Vars in struct literal of type "github.com/containeroo/notifykit/notify".Receiver
internal/notify/receivers.go:191:5: unknown field SubjectTmpl in struct literal of type webhook.Target
internal/notify/receivers.go:324:4: unknown field Vars in struct literal of type "github.com/containeroo/notifykit/notify".Payload
internal/notify/receivers.go:337:4: unknown field Vars in struct literal of type "github.com/containeroo/notifykit/notify".Payload

I also probed older notifykit releases to see whether a pin rollback would help: v0.0.10, v0.0.9, v0.0.8, and v0.0.7 all fail to compile internal/notify too (v0.0.10 still lacks SubjectTmpl on webhook.Target). So master currently builds against no released notifykit version. The v0.23.0 tag compiles fine, so releases and published images are unaffected.

Why CI didn't catch it

The Unit Tests workflow only triggers on pull requests targeting main, but the repository's default branch is master:

  1. tests.yml lines 5-8 at 9290055 filter pull_request to branches: [main].
  2. Every PR in the repo targets master, so the gate never runs. fix(deps): update module github.com/containeroo/notifykit to v0.0.11 #228 (the bump to notifykit v0.0.11 in go.mod line 9) merged with only the Autorelease checks green, and the build break landed unnoticed.
  3. Everything merged since inherits the broken state; make test fails at compile before running a single test.

Suggested fix

Two independent parts:

Merge-order note: once #244 lands, the first PR touching Go code goes red until the compile break above is fixed; that's the gate doing its job, but fixing the compile break first avoids the red window.

Happy to test a branch either way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions