Continuous Integration
Speichern Sie ein Token als Secret, übergeben Sie es Composer über COMPOSER_AUTH und melden Sie optional die Lock-Datei an Ihr Abhängigkeits-Dashboard.
1. Ein Token für CI
Erstellen Sie es unter Einstellungen → Composer-Tokens (oder, für ein Team, unter den Composer-Tokens der Organisation: Diese funktionieren weiter, wenn Personen ausscheiden). Beschränken Sie es auf die Pakete, die das Projekt verwendet, und auf die IP-Bereiche Ihrer Runner, und geben Sie ihm ein Ablaufdatum. Speichern Sie es als Secret mit dem Namen METEORGPL_TOKEN.
Das Repository wird einmalig in die composer.json des Projekts eingetragen:
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
Caching und reproduzierbare Builds
Dists sind unveränderlich: Cachen Sie das Cache-Verzeichnis von Composer zwischen den Läufen (composer config cache-dir). Committen Sie composer.lock; jede veröffentlichte Version bleibt verfügbar, sodass Installationen reproduzierbar sind, bis eine Version zurückgezogen wird.
Bei neuen Versionen deployen
Ein Webhook (Einstellungen → Webhooks) kann einen Workflow auslösen, wenn ein Paket, das Sie verwenden, eine neue Version erhält – zum Beispiel ein repository_dispatch, das composer update ausführt und einen Pull Request öffnet.