Skip to content

skale-5/gitlab-ci

Repository files navigation

gitlab-ci

pipeline status Latest Release pre-commit

Ce repo vise à centraliser la gestion des gitlab-ci utilisées à Skale-5 (celles qui ne sont pas générées par le CICD generator) Cela correspond par exemple aux CI utilisées en internes dans les repos cookiecutter mais aussi aux CI custom utilisées chez les clients.

Structure

Le dossier templates/base contient tous des templates unitaires utilisés par le dossier templates/worflows.

En principe c'est les templates du dossier workflows que vous devriez utiliser.

Exemple d'utilisations

En utilisant un template de workflows

include:
  - project: 'skale-5/gitlab-ci'
    ref: main # branch or tag to use
    file: '/templates/workflows/.gitlab-ci.terraform.yml'

En utilisant un template de base

stages:
- lint # stages to include

include:
  - project: 'skale-5/gitlab-ci'
    ref: main # branch or tag to use
    file: '/templates/base/.gitlab-ci.tffmt.yml'

Pour utiliser les workflows à l'extérieur de git.sk5.io, on peut se servir de la source publique :

include:
  - remote: https://raw.githubusercontent.com/skale-5/gitlab-ci/main/templates/workflows/.gitlab-ci.common.yml

Workflow utilisant semantic-release

Semantic-release

Il faut créer le fichier .releaserc dans le repo dans lequel on veut utiliser semantic-release

{
  "tagFormat": "v${version}",
  "repositoryUrl": "https://git.sk5.io/XXXXXXXXXXXXXXXXXXXXXXXX",
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/changelog",
    ["@semantic-release/git", {
      "assets": ["CHANGELOG.md"],
      "message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}[skip ci]"
    }],
    "@semantic-release/gitlab"
  ],
  "branches": ["main","master"]
}

Un changelog est automatiquement généré

Configuration de trivy

Si aucun fichier de configuration n'est fournit, alors le pipeline en créé un par default.

Exemple pour une CI qui ne fail pas mais qui analyse tous les niveaux de criticité

 security-checks:
  - vuln
  - config
  - secret
vulnerability:
  type:
    - os
    - library
  ignore-unfixed: false
exit-code: 0
severity:
  - UNKNOWN
  - LOW
  - MEDIUM
  - HIGH
  - CRITICAL

Exemple pour une CI sort en erreur si CRITICAL

exit-code: 1
severity:
  - CRITICAL

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •