# Logilab's public gitlab-ci templates In the `templates/` you can find some of our gitlab-ci templates. You can include them in your gitlab-ci. To include them use this snippet: ```yaml include: - project: "open-source/gitlab-ci-templates" ref: "branch/default" file: # the stages are: - "templates/no-duplicated-ci-pipelines.yml" # use workflow to avoid duplicated pipelines - "templates/build-docker-image.yml" - "templates/build-debian-package.yml" # will build a .deb and upload it to heptapod - "templates/create-release-on-heptapod-including-debian-package.yml" - "templates/upload-to-pypi.yml" ``` Depending on your templates you will need certains stages **in a specific order**: ```yaml stages: # put your testing/linting stages here before # for build-debian-package.yml - build-debian-package - upload-deb-to-heptapod # for build-docker-image.yml # for release-on-heptapod.yml - release # for upload-to-pypi.yml - publish ``` A recommended configuration for a cube would be: ```yaml include: - project: "open-source/gitlab-ci-templates" ref: "branch/default" file: # the stages are: - "templates/no-duplicated-ci-pipelines.yml" # use workflow to avoid duplicated pipelines - "templates/build-debian-package.yml" # will build a .deb and upload it to heptapod - "templates/create-release-on-heptapod-including-debian-package.yml" - "templates/upload-to-pypi.yml" stages: - lint - tests - build-debian-package - upload-deb-to-heptapod - release - publish ``` You can also refer to [release-new's gitlab-ci](https://forge.extranet.logilab.fr/open-source/release-new/-/blob/branch/default/.gitlab-ci.yml) for instance, to see how it can be used. You can also find the official documentation [here](https://docs.gitlab.com/ee/ci/yaml/includes.html), and some examples [here](https://docs.gitlab.com/ee/ci/yaml/README.html#include).