Skip to content

Add deployment pipelines#2

Merged
eacet merged 8 commits intomainfrom
feature/ENG-1210
Feb 5, 2026
Merged

Add deployment pipelines#2
eacet merged 8 commits intomainfrom
feature/ENG-1210

Conversation

@eacet
Copy link
Copy Markdown
Member

@eacet eacet commented Jan 28, 2026

This PR adds ci & package publishing pipelines.

@eacet eacet requested a review from timurguvenkaya January 28, 2026 07:41
@linear
Copy link
Copy Markdown

linear bot commented Jan 28, 2026

ENG-1210 Setup CI/CD for `post-quantum-packages`

Implement a generic CI/CD pipeline for post-quantum-packages

  • npmjs
  • crate.io
  • pypi

@greptile-apps
Copy link
Copy Markdown

greptile-apps bot commented Feb 2, 2026

Greptile Overview

Greptile Summary

This PR introduces comprehensive CI/CD infrastructure for the monorepo, including change detection, multi-language testing, and automated package publishing across npm, crates.io, and PyPI.

Key Changes

  • CI Pipeline: Change detection identifies modified packages per language, running tests only for affected packages across TypeScript (Bun), Rust (stable/beta/1.75), and Python (3.8-3.12)
  • Publishing Workflows: Tag-triggered publishing for all three languages (<package>/<lang>@<version> pattern) with version verification
  • Version Script: Automated version bumping tool that updates config files, creates commits, and tags for CI publishing
  • Documentation: Comprehensive CLAUDE.md and updated README with workflow instructions

Issues Found

  • Critical: bun ci used in CI and npm publish workflows but bun.lockb doesn't exist - will fail on first run
  • Critical: TypeScript build/test failures in CI won't propagate due to subshell exit code handling

Confidence Score: 3/5

  • This PR has critical issues that will cause CI failures on first run
  • Missing bun.lockb will cause bun ci to fail immediately in both CI and npm publish workflows. Additionally, exit code propagation bug in TypeScript testing could mask test failures. These are blocking issues that must be fixed before merge.
  • .github/workflows/ci.yml and .github/workflows/publish-npm.yml require immediate fixes for lockfile and error handling

Important Files Changed

Filename Overview
.github/workflows/ci.yml Adds comprehensive CI with change detection, multi-language testing (TypeScript/Rust/Python), and conditional job execution
.github/workflows/publish-npm.yml npm publish workflow triggered by */ts@* tags with version verification
scripts/version.ts Version bumping script that updates config files, creates commits, and tags for CI publishing

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant Script as version.ts
    participant Git as Git Repository
    participant CI as GitHub Actions
    participant npm as npm Registry
    participant cargo as crates.io
    participant pypi as PyPI

    Dev->>Script: bun run scripts/version <pkg>/<lang> <bump>
    Script->>Script: Read current version from config
    Script->>Script: Bump version (major/minor/patch)
    Script->>Git: Update config file (package.json/Cargo.toml/pyproject.toml)
    Script->>Git: git commit -m "chore(...)"
    Script->>Git: git tag <pkg>/<lang>@<version>
    Script-->>Dev: Instructions to push

    Dev->>Git: git push origin HEAD <tag>
    Git->>CI: Trigger workflow based on tag pattern

    alt TypeScript (*/ts@*)
        CI->>CI: Parse tag for package & version
        CI->>CI: bun ci & build
        CI->>CI: Verify package.json version matches tag
        CI->>npm: bun publish --access public
    else Rust (*/rust@*)
        CI->>CI: Parse tag for package & version
        CI->>CI: Verify Cargo.toml version matches tag
        CI->>cargo: cargo publish
    else Python (*/python@*)
        CI->>CI: Parse tag for package & version
        CI->>CI: Verify pyproject.toml version matches tag
        CI->>CI: python -m build
        CI->>pypi: twine upload dist/*
    end
Loading

Copy link
Copy Markdown

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@eacet
Copy link
Copy Markdown
Member Author

eacet commented Feb 4, 2026

@greptile review

Copy link
Copy Markdown

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 files reviewed, 7 comments

Edit Code Review Agent Settings | Greptile

@eacet
Copy link
Copy Markdown
Member Author

eacet commented Feb 5, 2026

@greptile review

Copy link
Copy Markdown

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

@eacet eacet merged commit 9a6a8f7 into main Feb 5, 2026
6 checks passed
@eacet eacet deleted the feature/ENG-1210 branch February 5, 2026 06:27
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.

1 participant