Cette traduction peut être obsolète.

Recette Docker

L'image conteneur officielle est construite à partir de scratch avec un binaire lié statiquement, donc l'image est petite (environ 26 Mo) et n'embarque pas d'OS.

Image

L'image se trouve à ghcr.io/carthage-software/mago sur le GitHub Container Registry.

Tags

Chaque release publie plusieurs tags pour épingler à la précision souhaitée :

TagExempleDescription
latestghcr.io/carthage-software/mago:latestPointe toujours vers la release la plus récente.
<version>ghcr.io/carthage-software/mago:1.25.2Épinglé à une version exacte.
<major>.<minor>ghcr.io/carthage-software/mago:1.25Suit le dernier patch d'une version mineure.
<major>ghcr.io/carthage-software/mago:1Suit la dernière release d'une version majeure.

L'image prend en charge linux/amd64 et linux/arm64. Docker récupère la bonne variante pour votre hôte.

Démarrage rapide

Montez votre répertoire de projet et lancez n'importe quelle commande :

docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago lint

Exemples

Lint :

docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago lint

Vérifier le formatage sans écrire :

docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago fmt --check

Appliquer le formatage :

docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago fmt

Lancer une analyse statique :

docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago analyze

Afficher la version :

docker run --rm ghcr.io/carthage-software/mago --version

Intégration CI

GitHub Actions

name: Mago Code Quality

on:
  push:
  pull_request:

jobs:
  mago:
    name: Run Mago Checks
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/carthage-software/mago:1
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Check formatting
        run: mago fmt --check

      - name: Lint
        run: mago lint --reporting-format=github

      - name: Analyze
        run: mago analyze --reporting-format=github

L'image n'inclut pas PHP ni Composer. Cela fonctionne très bien pour le formateur et le linter. L'analyseur a besoin que les dépendances Composer du projet soient installées pour résoudre correctement les symboles ; sans cela, il signalera des faux positifs sur les symboles indéfinis. Si votre projet dépend de paquets tiers et que vous voulez lancer l'analyseur, préférez une installation native avec les dépendances Composer installées.

GitLab CI

mago:
  image: ghcr.io/carthage-software/mago:1
  script:
    - mago fmt --check
    - mago lint
    - mago analyze

Bitbucket Pipelines

pipelines:
  default:
    - step:
        name: Mago Code Quality
        image: ghcr.io/carthage-software/mago:1
        script:
          - mago fmt --check
          - mago lint
          - mago analyze

Alias shell

Traiter l'image comme s'il s'agissait d'un binaire local :

alias mago='docker run --rm -v $(pwd):/app -w /app ghcr.io/carthage-software/mago:1'

Ajoutez la ligne à votre fichier d'init de shell, rechargez le shell, puis lancez mago lint (ou toute autre sous-commande) comme d'habitude.

↳ Modifier cette page →