Skip to content

Conversation

@PauloVLB
Copy link
Contributor

@PauloVLB PauloVLB commented Nov 27, 2025

Summary

This PR establishes the CI/CD pipelines required to automate the publishing of the casp CLI to both TestPyPI (for development) and PyPI (for production).

Pipelines Added

1. Publish to PyPI (release event)

Trigger: runs when a new GitHub Release is published.

Change Detection: checks if there are actual changes in cli/casp compared to the previous tag before proceeding.

Versioning: automatically updates pyproject.toml to match the release tag (e.g., v1.2.0 -> 1.2.0).

Action: builds and uploads the package to the official PyPI repository.

2. Publish to TestPyPI (push event)

Trigger: runs on every push to master that modifies files within cli/casp/.

Versioning: generates a unique snapshot version using the format <last_tag>.<timestamp> (e.g., 1.2.0.17123456).

Action: builds and uploads the package to TestPyPI to facilitate immediate testing of new changes.

@ViniciustCosta
Copy link
Collaborator

Very nice

@PauloVLB PauloVLB changed the title [Testing] [CLI] Testing the action to publish the CLI to TestPyPI [CLI] Pipelines to publish casp to PyPI Nov 27, 2025
# set the version here.
version = "0.0.8"
authors = [
{ name="PauloVLB", email="paulovlb@google.com" },
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm worried that with Paulo finishing his internship, this email won't be available anymore and the workflow might start failing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree. As mentioned in #4987, the publishing account should be validated.

I suggest creating a new ClusterFuzz account (since this one doesn't seem right) in both TestPyPI and PyPI and changing it.

We'd also need to change the secrets used in the pipelines (CASP_PYPI_API_TOKEN and CASP_TEST_PYPI_API_TOKEN).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To generate tokens, follow these steps in each environment:

  1. Go to pypi.org/manage/account/ or test.pypi.org/manage/account/
  2. Scroll down to "API tokens"
  3. Click "Add API Token"
  4. Provide a token name and scope (must include the CLI project)
  5. Click "Create token"

You can also find a step-by-step guide on how to publish locally on my notes, in the "Commands" section.

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.

3 participants