# ci-starter
Kickstarts the semantic release pipeline for your Python project on GitHub. It creates an configuration file _semantic-release.toml_ for python-semantic-release and a pipeline with reusable workflows in _.github/workflows_.
## Usage
### Prerequisites
You will have to do the flollowing things yourself:
- 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` (default workflow name)
- 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 With ci-starter
Run these commands:
```text
$ ci-start psr-config
$ ci-start workflows
$ ci-start update-actions
```
The psr-config command creates the _semantic-release.toml_, the second one creates the workflow files (.github/workflows/*.yml), the third one fetches the current versions of the GitHub Actions used in the workflow files and updates the workflow files accordingly.
It is your responsibility to check whether it is safe to use the suggested current versions of the GitHub Actions (beware of supply chain attacks).
Raw data
{
"_id": null,
"home_page": null,
"name": "ci-starter",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "semantic version, semantic release, ci/cd, convetional commits, python-semantic-release",
"author": "fleetingbytes",
"author_email": "fleetingbytes <7075397+fleetingbytes@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/7a/da/5c0191dc1c93a5b2f83894247c346d48f73c81d6242951a2017d47e32d7c/ci_starter-0.10.5.tar.gz",
"platform": null,
"description": "# ci-starter\n\nKickstarts the semantic release pipeline for your Python project on GitHub. It creates an configuration file _semantic-release.toml_ for python-semantic-release and a pipeline with reusable workflows in _.github/workflows_.\n\n## Usage\n\n### Prerequisites\n\nYou will have to do the flollowing things yourself:\n\n- Create your project:\n - Use uv to initialize your project (must be a package)\n - Fill it with some minimally meaningful content, I recommend:\n - set version to `0.0.0`\n - project urls\n - keywords\n - classifiers\n - license\n - Add a dependency group for running tests (group shall contain at least your test runner, e.g. pytest)\n - Create tests (CI/CD pipeline would fail if no tests are found)\n - Format and check everything with ruff\n - Set up a trusted publisher for your project on pypi.org:\n - Workflow: `continuous-delivery.yml` (default workflow name)\n - Environment name: `pypi`\n - Set up a trusted publisher for your project on test.pypi.org:\n - Workflow: `continuous-delivery.yml`\n - Environment name: `testpypi`\n - Create a GitHub repository for your project\n - Add remote origin and its ssh address at your local clone\n\n### Create CI/CD Pipeline With ci-starter\n\nRun these commands:\n\n```text\n$ ci-start psr-config\n$ ci-start workflows\n$ ci-start update-actions\n```\n\nThe psr-config command creates the _semantic-release.toml_, the second one creates the workflow files (.github/workflows/*.yml), the third one fetches the current versions of the GitHub Actions used in the workflow files and updates the workflow files accordingly.\n\nIt is your responsibility to check whether it is safe to use the suggested current versions of the GitHub Actions (beware of supply chain attacks).\n",
"bugtrack_url": null,
"license": null,
"summary": "Kickstarts the semantic release pipeline for your Python project",
"version": "0.10.5",
"project_urls": {
"Changelog": "http://github.com/fleetingbytes/ci-starter/blob/master/CHANGELOG.md",
"Documentation": "http://github.com/fleetingbytes/ci-starter/blob/master/README.md",
"Homepage": "http://github.com/fleetingbytes/ci-starter",
"Issues": "http://github.com/fleetingbytes/ci-starter/issues",
"Repository": "http://github.com/fleetingbytes/ci-starter.git"
},
"split_keywords": [
"semantic version",
" semantic release",
" ci/cd",
" convetional commits",
" python-semantic-release"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "832041118669a5884933480060c090457caa47a02e1378e710c771fd4fc1d7c1",
"md5": "0413be5687eea8d80b58df926e16c3a5",
"sha256": "7c07386bb424d8dd585c1ece4b338b6c34fe1965dcae9f20230147a7b8399e5a"
},
"downloads": -1,
"filename": "ci_starter-0.10.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0413be5687eea8d80b58df926e16c3a5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 21644,
"upload_time": "2025-10-10T03:35:27",
"upload_time_iso_8601": "2025-10-10T03:35:27.936807Z",
"url": "https://files.pythonhosted.org/packages/83/20/41118669a5884933480060c090457caa47a02e1378e710c771fd4fc1d7c1/ci_starter-0.10.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7ada5c0191dc1c93a5b2f83894247c346d48f73c81d6242951a2017d47e32d7c",
"md5": "986a26b87b8ab68ecfdbdd2a7c63ea29",
"sha256": "2dae112d7e30431744600bb972f8028cbdd2243d262179bf4e2a028e5936f35d"
},
"downloads": -1,
"filename": "ci_starter-0.10.5.tar.gz",
"has_sig": false,
"md5_digest": "986a26b87b8ab68ecfdbdd2a7c63ea29",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 13366,
"upload_time": "2025-10-10T03:35:29",
"upload_time_iso_8601": "2025-10-10T03:35:29.051106Z",
"url": "https://files.pythonhosted.org/packages/7a/da/5c0191dc1c93a5b2f83894247c346d48f73c81d6242951a2017d47e32d7c/ci_starter-0.10.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-10 03:35:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fleetingbytes",
"github_project": "ci-starter",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ci-starter"
}