cognee/.github/workflows
Vasilije 6b86f423ff
COG-3546: Initial release pipeline (#1883)
<!-- .github/pull_request_template.md -->

## Description

### Inputs: 
`flavour`: `dev` or `main`
`test_mode`: `Boolean`. Aka Dry Run. If true, it won't affect public
indices or repositories

### Jobs
* Create GitHub Release
* Release PyPI Package
* Release Docker Image

[Test
run](https://github.com/topoteretes/cognee/actions/runs/20167985120)

<img width="551" height="149" alt="Screenshot 2025-12-12 at 14 31 06"
src="https://github.com/user-attachments/assets/37648a35-0af8-4474-b051-4a81f8f8cfe7"
/>

#### Create GitHub Release
Gets the `version` from `pyproject.toml`
Creates a tag and release based on the version. The version in
`pyproject.toml` **must** be already correct!
If the version not updated and tag already exists - the process will
take no effect and be failed.

Test release was deleted. Here is the screenshot:
<img width="818" height="838" alt="Screenshot 2025-12-12 at 14 19 06"
src="https://github.com/user-attachments/assets/c2009f9f-1411-494e-8268-6489f6bdd959"
/>

#### Release PyPI Package

Publishes the `dist` artifacts to pypi.org. If `test_mode` enabled - it
will publish it to test.pypi.org
([example](https://test.pypi.org/project/cognee/0.5.0.dev0/)). <<<
That's how I tested it.

#### Release Docker Image
**IMPORTANT!**
Builds the image and tags it with the version from `pyproject.toml`. For
example:
* `cognee/cognee:0.5.1.dev0`
* `cognee/cognee:0.5.1`
ONLY **main** flavor adds the `latest` tag!. If a user does `docker pull
cognee/cognee:latest` - the latest `main` release image will be pulled

## Type of Change
<!-- Please check the relevant option -->
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [x] Other (please specify): CI

## Screenshots/Videos (if applicable)
<!-- Add screenshots or videos to help explain your changes -->

## Pre-submission Checklist
<!-- Please check all boxes that apply before submitting your PR -->
- [ ] **I have tested my changes thoroughly before submitting this PR**
- [ ] **This PR contains minimal changes necessary to address the
issue/feature**
- [ ] My code follows the project's coding standards and style
guidelines
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have added necessary documentation (if applicable)
- [ ] All new and existing tests pass
- [ ] I have searched existing PRs to ensure this change hasn't been
submitted already
- [ ] I have linked any relevant issues in the description
- [ ] My commits have clear and descriptive messages

## DCO Affirmation
I affirm that all code in every commit of this pull request conforms to
the terms of the Topoteretes Developer Certificate of Origin.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Added an automated release pipeline that creates versioned GitHub
releases, publishes Python packages to TestPyPI/PyPI, and builds/pushes
Docker images.
* Supports selectable dev/main flavors, includes flavor-specific image
tagging and labels, wires version/tag outputs for downstream steps, and
offers a test-mode dry run that skips external publishing.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-15 17:13:40 +01:00
..
approve_dco.yaml
backend_docker_build_test.yml feat: Return CI test for docker build (#977) 2025-06-12 06:10:21 -04:00
basic_tests.yml remove code_graph example after dev merge 2025-11-26 12:32:17 +01:00
clean_stale_pr.yaml
cli_tests.yml refactor: Disable telemetry for all non telemetry tests 2025-11-11 19:55:29 +01:00
community_greetings.yml Main merge vol5 (#1252) 2025-08-14 21:17:17 +02:00
db_examples_tests.yml chore: Disable backend access control when not supported 2025-12-01 15:58:19 +01:00
disable_independent_workflows.sh feat(#1357): Lexical chunk retriever (#1392) 2025-09-19 18:24:33 +02:00
distributed_test.yml chore: Disable multi user mode for tests that can't run it 2025-12-01 15:07:01 +01:00
docker_compose.yml
dockerhub-mcp.yml Simplify Docker Buildx setup in workflow 2025-10-25 13:40:21 +02:00
dockerhub.yml
e2e_tests.yml feat: make pipeline processing cache optional (#1876) 2025-12-12 13:11:31 +01:00
examples_tests.yml chore: disable backend access control for tests not supporting mode 2025-11-28 13:48:01 +01:00
graph_db_tests.yml chore: disable backend access control for tests not supporting mode 2025-11-28 13:48:01 +01:00
label-core-team.yml added auto tagging 2025-09-16 16:16:25 -07:00
load_tests.yml CI: removed unnecessary ulimit 2025-11-07 11:11:05 +01:00
notebooks_tests.yml Merge dev with main (#921) 2025-06-07 07:48:47 -07:00
pr_lint
pre_test.yml Removed python-version from pre-test 2025-12-04 11:51:32 +01:00
relational_db_migration_tests.yml test: replace neo4j usages in cicd with reusable local instances (#1507) 2025-10-09 12:39:18 +02:00
release.yml Cleanup 2025-12-12 17:31:54 +01:00
release_discord_action.yml
release_test.yml CI: Run release workflow on PR to main 2025-11-06 16:44:43 +01:00
reusable_notebook.yml fix: uv uninstalls rest of packages in some workflows 2025-08-15 09:48:23 +01:00
scorecard.yml Create scorecard.yml 2025-10-20 15:22:01 +02:00
search_db_tests.yml fix: set tests to not use multi-user mode 2025-10-31 20:10:05 +01:00
temporal_graph_tests.yml chore: Disable multi user mode for tests that can't run it 2025-12-01 15:07:01 +01:00
test_different_operating_systems.yml CI: Added timeouts for all OS tests 2025-11-04 12:13:48 +01:00
test_llms.yml fix: fix model names and test names 2025-11-26 13:35:56 +01:00
test_mcp.yml feat: replace Owlready2 with RDFLib (#981) 2025-06-17 14:49:53 +02:00
test_ollama.yml Increase the machine size 2025-12-01 15:23:59 +01:00
test_s3_file_storage.yml Merge branch 'dev' into feature/cog-2871-add-docling-as-data-ingestion-option-to-cognee-add 2025-10-12 13:06:13 +02:00
test_suites.yml CI: uv lock check. Pre-test workflow. 2025-12-04 11:47:35 +01:00
update-contributors.yml
vector_db_tests.yml chore: disable backend access control for tests not supporting mode 2025-11-28 13:48:01 +01:00
weighted_edges_tests.yml chore: disable backend access control 2025-11-28 14:56:33 +01:00