Autres providers CI
L'image Docker ghcr.io/mankinds/ci fonctionne avec tout CI qui sait lancer un conteneur comme étape de build. Le schéma reste le même : injecter MANKINDS_API_KEY, lancer mankinds-ci --agent ..., et laisser le code de sortie décider l'état du build.
CircleCI
version: 2.1
jobs:
mankinds_eval:
docker:
- image: ghcr.io/mankinds/ci:v1
steps:
- run:
name: Mankinds quality gate
command: mankinds-ci --agent 00000000-0000-4000-8000-000000000000
workflows:
build_and_eval:
jobs:
- mankinds_eval:
context: mankinds # Contexte CircleCI portant MANKINDS_API_KEY
filters:
branches:
only: main
Définissez MANKINDS_API_KEY dans Organization Settings → Contexts → mankinds → Add environment variable.
Bitbucket Pipelines
image: atlassian/default-image:4
pipelines:
branches:
main:
- step:
name: Mankinds quality gate
image: ghcr.io/mankinds/ci:v1
script:
- mankinds-ci --agent 00000000-0000-4000-8000-000000000000
Définissez MANKINDS_API_KEY comme Secured Repository variable dans Repository settings → Pipelines → Repository variables.
Jenkins
Pipeline déclaratif avec le plugin Docker :
pipeline {
agent {
docker {
image 'ghcr.io/mankinds/ci:v1'
args '-e MANKINDS_API_KEY=$MANKINDS_API_KEY'
}
}
environment {
MANKINDS_API_KEY = credentials('mankinds-api-key')
}
stages {
stage('Mankinds quality gate') {
steps {
sh 'mankinds-ci --agent 00000000-0000-4000-8000-000000000000'
}
}
}
}
Créez le credential mankinds-api-key dans Manage Jenkins → Credentials → System → Global credentials comme entrée "Secret text".
Modèle Docker générique
Tout CI qui lance des conteneurs peut lancer le gate :
docker run --rm \
-e MANKINDS_API_KEY=$MANKINDS_API_KEY \
ghcr.io/mankinds/ci:v1 \
--agent 00000000-0000-4000-8000-000000000000 \
--base-url https://app.mankinds.io \
--timeout-minutes 30
Le conteneur sort en 0 quand le gate passe et en non-zéro quand le gate échoue ou ne peut pas être vérifié.
Sans Docker (curl + jq)
Si votre runner ne peut pas pull d'image, appelez directement l'API publique :
POST /api/v1/agents/{agent_id}/runsavecX-API-Key.- Poll
GET /api/v1/agents/{agent_id}/runs/{run_id}jusqu'à un statut terminal. - Échouez le job sauf si
results.gate.passedvauttrue.
L'image Docker évite d'avoir cette logique de polling et de code de sortie dans vos scripts CI.
Voir aussi
- Configuration du quality gate : ajustez la règle qui décide pass/fail.
- GitHub Actions : configuration du workflow GitHub.
- GitLab CI : configuration GitLab avec l'image Docker.