Skip to content

CI/CD Infrastructure: Fix pre-existing Python Bindings, Test Tauri, and Documentation Deploy failures #328

@AlexMikhalev

Description

@AlexMikhalev

Summary

Multiple CI/CD workflows are consistently failing across all PRs due to infrastructure issues unrelated to code changes. These failures are blocking PR merges despite the actual changes being valid and passing relevant checks.

Affected Workflows

1. Python Bindings CI/CD (.github/workflows/python-bindings.yml)

Status: ❌ Consistently failing since 2025-11-17
Impact: All Python versions (3.9-3.12) on all platforms (Ubuntu, macOS, Windows)

Error Patterns:

  • Black formatter: would reformat terraphim_automata/__init__.pyi and tests/test_thesaurus.py
  • Maturin build: Couldn't find a virtualenv or conda environment
  • Benchmark job: Missing Rust target x86_64-unknown-linux-gnu

Root Cause: Environment setup and code formatting issues in terraphim_automata_py crate

2. Test Tauri (.github/workflows/test-on-pr-desktop.yml)

Status: ❌ Consistently failing since 2025-11-18
Impact: All platforms (Ubuntu 22.04/24.04, macOS, Windows)

Error Patterns:

  • Windows: Missing Rust target x86_64-unknown-linux-gnu
  • Ubuntu: webkit2gtk-4.1-dev package dependency issues
  • macOS: Environment setup failures

Root Cause: Tauri test environment configuration and platform-specific dependency issues

3. Deploy Documentation (.github/workflows/deploy-docs.yml)

Status: ❌ Cloudflare Pages deployment failing
Impact: Documentation builds on self-hosted runners

Root Cause: Self-hosted runner (terraphim) configuration issues with mdBook deployment

Evidence of Pre-existing Issues

Recommended Fixes

Python Bindings CI/CD

# Add to .github/workflows/python-bindings.yml

- name: Setup virtual environment
  run: |
    uv venv
    source .venv/bin/activate
  working-directory: crates/terraphim_automata_py

- name: Fix Black formatting
  run: uv run black python/
  working-directory: crates/terraphim_automata_py
  continue-on-error: false

- name: Install Rust target for benchmarks
  run: rustup target add x86_64-unknown-linux-gnu
  if: matrix.os == 'ubuntu-latest'

Test Tauri

# Add to .github/workflows/test-on-pr-desktop.yml

- name: Install Rust target (Windows)
  run: rustup target add x86_64-unknown-linux-gnu
  if: matrix.os == 'windows-latest'

- name: Fix Ubuntu webkit dependencies
  run: |
    sudo apt-get update
    sudo apt-get install -y libwebkit2gtk-4.1-dev libjavascriptcoregtk-4.1-dev
  if: matrix.os == 'ubuntu-latest'

Documentation Deploy

  1. Verify self-hosted runner terraphim is online and has necessary tools:

    • mdBook installed
    • Cloudflare CLI configured
    • Proper network access
  2. Update workflow to use GitHub-hosted runners temporarily if self-hosted is unreliable

Immediate Workaround

If these workflows block PR merges:

  1. Temporarily disable these workflows in PR branches by adding to .github/workflows/*.yml:

    on:
      push:
        branches-ignore:
          - feat/*
          - build/*
          - test/*
          - docs/*
  2. Focus on core workflows that are passing:

    • CI Native (GitHub Actions + Docker Buildx)
    • CI Optimized (Docker Layer Reuse)
    • Claude Code Review
    • Pre-commit hooks

Priority

High - These failures are blocking all PR work and creating false signals about code quality

Additional Context

These issues were discovered while splitting PR #320 into focused PRs (#324-#327). The focused PRs themselves are valid and pass all relevant checks (secret detection, Rust build/tests, pre-commit hooks), but are blocked by these pre-existing infrastructure failures.

Related PRs

Definition of Done

  • Python Bindings CI/CD passes on all platforms
  • Test Tauri passes on all platforms
  • Deploy Documentation successfully builds and deploys
  • All three workflows show green status on main branch
  • New PRs no longer show false failure signals

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