gitlab-ci-variables-secrets
Use when configuring GitLab CI/CD variables, managing secrets, or integrating with external secret providers. Covers secure credential handling.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
GitLab CI - Variables & Secrets
Configure CI/CD variables and manage secrets securely in GitLab pipelines.
Variable Types
Predefined Variables
build:
script:
- echo "Branch: $CI_COMMIT_BRANCH"
- echo "Commit: $CI_COMMIT_SHA"
- echo "Pipeline: $CI_PIPELINE_ID"
- echo "Project: $CI_PROJECT_NAME"
- echo "Registry: $CI_REGISTRY_IMAGE"
Custom Variables
variables:
NODE_ENV: production
DATABASE_URL: "postgres://localhost/app"
build:
variables:
BUILD_TARGET: dist
script:
- npm run build --target=$BUILD_TARGET
Variable Scopes
Global Variables
variables:
GLOBAL_VAR: "available everywhere"
Job-Level Variables
deploy:
variables:
DEPLOY_ENV: production
script:
- ./deploy.sh $DEPLOY_ENV
Environment-Scoped Variables
Configure in GitLab UI: Settings > CI/CD > Variables
- Scope to specific environments (production, staging)
- Scope to specific branches (main, develop)
Protected and Masked Variables
In gitlab-ci.yml
variables:
PUBLIC_KEY:
value: "pk_test_xxx"
description: "Stripe public key"
In GitLab UI
Set variables with:
- Protected: Only available on protected branches/tags
- Masked: Hidden in job logs (requires specific format)
- Expanded: Allow variable references within value
File-Type Variables
deploy:
script:
- cat $KUBECONFIG # File variable contents
- kubectl apply -f deployment.yaml
External Secret Providers
HashiCorp Vault
job:
secrets:
DATABASE_PASSWORD:
vault:
engine:
name: kv-v2
path: secret
field: password
path: production/db
Azure Key Vault
job:
secrets:
API_KEY:
azure_key_vault:
name: my-api-key
version: latest
AWS Secrets Manager
job:
secrets:
AWS_SECRET:
aws_secrets_manager:
name: prod/api-key
version_id: latest
OIDC Authentication
deploy:aws:
id_tokens:
AWS_TOKEN:
aud: https://gitlab.com
script:
- >
aws sts assume-role-with-web-identity
--role-arn $AWS_ROLE_ARN
--web-identity-token $AWS_TOKEN
Best Practices
- Never hardcode secrets in
.gitlab-ci.yml - Use protected variables for production credentials
- Mask sensitive values to prevent log exposure
- Prefer OIDC over long-lived credentials
- Scope variables to minimum required environments
- Use file-type variables for certificates and keys
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-02-04
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!