Skip to content

Add CI pipeline using test-framework-template #2

@dogkeeper886

Description

@dogkeeper886

Summary

Set up a CI pipeline for testlink-code by installing test-framework-template into the cicd/ directory. This gives us automated validation on PRs and pushes before we start adding new API endpoints (see #1).

Motivation

  • No test coverage or linting exists today — only a Docker publish workflow
  • Issue [feat] Add deleteTestCase and deleteTestSuite to XML-RPC API #1 will add deleteTestCase and deleteTestSuite endpoints — we need CI to validate those changes
  • test-framework-template provides YAML-driven tests with GitHub Actions workflows ready to use

Plan

Install Framework

  • Run make install from test-framework-template into cicd/
  • Add test-pipeline.yml and test-suite.yml workflows to .github/workflows/
  • Configure config.ts for testlink-code

Build Suite (TC-BUILD-*)

  • PHP syntax checkfind . -name '*.php' | xargs php -l
  • Docker build — verify the image builds successfully
  • Composer install — verify dependencies resolve

Integration Suite (TC-INTEGRATION-*)

  • Container startupdocker compose up, health check
  • XML-RPC API smoke test — call tl.ping, verify response
  • Authentication — call tl.checkDevKey with test API key

E2E Suite (TC-E2E-*)

  • Full CRUD workflow — create project → create suite → create test case → verify → cleanup
  • Validates the API endpoints work end-to-end against a real TestLink instance

Dependencies

  • Docker Compose setup for TestLink + database (may need a docker-compose.ci.yml)
  • Node.js 20 for the test runner
  • Ollama (optional, for LLM judge — can run with --no-llm in CI initially)

Acceptance Criteria

  • cicd/ directory installed with test-framework-template
  • GitHub Actions runs on PRs and pushes
  • Build suite passes (PHP lint, Docker build)
  • Integration suite passes (container starts, API responds)
  • E2E suite passes (CRUD workflow)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions