Integration Jira
# Activer l'integration Jira
# Settings > Integrations > Jira
# URL: https://company.atlassian.net
# Username: jira-bot@company.com
# API token: xxxxx
# Fonctionnalites
# - Mention JIRA-123 dans un commit -> lien automatique
# - Transition automatique des issues Jira
# - Vue des issues Jira dans GitLab
References Jira dans les commits
# Les references sont detectees automatiquement
git commit -m "PROJ-123 Ajouter la validation du formulaire"
git commit -m "Fixes PROJ-456 Corriger le crash au demarrage"
# "Fixes" declenche la transition de l'issue Jira
Integration Slack
# Settings > Integrations > Slack notifications
# Webhook URL: https://hooks.slack.com/services/T.../B.../xxx
# Evenements configurables :
# - Push, Merge request, Pipeline, Deployment
# - Issues, Confidential issues
# - Tags, Notes
# Notification custom dans le pipeline
notify-slack:
stage: notify
image: curlimages/curl:latest
script:
- |
curl -X POST -H "Content-type: application/json" \
--data "{
\"text\": \"Deploiement $CI_COMMIT_TAG en production reussi\",
\"channel\": \"#deployments\",
\"username\": \"GitLab CI\",
\"icon_emoji\": \":rocket:\"
}" \
$SLACK_WEBHOOK_URL
rules:
- if: $CI_COMMIT_TAG
when: on_success
GitLab Container Registry
# Construire et pousser une image
build-image:
stage: build
image: docker:24
services:
- docker:24-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker build -t $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE:latest
GitLab Package Registry
# Publier un package npm
publish-npm:
stage: publish
image: node:20
script:
- echo "@company:registry=https://gitlab.example.com/api/v4/projects/$CI_PROJECT_ID/packages/npm/" > .npmrc
- echo "//gitlab.example.com/api/v4/projects/$CI_PROJECT_ID/packages/npm/:_authToken=$CI_JOB_TOKEN" >> .npmrc
- npm publish
# Publier un package Maven
publish-maven:
stage: publish
image: maven:3.9-eclipse-temurin-21
script:
- mvn deploy -s ci_settings.xml
-DrepositoryId=gitlab-maven
-Durl="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven"
Ecosysteme complet : GitLab offre Container Registry, Package Registry, Terraform State, et des integrations natives avec Kubernetes, Jira et Slack pour centraliser tout le workflow DevOps.