Composer en CI
Un token limitado para tu pipeline, COMPOSER_AUTH y recetas para GitHub Actions y GitLab CI.
En esta página
Antes de empezar
- Crea un token para el pipeline: un token de organización para la CI de un equipo (sigue funcionando cuando alguien se va, Tokens de organización, facturación, registro de auditoría y DPA), o uno personal (Tokens de Composer).
- Limítalo a los paquetes que usa el proyecto y a los rangos de IP de tus runners, y ponle una fecha de caducidad.
- Guárdalo como secreto en tu CI, por ejemplo
METEORGPL_TOKEN. - El
composer.jsondel proyecto tiene la entrada del repositorio (Instalar paquetes con Composer).
Entrega el token a Composer
Composer lee las credenciales de la variable de entorno COMPOSER_AUTH, así que no se escribe nada en disco:
COMPOSER_AUTH='{"http-basic":{"composer.meteorgpl.com":{"username":"token","password":"<your-token>"}}}'
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
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
La página de CI de la documentación tiene lo mismo para Bitbucket Pipelines y CircleCI, y el paso que envía composer.lock a un proyecto.
Informa de lo que ha instalado el pipeline
Después de composer install, un paso puede enviar composer.lock a un proyecto, que muestra entonces qué paquetes están desactualizados:
curl -fsS -u token:$METEORGPL_TOKEN -F lock_file=@composer.lock https://meteorgpl.com/api/projects/<project-id>/lock
La página del proyecto muestra este comando con su propio id.
Caché
Las versiones no cambian nunca una vez publicadas: guarda en caché el directorio de caché de Composer entre ejecuciones y haz commit de composer.lock. Las instalaciones siguen siendo reproducibles mientras no se retire una versión.
Despliega con las nuevas versiones
Un webhook puede iniciar un pipeline cuando un paquete que usas recibe una nueva versión, por ejemplo un repository_dispatch de GitHub que ejecuta composer update y abre un pull request.
Preguntas
Mi pipeline recibe 403. La cuenta o la organización no tiene un plan activo, o la dirección del runner está fuera de las redes que permite el token. Comprueba Configuración → Tokens de Composer y la dirección IP de salida del runner.
¿No ha respondido esto a tu pregunta? Contactar con soporte.

