Skip to content

feat: enhance CI/CD workflows for package building and release#6

Merged
DrWheelicus merged 4 commits intodevfrom
feat/ci-cd-improvements
Feb 15, 2026
Merged

feat: enhance CI/CD workflows for package building and release#6
DrWheelicus merged 4 commits intodevfrom
feat/ci-cd-improvements

Conversation

@DrWheelicus
Copy link
Owner

@DrWheelicus DrWheelicus commented Feb 15, 2026

Description

Add comprehensive CI/CD improvements including automated package building and PyPI release workflows with trusted publishing support.

Fixes #(N/A - Infrastructure improvement)

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactor
  • Other (please describe):

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

How Has This Been Tested?

  • CI workflow validation will occur automatically when PR is created
  • Release workflow syntax validated locally
  • Package build step tested in workflow context

Screenshots (if applicable)

N/A - Workflow changes

Additional Context

This PR adds:

  1. Package build job to python-app.yml workflow with artifact upload
  2. workflow_call trigger for workflow reusability
  3. New release.yml workflow for automated PyPI publishing via trusted publishing

Made with Cursor


Note

Medium Risk
Changes affect release automation and publishing permissions (PyPI trusted publishing/OIDC), so misconfiguration could cause failed or unintended releases, but no application runtime logic changes.

Overview
Adds workflow_call support to the main CI workflow and introduces a dedicated build_package job that builds the Python distribution and uploads dist/ as an artifact.

