Every Webedia project that ships through GitLab CI needs the same building
blocks: log in to GCP, cache dependencies, build a Docker image, run Terraform.
Instead of copy-pasting that YAML into every project, it lives in one shared
repo — webediagroup/transverse/shared/ci/templates —
and each project pulls in just the pieces it needs as versioned components.
Here’s what the library offers, in plain terms. Each template has its own
reference guide
if you want the details, and the repo’s
README
covers how to include and pin them.
The templates
-
base— The foundation everything builds on: it picks the right GCP runner for the job and ships a set of ready-made rules for when jobs should run (merge requests, default branch, manual, and so on). -
auth/auth-multi-org— Logs the pipeline into GCP and shares those credentials with later jobs, so each job doesn’t authenticate again. The multi-org variant handles projects that span several GCP organisations. -
cache— Ready-made caching for npm, yarn and Composer dependencies, so pipelines don’t re-download everything on each run. -
docker— Builds container images and pushes them to Webedia’s GCP Artifact Registry. -
composer— Publishes a PHP package to the project’s GitLab Composer registry. -
terraform/terraform-multi-org— Runs the full infrastructure cycle for Terraform/OpenTofu: validate, security scan, plan, then apply. The multi-org variant adds the organisation dimension. -
terraform-cloud-run-jobs— A pair of templates that together deploy Cloud Run Jobs, bridging an application project to its infrastructure project. -
gchat-notification— Posts deploy notifications to a Google Chat space: a “deploy started” message and then a success or failure result, along with the list of commits going out. -
gemini-code-review— Reviews merge requests automatically with Google’s Gemini model, posting comments and suggestions directly on the MR.
Adding them to your CI
You pull a template into your .gitlab-ci.yml with an include, pinned to a
version — @6 for the latest 6.x, or a precise @6.2.0:
include:
- component: $CI_SERVER_FQDN/webediagroup/transverse/shared/ci/templates/base@6
From there, each template’s reference guide
shows how to wire it into your jobs — usually a line or two of extends: or
!reference:.



