Intégration continue
Enregistrez un jeton comme secret, transmettez-le à Composer via COMPOSER_AUTH et, si vous le souhaitez, envoyez le fichier lock à votre tableau de bord des dépendances.
1. Un jeton pour la CI
Créez-le dans Paramètres → Jetons Composer (ou, pour une équipe, dans les jetons Composer de l’organisation : il continue de fonctionner lorsque des personnes partent). Limitez-le aux paquets utilisés par le projet et aux plages IP de vos runners, et donnez-lui une date d’expiration. Enregistrez-le comme secret nommé METEORGPL_TOKEN.
Le dépôt se déclare une seule fois dans le composer.json du projet :
composer config repositories.meteorgpl composer https://composer.meteorgpl.com
GitHub Actions
- name: Install PHP dependencies
env:
COMPOSER_AUTH: '{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"${{ secrets.METEORGPL_TOKEN }}"}}}'
run: composer install --no-interaction --prefer-dist
- name: Report composer.lock to the dependency dashboard
if: github.ref == 'refs/heads/main'
run: curl -fsS -u "token:${{ secrets.METEORGPL_TOKEN }}" -F [email protected] https://meteorgpl.com/api/projects/<project-id>/lock
GitLab CI
install:
image: composer:2
variables:
COMPOSER_AUTH: '{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"$METEORGPL_TOKEN"}}}'
script:
- composer install --no-interaction --prefer-dist
Bitbucket Pipelines
- step:
image: composer:2
script:
- export COMPOSER_AUTH='{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"'"$METEORGPL_TOKEN"'"}}}'
- composer install --no-interaction --prefer-dist
CircleCI
- run:
name: composer install
command: |
export COMPOSER_AUTH='{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"'"$METEORGPL_TOKEN"'"}}}'
composer install --no-interaction --prefer-dist
Mise en cache et builds reproductibles
Les dists sont immuables : conservez le répertoire de cache de Composer entre les exécutions (composer config cache-dir). Versionnez composer.lock ; chaque version publiée reste disponible, les installations sont donc reproductibles tant qu’une version n’est pas retirée.
Déployer à chaque nouvelle version
Un webhook (Paramètres → Webhooks) peut déclencher un workflow lorsqu’un paquet que vous utilisez reçoit une nouvelle version — par exemple un repository_dispatch qui exécute composer update et ouvre une pull request.