Skip to content

Add CI/CD with GitHub Actions #36

@haroon0x

Description

@haroon0x

Problem

The repository currently has no automated quality checks or CI/CD workflows (proposal notes: "ci/cd — no github actions. pipelines are triggered manually"). Contributors can push broken code, unformatted files, or invalid pipeline definitions without any automated gate.

Proposed Solution

Add GitHub Actions workflows and local developer tooling:

Workflows:

  • ci.yaml — Lint (ruff), typecheck (mypy), compile KFP pipelines on every push/PR to main
  • docker-build.yaml — Validate Docker builds for both server variants (triggered only on server/ or server-https/ changes)
  • dco.yaml — Enforce DCO sign-off on PRs per Kubeflow community standards

Tooling:

  • pyproject.toml — Centralized config for ruff, mypy, pytest
  • Makefile — Local dev commands mirroring CI checks (make lint, make format, make typecheck, make compile-pipelines)

Acceptance Criteria

  • ruff check . passes on all existing code
  • ruff format --check . passes on all existing code
  • Both KFP pipelines compile successfully in CI
  • Docker images build without errors
  • DCO check runs on pull requests
  • Makefile provides equivalent local commands for all CI checks

Additional Context

  • ruff is preferred over pylint/flake8 — single tool, significantly faster, used across Kubeflow ecosystem
  • mypy should use continue-on-error initially since the codebase has no existing type annotations
  • KFP pipeline compilation is a lightweight syntax validation that doesn't require a running cluster
  • Star imports in pipeline files (from kfp.dsl import *) are intentional — KFP requires them for component type annotations

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions