Aller au contenu principal

Guides de développement

Athea Toolbox

La toolbox Athea contient des templates CI/CD qui peuvent être utilisés dans le fichier .gitlab-ci.yml de vos projets.
Ce projet se trouve dans le projet toolbox/athea-toolbox.

Exemples existants

En complément de la toolbox, dans le groupe toolbox/samples, des exemples sont disponibles pour différents langages utilisant les templates de l’Athea Toolbox (par exemple : python).

Ajouter des variables CI/CD à un tenant

Plusieurs variables CI/CD doivent être créées pour un tenant, au niveau du groupe de sous-groupes créé pour le tenant.

  • Accédez au groupe du tenant et cliquez sur Settings > Access tokens
  • Cliquez sur Add new token à droite
  • Donnez un nom au token, par exemple gitlab-token
  • Définissez une date d’expiration (si elle est supprimée, le token expire dans un an)
  • Définissez au minimum le rôle Reporter
  • Sélectionnez au minimum le scope read_repository
  • Cliquez sur Create group access token
  • Notez le access token obtenu

Créer les variables CI/CD correspondantes

  • Toujours dans le groupe du tenant, cliquez sur Settings > CI/CD
  • Cliquez sur Variables
  • Cliquez sur Add variable
  • Ajoutez la variable ACI_GITLAB_TOKEN_NAME
    • Désactivez Protect variable et Expand variable reference
    • Définissez Key sur ACI_GITLAB_TOKEN_NAME
    • Définissez Value avec le nom du token choisi précédemment
    • Cliquez sur Add variable
  • Ajoutez la variable ACI_GITLAB_TOKEN_VALUE
    • Dans Visibility, choisissez Masked
    • Désactivez Protect variable et Expand variable reference
    • Définissez Key sur ACI_GITLAB_TOKEN_VALUE
    • Définissez Value avec le access token créé précédemment
    • Cliquez sur Add variable

Utilisation des templates

La première étape consiste à trouver un template que vous souhaitez utiliser, puis à créer un fichier .gitlab-ci.yml à la racine de votre projet.

Dans le fichier .gitlab-ci.yml :

  1. pour chaque template que vous souhaitez utiliser, vous devez l’ajouter aux fichiers importés
  2. pour chaque job présent dans un template que vous souhaitez utiliser, vous devez créer un job qui l’extends
  3. pour chaque variable que vous souhaitez modifier pour votre job, vous devez la redéfinir avec les valeurs attendues
  4. dans le cas où vous avez plusieurs jobs et souhaitez partager certaines variables, il est possible de créer des variables partagées en utilisant des anchors YAML
include:
# Dépendances Athea-toolbox
- project: 'Toolbox/athea-toolbox'
ref: $ACI_TOOLBOX_VERSION
file: # (1)
- '/templates/03_package/package_buildah.yml'

stages:
- package

# (4.1)
.variables-configuration: &variables-configuration # utiliser un anchor pour y faire référence plus tard
APP_NAME: athea-sample-exemple
# Variables utilisées pour sed dans export/template/template_descriptor.yaml
CONTAINER_IMAGE_NAME: "athea-sample-exemple"
CONTAINER_IMAGE_VERSION: "3.0.$CI_PIPELINE_ID"

build_buildah:
extends: .package_buildah # (2)
variables: # (3) & (4.2)
<<: *variables-configuration
BUILDAH_BUILD_ARGS: '--build-arg BASE_IMAGE=$ACI_CONTAINER_REGISTRY_URL/athea/my-exemple-image:0.0.1'
DOCKERFILE_PATH: "./Dockerfile"
BUILDAH_CONTEXT: "."
TRIVY_SEVERITY_ERROR: ""
CONTAINER_REGISTRY_INSECURE: "false"