Metadata-Version: 2.4
Name: ci-starter
Version: 0.8.2
Summary: Kickstarts the semantic release pipeline for your Python project
Keywords: semantic version,semantic release,ci/cd,convetional commits,python-semantic-release
Author: fleetingbytes
Author-email: fleetingbytes <7075397+fleetingbytes@users.noreply.github.com>
License-Expression: BSD-2-Clause
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Unix Shell
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Dist: click>=8.3
Requires-Dist: gitpython>=3.1.45
Requires-Dist: importlib-resources>=5.10 ; python_full_version < '3.12'
Requires-Dist: platformdirs>=4.4.0
Requires-Dist: ruamel-yaml>=0.18.15
Requires-Dist: semver>=3.0.4
Requires-Dist: tomli-w>=1.2.0
Requires-Python: >=3.11
Project-URL: Changelog, http://github.com/fleetingbytes/ci-starter/blob/master/CHANGELOG.md
Project-URL: Documentation, http://github.com/fleetingbytes/ci-starter/blob/master/README.md
Project-URL: Homepage, http://github.com/fleetingbytes/ci-starter
Project-URL: Issues, http://github.com/fleetingbytes/ci-starter/issues
Project-URL: Repository, http://github.com/fleetingbytes/ci-starter.git
Description-Content-Type: text/markdown

# ci-starter

Kickstarts the semantic release pipeline for your Python project on GitHub. It creates an opinionated configuration file for python-semantic-release, _semantic-release.toml_ and a pipeline with reusable workflows in _.github/workflows_.

## Usage

### Prerequisites

- Create your project:
    - Use uv to initialize your project (must be a package)
        - Fill it with some minimally meaningful content, I recommend:
            - set version to `0.0.0`
            - project urls
            - keywords
            - classifiers
            - license
        - Add a dependency group for running tests (group shall contain at least your test runner, e.g. pytest)
    - Create tests (CI/CD pipeline would fail if no tests are found)
    - Format and check everything with ruff
    - Set up a trusted publisher for your project on pypi.org:
        - Workflow: `continuous-delivery.yml`
        - Environment name: `pypi`
    - Set up a trusted publisher for your project on test.pypi.org:
        - Workflow: `continuous-delivery.yml`
        - Environment name: `testpypi`
    - Create a GitHub repository for your project
    - Add remote origin and its ssh address at your local clone

### Create CI/CD Pipeline

- run `ci-start` (not _ci-starter_) in the project directory:
```
ci-start \
    --module-name my_app \
    --package-name my-app \
    --workflow-file continuous_delivery.yml \
    --test-group test`
    --test-command "uv run -- pytest -v"
    .
```

That should create you a configuration file (_semantic-release.toml_) and some workflow files (.github/workflows/*.yml) to start with.
