Skip to content

v0.7.8

Choose a tag to compare

@webcane webcane released this 24 May 05:36
· 334 commits to master since this release

Summary

Phase 11: CI & Tooling Polish
Goal: Restore Codecov coverage reporting, bump all GitHub Actions to current stable versions, add golangci-lint enforcement, and make the Homebrew formula handle plugin symlink lifecycle automatically on install and uninstall.
Status: Verified ✓ (13/13)

This release hardens the CI/CD pipeline and developer tooling: Codecov is wired up, GitHub Actions versions are current (managed by Dependabot going forward), brew install now auto-creates the Docker CLI plugin symlink, and make lint enforces code quality via golangci-lint.

Changes

Plan 11-01: Codecov Coverage Reporting

Wire Codecov coverage reporting into the CI pipeline and fix the README badge.

Key files:

  • codecov.yml — minimal config; comment.require_changes: true, auto target
  • .github/workflows/ci.yml — test job runs with -coverprofile; Codecov upload step (tokenless, fail_ci_if_error: false)
  • README.md — badge branch corrected from /main/ to /master/

Plan 11-02: Remove FORCE Workaround + Add Dependabot

Remove FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 from all workflows and configure Dependabot for weekly GHA version management.

Key files:

  • .github/workflows/ci.yml — FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 removed
  • .github/workflows/release.yml — FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 removed
  • .github/dependabot.yml — new; github-actions ecosystem, weekly, limit 5 PRs

Plan 11-03: Homebrew Symlink Lifecycle

Automate Docker CLI plugin symlink creation on brew install and removal on brew uninstall.

Key files:

  • .goreleaser.yaml — post_install creates ~/.docker/cli-plugins/docker-deploy with Errno::EPERM graceful fallback for macOS Tahoe; custom_block adds def uninstall using File.delete/File.exist?; caveats: removed

Note: macOS Tahoe (26.4.1) blocks symlink creation from post_install context at the OS level. The formula degrades gracefully with an actionable opoo warning. def uninstall works on all platforms.

Plan 11-04: golangci-lint CI Gate

Add linting config, Makefile targets, and a parallel CI lint job.

Key files:

  • .golangci.yml — new; disable-all: true; enabled: errcheck, govet, staticcheck, goimports
  • Makefile — lint and fmt targets
  • .github/workflows/ci.yml — parallel lint job; installs golangci-lint@v1.64.8, runs make lint

Bug Fixes (post-phase quick tasks)

  • fix(health): detect exited containers in PollHealth — docker inspect exit status 1 on containers with no HEALTHCHECK directive now handled correctly
  • fix(goreleaser): cosign not found in CI release pipeline — resolved

Verification

  • Automated verification: PASS (13/13)
  • All 5 success criteria met (3 overrides accepted with evidence)
  • UAT: 8 passed, 3 minor issues documented

Compatibility

No breaking changes. Pure CI/tooling additions.