Introduces a new tag-triggered release.yml workflow that reuses the CI workflow, publishes the built artifacts to PyPI via trusted publishing (OIDC id-token), and then creates a GitHub Release attaching the same dist/* artifacts.

Written by Cursor Bugbot for commit 02f6aab. This will update automatically on new commits. Configure here.

- Added a new job to the Python CI workflow for building the package and uploading artifacts.
- Introduced a new release workflow for publishing to PyPI and creating GitHub releases upon version tag pushes.
- Updated Python version to 3.13 in the CI workflow for compatibility with the latest features.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

cursoragent and others added 3 commits February 15, 2026 21:49
Co-authored-by: Hayden MacIntyre <DrWheelicus@users.noreply.github.com>
Modified the 'github-release' job to depend on both 'ci' and 'publish-pypi' jobs, ensuring that the release process waits for successful completion of both prior jobs before proceeding.
@DrWheelicus DrWheelicus self-assigned this Feb 15, 2026
@DrWheelicus DrWheelicus added the enhancement New feature or request label Feb 15, 2026
@DrWheelicus DrWheelicus merged commit a11f917 into dev Feb 15, 2026
13 checks passed
@DrWheelicus DrWheelicus deleted the feat/ci-cd-improvements branch February 15, 2026 22:02
DrWheelicus added a commit that referenced this pull request Feb 15, 2026
* chore: rename project to Encoderize for package upload

Updates project name from Name Visualizer to Encoderize.
This change reflects a broader scope of functionality,
encompassing various encoding methods for generating
visual representations of text.

Updates documentation, CLI entry point, package name,
tests, and setup configuration to reflect the new name.
Also bumps the minimum Python version to 3.8.

* feat: add issue and pull request templates

* chore: remove issue and pull request templates from GitHub workflows

Moves issue and PR templates out of workflows

The issue and pull request templates are not workflow specific and
should reside in the root .github directory.

This change moves them to the appropriate location.

* chore: update GitHub Actions workflow

Renames the workflow to "Python Encoderize" and adds a step to upload coverage reports to Codecov. This enhances the CI process by integrating coverage tracking.

* chore: enhance GitHub Actions workflow for Python CI

Adds support for multiple Python versions (3.9, 3.10, 3.11) using a matrix strategy. Updates the setup step to cache pip dependencies and includes coverage report generation with pytest. This improves the CI process by ensuring compatibility across different Python versions and integrating coverage tracking.

Enhances Python CI workflow

Adds support for multiple Python versions (3.9, 3.10, 3.11) using a matrix strategy.
Caches pip dependencies to speed up the CI process.
Includes coverage report generation with pytest and uploads to Codecov.
This improves CI by ensuring compatibility across different Python versions
and integrating coverage tracking.

* chore: update GitHub Actions workflow to allow all branch pushes to trigger it

* docs: update README to include badges for Codecov, PyPI, and downloads

* chore: update GitHub Actions workflow to use Codecov v5 and improve coverage report handling

Changes the Codecov action version to v5 and updates the upload step to include the necessary token and slug for better integration. This enhances the coverage reporting process in the CI workflow.

* docs: update Codecov badge in README to include token for improved tracking

* chore: update Python version matrix in GitHub Actions workflow

Adds Python 3.8 to the matrix of supported versions in the CI workflow, ensuring compatibility with an earlier version of Python.

* chore: update setuptools version constraints in pyproject.toml

Modifies the setuptools requirement to specify version constraints based on Python version, ensuring compatibility with Python 3.8.

* Restricts push branch and adds license classifier

Restricts the push branch to main in the GitHub Actions workflow
to prevent accidental deployments from other branches.

Adds "License :: OSI Approved :: MIT License" classifier to
setup.py to clarify the project's licensing.

* chore: update Python version matrix in GitHub Actions workflow to include 3.12 and 3.13

Expands the supported Python versions in the CI workflow to include 3.12 and 3.13, ensuring compatibility with the latest Python releases.

* chore: update dependencies in requirements.txt and GitHub Actions workflow

* chore: adjust coverage dependency versions in requirements.txt for Python compatibility

Updates the coverage package requirements to specify different versions based on the Python version, ensuring compatibility with Python 3.8

* chore: adjust docutils dependency versions in requirements.txt for Python compatibility

Modifies the docutils package requirements to specify different versions based on the Python version, ensuring compatibility with Python 3.8

* chore: adjust keyring dependency versions in requirements.txt for Python compatibility

Modifies the keyring package requirements to specify different versions based on the Python version, ensuring compatibility with Python 3.8

* chore: adjust pillow dependency versions in requirements.txt for Python compatibility

Modifies the pillow package requirements to specify different versions based on the Python version, ensuring compatibility with Python 3.8

* chore: add linting and testing job to CI

Adds a new job to the CI workflow that runs flake8 to lint the code.

Also adds a version constraint for setuptools to ensure compatibility with Python 3.8

* chore: adjust treepoem dependency versions in requirements.txt for Python compatibility

Modifies the treepoem package requirements to specify different versions based on the Python version, ensuring compatibility with Python 3.8

* chore: reorganize CI workflow for improved linting and testing

Refactors the GitHub Actions workflow to enhance the linting and testing process. This includes setting up Python, installing dependencies, and running flake8 for linting and pytest for testing with coverage reporting. The changes ensure a more structured and efficient CI pipeline.

* chore: update Python version in CI workflow to 3.13

Changes the Python version in the GitHub Actions workflow from '3.x' to '3.13' to ensure the CI pipeline uses the latest stable release.

* chore: add CONTRIBUTING.md and update README for clarity and structure

Introduces a new CONTRIBUTING.md file to guide users on reporting bugs, suggesting enhancements, and submitting pull requests. Updates the README.md to improve formatting, enhance feature descriptions, and clarify usage instructions, including example visualizations and options for generating outputs.

* chore: simplify README layout by removing unnecessary div tags

* feat(docs): add centered logo and improve README layout (#5)

* feat(docs): add centered logo and improve README layout

- Add Encoderize logo centered at top of README

- Center status badges using HTML alignment

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: update .gitignore to exclude svg_out directory

- Added svg_out*/ to .gitignore to prevent SVG output files from being tracked.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: enhance project documentation and configuration (#7)

* docs: add security policy and vulnerability reporting guidelines

* feat: add dark mode logo support to README

* docs: add release process documentation for maintainers

* chore: centralize version management in __init__.py

* chore: add CODEOWNERS file to define repository ownership

* chore: update .gitignore to exclude editor and environment files

* feat: enhance CI/CD workflows for package building and release (#6)

* feat: enhance CI/CD workflows for package building and release

- Added a new job to the Python CI workflow for building the package and uploading artifacts.
- Introduced a new release workflow for publishing to PyPI and creating GitHub releases upon version tag pushes.
- Updated Python version to 3.13 in the CI workflow for compatibility with the latest features.

* fix(release): inherit secrets when calling CI workflow

Co-authored-by: Hayden MacIntyre <DrWheelicus@users.noreply.github.com>

* chore(release): update job dependencies in release workflow

Modified the 'github-release' job to depend on both 'ci' and 'publish-pypi' jobs, ensuring that the release process waits for successful completion of both prior jobs before proceeding.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Hayden MacIntyre <DrWheelicus@users.noreply.github.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Hayden MacIntyre <DrWheelicus@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants