Skip to content

[FEAT] Add support for Vite/React#2

Merged
martian56 merged 3 commits intomainfrom
vite-react-support
Dec 26, 2025
Merged

[FEAT] Add support for Vite/React#2
martian56 merged 3 commits intomainfrom
vite-react-support

Conversation

@martian56
Copy link
Owner

This pull request introduces significant improvements to the Ufazien CLI tools and their CI/CD workflows. The main focus is the addition of first-class support for "build" projects (such as those built with Vite or React), enhancements to the deployment process, and the introduction of robust GitHub Actions workflows for testing, releasing, and publishing both the Node.js and Python CLI packages. Additionally, both CLIs are updated to version 0.2.0.

Build Project Support and Deployment Enhancements

  • Added support for "build" projects in both the Node.js and Python CLIs, allowing users to specify a build folder (e.g., dist or build) for deployment. The CLI now prompts for the build folder, generates a tailored project structure and README, and only deploys the contents of the specified build folder. (ufazien-cli-js/src/cli.ts, ufazien-cli-js/src/project.ts, ufazien-cli-js/src/zip.ts, ufazien-cli-js/src/utils.ts, ufazien-cli-py/src/ufazien/cli.py) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

GitHub Actions Workflows

  • Introduced new workflows for automated testing of both CLI packages across multiple OS and runtime versions, as well as workflows for publishing to npm and PyPI on release, and a release workflow that creates GitHub releases with install instructions and package version info. (.github/workflows/test_npm_package.yml, .github/workflows/test_python_pkg.yml, .github/workflows/publish_npm_pkg.yml, .github/workflows/publish_python_pkg.yml, .github/workflows/release.yml) [1] [2] [3] [4] [5]

Version Bumps

  • Bumped the version of both the Node.js and Python CLI packages to 0.2.0 to reflect the new features. (ufazien-cli-js/package.json, ufazien-cli-py/pyproject.toml) [1] [2]

Project Structure and Ignore Files

  • Updated .gitignore files to ignore build and test outputs, ensuring cleaner repositories. (ufazien-cli-js/.gitignore, ufazien-cli-py/.gitignore) [1] [2]

Build Project Support (CLI and Project Structure):

  • Added interactive prompts and logic to support "build" projects, including custom build folder configuration and deployment of only the build output. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
  • Generated a tailored README.md and updated .ufazienignore guidance for build projects. [1] [2]

CI/CD and Automation:

  • Added GitHub Actions workflows for testing Node.js and Python packages across multiple platforms and versions. [1] [2]
  • Added workflows for publishing packages to npm and PyPI on release, and a release workflow that creates GitHub releases with install instructions. [1] [2] [3]

Versioning:

  • Updated both CLI packages to version 0.2.0. [1] [2]

Repository Maintenance:

  • Improved .gitignore files to exclude build and test artifacts. [1] [2]

Closes #1

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive support for build-based projects (Vite/React/etc.) to both the Node.js and Python CLI tools, enabling users to deploy only their build output folders. Additionally, it introduces a complete CI/CD pipeline with GitHub Actions workflows for automated testing and publishing.

Key Changes:

  • Added "build" project type that deploys only the contents of a specified build folder (dist/build)
  • Introduced GitHub Actions workflows for testing packages across multiple OS/runtime versions and automated publishing to npm/PyPI
  • Bumped both CLI packages to version 0.2.0

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
ufazien-cli-py/src/ufazien/utils.py Added create_zip_from_folder function to zip specific build folders
ufazien-cli-py/src/ufazien/project.py Added create_build_project_structure and updated .ufazienignore template with build project guidance
ufazien-cli-py/src/ufazien/cli.py Integrated build project type with prompts, conditional zipping, and deployment logic
ufazien-cli-py/pyproject.toml Version bump to 0.2.0
ufazien-cli-py/.gitignore Added test/ directory to ignore list
ufazien-cli-js/src/zip.ts Added createZipFromFolder function for build folder zipping
ufazien-cli-js/src/utils.ts Extended WebsiteConfig interface with optional build_folder field
ufazien-cli-js/src/project.ts Added createBuildProjectStructure and updated .ufazienignore template
ufazien-cli-js/src/cli.ts Integrated build project type with prompts and conditional deployment logic
ufazien-cli-js/package.json Version bump to 0.2.0
ufazien-cli-js/.gitignore Added test/ directory to ignore list
.github/workflows/test_python_pkg.yml Added workflow to test Python package across multiple OS and Python versions
.github/workflows/test_npm_package.yml Added workflow to test npm package across multiple OS and Node.js versions
.github/workflows/release.yml Added workflow to create GitHub releases with package version info
.github/workflows/publish_python_pkg.yml Added workflow to publish Python package to PyPI on release
.github/workflows/publish_npm_pkg.yml Added workflow to publish npm package to npm registry on release

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@martian56 martian56 added the enhancement New feature or request label Dec 26, 2025
@martian56 martian56 merged commit ac1c057 into main Dec 26, 2025
3 checks passed
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.

Add support for Vite/React

2 participants