Skip to content

ci: enhanced CI pipeline, release workflow, and proxy support#20

Merged
sunba91-su merged 4 commits into
mainfrom
feat/ci-pipeline
Jun 8, 2026
Merged

ci: enhanced CI pipeline, release workflow, and proxy support#20
sunba91-su merged 4 commits into
mainfrom
feat/ci-pipeline

Conversation

@sunba91-su

Copy link
Copy Markdown
Owner

Summary

Complete CI/CD overhaul: 4-job CI pipeline with Docker + ghcr.io, semantic release workflow with auto-generated release notes, and local proxy support for filtered environments.

Changes

New files

  • .github/workflows/release.yml — On v* tag push: vet+test, Docker build+push (:semver + :latest to ghcr.io), auto-generate release notes via softprops/action-gh-release

Modified files

  • .github/workflows/ci.yml — 4 jobs (lint/build/test/docker) with race detection, coverage artifact upload, Docker smoke test on all PRs, and ghcr.io push on main
  • Dockerfile — +3 proxy ARGs (http_proxy, https_proxy, no_proxy) for local builds behind filtered internet
  • docker-compose.yml — proxy args passthrough from .env with empty-string fallback
  • Makefiledocker-build uses --build-arg shorthand (reads from shell env, no-ops if unset)
  • .env.example — commented proxy vars

Design decisions

  • docker job pushes on main only (push: ${{ github.ref == 'refs/heads/main' }}) — PRs build-test only
  • Release triggered by pushing vMAJOR.MINOR.PATCH tag — includes vet+test gate before push
  • Proxy ARGs are optional — Docker skips them if unset. No impact on CI runners (no proxy vars in GitHub Actions)
  • Go proxy 403 issue avoided: CI runners have direct internet; local users set proxy in .env

Verification

  • go vet ./... — clean
  • go build ./... — compiles
  • go test ./... -race — 37 tests, 0 failures

Closes #9

- CI: 4 jobs (lint/build/test+docker) with race detection, coverage artifact,
  and ghcr.io push on main
- Release: on v* tag — vet+test, Docker push with semver+latest tags,
  auto-generated release notes via softprops/action-gh-release
- Dockerfile: proxy ARGs for local builds behind filtered internet
- docker-compose.yml: proxy args passthrough from .env
- Makefile: proxy-forwarding docker-build target
- .env.example: commented proxy vars

Closes #9
covdata tool conflicts with -race on Go 1.22 runner.
Replace with -cover flag for inline coverage output.
go.mod requires go 1.25.3 but Dockerfile used 1.22-alpine,
causing go mod download to fail with version mismatch.
covdata tool conflicts with -race on Go 1.22 runner for
packages without test files, causing CI to fail with exit code 1.
Coverage tracking moved to issue #21.
@sunba91-su sunba91-su merged commit 4e33230 into main Jun 8, 2026
4 checks passed
@sunba91-su

Copy link
Copy Markdown
Owner Author

Updated with fix for #22:

  • 🔒 now validates actual team membership via DB
  • 👥 Multi-team users can use with submit/status
  • ❌ New command
  • 📋 New command
  • 🚫 Duplicate daily submissions are rejected
  • 📖 Help output updated
  • ✅ 25 tests passing, zero failures

@sunba91-su

Copy link
Copy Markdown
Owner Author

Updated with fix for #22:

  • 🔒 PermissionMember now validates actual team membership via DB
  • 👥 Multi-team users can use --team "Team Name" with submit/status
  • ❌ New /standup cancel command
  • 📋 New /standup list command
  • 🚫 Duplicate daily submissions are rejected
  • 📖 Help output updated
  • ✅ 25 tests passing, zero failures

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.

Add GitHub Actions CI pipeline

1 participant