Intégration

GitHub Action Pathly (pathly-action)

Smoke post-deploy : run-scenario échoue le job si le run n’est pas ok. Alias run-and-wait.

Contrat OpenAPIÉmettre une clé d’APICompte Solo gratuit

Document complet, sans authentification, à donner à votre générateur de client.

GitHub Action

Action officielle pathlyhq/pathly-action@v1 (sources monorepo integrations/github-action). Opérations : ping (vérifie la clé), assert-scenario (échoue si lastStatus ≠ ok, sans nouveau run), ensure-scenario (crée / met à jour un Ping ou une Chain via httpChain) et run-scenario (déclenche une exécution et échoue le job si le statut n’est pas ok). run-and-wait est un alias de run-scenario. Placez PATHLY_API_TOKEN dans les secrets du dépôt.

Cas d’usage typique : après deploy sur main, un job « Pathly smoke » lance run-scenario et passe le workflow au rouge si le parcours critique échoue. Portées minimales : runs:trigger + runs:read pour exécuter et poller ; scenarios:write pour ensure-scenario.

run-scenario (job rouge si pas ok)

# .github/workflows/pathly.yml
name: Pathly CI
on:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  pathly:
    runs-on: ubuntu-latest
    steps:
      - name: Smoke checkout
        uses: pathlyhq/pathly-action@v1
        with:
          api_token: ${{ secrets.PATHLY_API_TOKEN }}
          operation: run-scenario
          scenario_id: ${{ vars.PATHLY_CHECKOUT_SCENARIO_ID }}
          timeout_sec: "120"

assert-scenario (rapide, pas de nouveau run)

- name: Pathly assert
  uses: pathlyhq/pathly-action@v1
  with:
    api_token: ${{ secrets.PATHLY_API_TOKEN }}
    operation: assert-scenario
    scenario_id: ${{ vars.PATHLY_CHECKOUT_SCENARIO_ID }}

ping post-deploy

- name: Pathly ping
  uses: pathlyhq/pathly-action@v1
  with:
    operation: ping
    api_token: ${{ secrets.PATHLY_API_TOKEN }}

ensure-scenario

- name: Ensure checkout
  uses: pathlyhq/pathly-action@v1
  with:
    api_token: ${{ secrets.PATHLY_API_TOKEN }}
    operation: ensure-scenario
    scenario_json: |
      {
        "name": "Checkout",
        "url": "https://www.example.com/cart",
        "intervalSec": 300,
        "severity": "major"
      }