Collection of CI/CD templates, inspired by https://gitlab.com/redmic-project/gitlab-ci-templates
You can use templates available at this project into your own projects, importing them at your .gitlab-ci.yml
file.
Each template contains one or more GitLab CI Jobs, which you can use as-is or customize, overriding values or extending your own jobs from them.
Note that some templates have a base definition version, prefixed with an underscore (_
). You can import them if this definition is more convenient to your project.
GitLab CI Jobs from these templates run at a specific stage of your project GitLab CI Pipelines. Check description of each template for more info.
You must reference these stages (ordered as you need) at your project's .gitlab-ci.yml
, or jobs will not run. Jobs stage value can be overwritten too, is you wish.
Here is a list of all stages used by template jobs by default, with suggested order:
test
pre-package
package
post-package
deploy
Templates are included into .gitlab-ci.yml
like this:
include:
- project: 'pedroetb-projects/gitlab-ci-templates'
ref: master
file: '/packaging-docker/docker-build.yml'
stages:
- pre-package
- package
- post-package
...
Templates are located at different directories, attending it purpose.
Deploy a service (based in Docker) in a remote environment, using redmic-project/docker/docker-deploy
.
-
custom-image.yml: Adapt jobs from
deployment-service/_docker-deploy.yml
to use a custom Docker image, defined at your project and uploaded to GitLab Docker registry of your project. -
docker-deploy.yml: Deploy one or more services defined at your project (using compose files and related contents) to a remote environment, defined by the subdirectory of
deployment-service/
where template file is located. You can also provide your own environment definition, overriding default values or extending fromdeployment-service/_docker-deploy.yml
. Run atdeploy
stage.
Only for projects with Docker image definitions. Include Docker image building, tagging and pushing, and also Dockerfile linting and Docker image scanning.
- docker-build.yml: Build a Docker image defined at your project, using
pedroetb-projects/docker-build
. Imports jobs frompackaging-docker/dockerfile-linting.yml
andscanning/container-scanning.yml
too. Include 3 stages:pre-package
,package
andpost-package
. - dockerfile-linting.yml: Run syntax checks over Dockerfile at your project. Run at
pre-package
stage. Already included atpackaging-docker/docker-build.yml
.
- container-scanning.yml: Run vulnerability checks over your Docker image. Run at
post-package
stage. Already included atpackaging-docker/docker-build.yml
. Inherit from GitLab CI templates. - dependency-scanning.yml: Lookup dependencies at your code, finding vulnerabilities and licenses compliance status. Run at
test
stage. Inherit from GitLab CI templates.