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 variableetExpand variable reference - Définissez
KeysurACI_GITLAB_TOKEN_NAME - Définissez
Valueavec le nom du token choisi précédemment - Cliquez sur
Add variable
- Désactivez
- Ajoutez la variable
ACI_GITLAB_TOKEN_VALUE- Dans
Visibility, choisissezMasked - Désactivez
Protect variableetExpand variable reference - Définissez
KeysurACI_GITLAB_TOKEN_VALUE - Définissez
Valueavec le access token créé précédemment - Cliquez sur
Add variable
- Dans
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 :
- pour chaque template que vous souhaitez utiliser, vous devez l’ajouter aux fichiers importés
- pour chaque job présent dans un template que vous souhaitez utiliser, vous devez créer un job qui l’
extends - pour chaque variable que vous souhaitez modifier pour votre job, vous devez la redéfinir avec les valeurs attendues
- 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"