build(ci): consolidate database, builder and mockery pins - #9069
Merged
Conversation
Follow-up to apache#9029, which introduced mockery v3.7.2. All active installation sites move to v3.7.4 in lockstep so the CI bootstrap, the Makefile target and the builder images stay on a single version: - .github/workflows/test.yml, .github/workflows/golangci-lint.yml - backend/scripts/install-mockery.sh (incl. release SHA-256 sums) - backend/Makefile (go-dep) - backend/Dockerfile.local, devops/docker/lake-builder/Dockerfile The pinned archive checksums were verified against the official vektra/mockery v3.7.4 checksum.txt. "make mock" regenerates all 65 mock files without any diff, so no generated code is part of this commit.
DoDiODev
force-pushed
the
pr/wave4o-ci-deployment-pins
branch
from
August 24, 2026 15:57
cdb6457 to
7d0ab2b
Compare
klesh
approved these changes
Aug 25, 2026
klesh
left a comment
Contributor
There was a problem hiding this comment.
LGTM
Thanks for your contribution.
DoDiODev
added a commit
to DoDiODev/devlake
that referenced
this pull request
Sep 1, 2026
The lake-builder:latest image still ships Go 1.20.4 and mockery v2.20.0. Upstream installs the pinned versions at runtime via backend/scripts/install-*.sh since apache#9069, but this fork-only workflow never did, so 'make mock' failed with "invalid keys: pkgname, template, template-data" on the v3 config.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR consolidates CI and deployment pins that had drifted away from the versions DevLake is actually developed and operated against. It replaces floating database image tags in the E2E workflow and the Kubernetes sample manifest, refreshes the builder-image publish workflow, and lifts every mockery installation site to a single current version.
There are no Go module changes, no schema or migration-script changes, no API changes and no frontend changes. Nothing here alters product behaviour: the diff is limited to CI workflows, the Kubernetes sample manifest, the builder images and the mockery bootstrap.
9 changed files, +13 / −13
1.
build(ci): pin active database images.github/workflows/test-e2e.ymlmysql:8mysql:8.4.11.github/workflows/test-e2e.ymlpostgres:14.2postgres:18.4devops/deployment/k8s/k8s-deploy.yamlmysql:8mysql:8.4.11Historical artefacts under
devops/releases/**are intentionally left untouched.2.
ci(builder): refresh runner and login actionbuild-builder.ymlruns-on: ubuntu-20.04ubuntu-24.04ubuntu-20.04is retired on GitHub-hosted runners.build-builder.ymldocker/login-action@f054a8b…docker/login-action@dbcb8138…# v4.6.0Buildx was evaluated and deliberately not introduced: the workflow's direct
docker buildhas no concrete need for it, and mixing that in would hide a build-system change behind a pin refresh.3.
build(deps): bump mockery to 3.7.4Follow-up to #9029, which introduced mockery v3.7.2. All active installation sites move in lockstep so the CI bootstrap, the Makefile target and the builder images cannot drift apart:
.github/workflows/test.yml.github/workflows/golangci-lint.ymlmake mockin the lint jobbackend/scripts/install-mockery.shMOCKERY_VERSION+ both release SHA-256 sumsbackend/Makefilego-deptargetbackend/Dockerfile.localdevops/docker/lake-builder/DockerfileThe two pinned archive checksums were verified against the official
vektra/mockeryv3.7.4checksum.txt:make mockunder v3.7.4 regenerates all 65 mock files with an identical tree hash, so no generated code is part of this PR. The v3 configuration files.mockery.core.ymland.mockery.helpers.ymlare unchanged, as is their required ordering (helper mocks import generated core mocks).Dropped: the Super-Linter migration
An earlier revision of this PR also migrated
.github/workflows/yaml-lint.ymlfrom the archivedgithub/super-linter/slim@v4tosuper-linter/super-linter/slim@…(v8.7.0). That commit has been removed.The first CI attempt on this branch returned
startup_failurefor theyaml-lintworkflow, with no jobs started. The cause is the ASF allowed-actions policy:github/super-linteris permitted, but thesuper-linter/super-linterorganisation is not on the allowlist, so the workflow is rejected before it starts. This repository already carries a precedent for that constraint in.github/workflows/codespell.yml.action-blocked-by-asf..github/workflows/yaml-lint.ymlis therefore left untouched in this PR. The migration is still worth doing — thegithub/super-linterrepository ends at v7 and the maintained continuation is the new namespace — but it needs an ASF INFRA request to allowlist the action first. Happy to file that separately, or to follow whatever route the maintainers prefer.Validation
kubectl apply --dry-run=client --validate=falseon the K8s manifestbash -n backend/scripts/install-mockery.shchecksum.txtmake mockwith mockery v3.7.4: 65 files regenerated, zero diffmake build: all plugins, mocks, Swagger generation and the servermake unit-test-go: exit code 0, 554 passing packages, no failuresFork-CI runs, 9/9 green, covering
builder image,lint (go),migration-script-lint,unit-test,e2e (mysql),e2e (postgres),config-ui,check Apache license headerandcheck grafana dashboards:mainAn
e2e (postgres)job was added to the fork-CI harness for this proof, because the previous harness only ran MySQL and therefore never exercised thepostgres:18.4pin. The builder image is rebuilt fromdevops/docker/lake-builder/Dockerfileon the branch, so both runs also validate the mockery 3.7.4 installation.Note on an earlier
Error 1091An early fork-CI run of this branch failed in
e2e (mysql)onError 1091in the JiraTestMigrationSchema. That was not caused by the MySQL pin: a baseline run without any of these files reproduced it identically. The root cause was the GORMv1.31upgrade in #9061 and was fixed there. The run on the plainmainbaseline confirms themysql:8.4.11pin itself is sound.This PR is independent of #9061 — it applies cleanly to
mainand is CI-verified on that base.