Skip to content

ci(github): consolidate test and lint into single workflow#2558

Open
vmaerten wants to merge 6 commits into
mainfrom
better-gh-workflow
Open

ci(github): consolidate test and lint into single workflow#2558
vmaerten wants to merge 6 commits into
mainfrom
better-gh-workflow

Conversation

@vmaerten

@vmaerten vmaerten commented Dec 7, 2025

Copy link
Copy Markdown
Member

Summary

  • Add dedicated build job to verify compilation across Go versions
  • Simplify test job by using go-task/setup-task action instead of manual build
  • Improve workflow readability with descriptive step names and emojis
  • Reorder steps to follow checkout-first convention

Why

The previous workflow had some issues:

  1. Build verification was implicit - Tests would fail if the build failed, but there was no explicit build check. Now we have a dedicated build job that runs in parallel with tests.
  2. Manual build in test job was redundant - Each test job was building the binary manually with go build -o ./bin/task. By using the official go-task/setup-task action, we leverage a pre-built Task binary and simply run task test.
  3. Inconsistent step ordering - Some jobs had setup-go before checkout, which is unconventional. Now all jobs follow the standard checkout → setup → action pattern.
  4. Poor readability - Steps had minimal or no names. Added descriptive names with emojis to make the workflow easier to scan in the GitHub Actions UI.

Test plan

  • Verify all CI jobs pass on this branch
  • Confirm build job correctly tests both Go 1.24.x and 1.25.x
  • Check that test job still runs on all three platforms (ubuntu, macos, windows)

vmaerten added 5 commits July 1, 2026 21:56
Restore the --output group options for better GitHub Actions log
grouping, while keeping the separate build job for compilation check.
Preserve security hardening and version updates that main applied to the
now-removed lint.yml/test.yml: pin actions by commit SHA, bump Go matrix
to 1.25.10/1.26.x, golangci-lint to v2.12.2, and add read-only
permissions.
@vmaerten vmaerten force-pushed the better-gh-workflow branch from 442aab1 to d1c1e07 Compare July 1, 2026 20:00
Move the govulncheck job from security.yml into ci.yml and add it to
the ci-status gate so it shares the CI concurrency group and is covered
by the single required check. Drop the now-redundant security.yml.
@vmaerten vmaerten marked this pull request as ready for review July 3, 2026 14:21
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