Skip to content

GitHub CI workflows#106

Merged
tgrunnagle merged 14 commits into
mainfrom
issue_92_github_ci_2026-01-18
Jan 25, 2026
Merged

GitHub CI workflows#106
tgrunnagle merged 14 commits into
mainfrom
issue_92_github_ci_2026-01-18

Conversation

@tgrunnagle
Copy link
Copy Markdown
Owner

Add GitHub Actions CI Pipeline

Summary

This PR implements a comprehensive GitHub Actions CI pipeline that runs on every pull request to ensure code quality and catch issues early.

  • Adds modular, reusable workflows for lint, test, and integration stages
  • Entry point workflow (ci.yml) orchestrates all checks with proper dependencies
  • Integration tests only run after lint and unit tests pass
  • Adds new format:check tasks to Taskfile.yml for CI-compatible format validation

Closes: #92

Changes

Workflow Files (.github/workflows/)

File Purpose
ci.yml Entry point - triggers on PR events, calls other workflows
lint.yml Linting, format checking, and type checking for bot2 (Python) and backend (Go)
test.yml Unit tests for bot2 and backend
integration.yml Integration tests using Docker Compose

Taskfile.yml

Added two new tasks for CI-compatible format checking (non-modifying):

  • bot2:format:check - Runs ruff format --check for Python code
  • be:format:check - Runs gofmt -l check for Go code

Workflow Architecture

ci.yml (entry point)
  ├── lint.yml (parallel)
  │     ├── bot2-lint: lint, format check, typecheck
  │     └── backend-lint: lint, format check, vet
  ├── test.yml (parallel)
  │     ├── bot2-test: unit tests
  │     └── backend-test: unit tests
  └── integration.yml (after lint + test pass)
        └── integration: docker compose + integration tests

Key Features

  • Modular design: Each workflow is reusable via workflow_call
  • Parallel execution: Lint and test jobs run in parallel for faster feedback
  • Gated integration tests: Only run after lint and unit tests pass
  • Health check polling: Integration workflow waits for services to be ready before running tests
  • Cleanup on failure: Docker Compose cleanup runs even if tests fail

Test Plan

  • Verify task bot2:format:check works locally
  • Verify task be:format:check works locally
  • Create PR and verify all workflow jobs trigger
  • Verify lint job catches intentional formatting issues
  • Verify integration tests run after lint and test jobs complete

@tgrunnagle tgrunnagle merged commit 731fd42 into main Jan 25, 2026
5 checks passed
@tgrunnagle tgrunnagle deleted the issue_92_github_ci_2026-01-18 branch January 25, 2026 18:15
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.

GitHub Actions CI

1 participant