gitFlow/.github/workflows/ci.yml
dimitar 9761adf3f9 feat: phase 0 — project scaffolding and build tooling
Bootstrap the gitflow module so subsequent phases build on a verified,
linted foundation.

- go.mod: initialize module gitea.oblak.solutions/dimitar/gitFlow at go 1.24
- cmd/gitflow/main.go: minimal entrypoint that prints the version string;
  this is a placeholder that Phase 2 (CLI & config) replaces with Cobra
- internal/version: version metadata injectable at build time via ldflags,
  with a Makefile target wiring VERSION through
- Makefile: build / test / fmt / vet / lint / install / clean targets with
  ldflags version injection
- .golangci.yml: enable errcheck, govet, staticcheck, gosimple, ineffassign,
  unused, misspell, gofmt, goimports
- .github/workflows/ci.yml: GitHub Actions CI running build + vet + tests
  (with -race) across Go 1.24/1.26, plus a golangci-lint job
- .gitignore: build artifacts, test outputs, editor cruft, and local config
  overrides (never committed)

Verified locally: go build, go vet, gofmt clean, binary prints version.
2026-08-02 08:30:23 +02:00

38 lines
731 B
YAML

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
name: Test (Go ${{ matrix.go }})
runs-on: ubuntu-latest
strategy:
matrix:
go: ["1.24", "1.26"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Build
run: go build ./...
- name: Vet
run: go vet ./...
- name: Test
run: go test -race ./...
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.26"
- uses: golangci/golangci-lint-action@v6
with:
version: latest