- Unit tests, integration tests and the Docker build check run in
parallel on branches and pull requests
- Integration tests run on every push instead of only manually
- Branch builds only build amd64 and check the arm64 cross-compile in the
test job; both platforms are built and pushed only for version tags,
after all tests pass
- Docker layers cached through the runner cache, Go module and build
caches mounted in the Dockerfile
- A newer push to the same branch cancels the running pipeline