Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gatling/gatling.io-doc/llms.txt

Use this file to discover all available pages before exploring further.

The gatling/enterprise-action GitHub Action lets you start a Gatling Enterprise Edition simulation directly from any GitHub Actions workflow. It connects a workflow job to a single pre-configured simulation and streams run status to the Actions console until the run completes. Failed assertions can automatically fail the workflow, making it easy to enforce performance budgets in your CI/CD pipeline.
This integration is only available on Gatling Enterprise Edition. The Action does not create simulations — you must first configure them in the Gatling Enterprise Edition dashboard using one of the build tool plugins (Maven, Gradle, or sbt).

Action Coordinates

The Action is published at: gatling/enterprise-action@v1 Check the latest releases at github.com/gatling/enterprise-action/releases. You generally only need to specify the major version (currently v1).

Prerequisites

1

Create an API Token

Generate a Gatling Enterprise Edition API token with the Start permission. This token authenticates the Action with the platform.
2

Store the Token as a GitHub Secret

In your repository settings, add an encrypted secret named GATLING_ENTERPRISE_API_TOKEN.
3

Note your Simulation ID

Copy the simulation ID from the Simulations list view in Gatling Enterprise Edition. It looks like test_00000000000000000000000000.

Quickstart

The following minimal workflow triggers a simulation manually using workflow_dispatch:
name: Run Gatling Enterprise Simulation

on:
  workflow_dispatch:
    inputs:
      simulation_id:
        type: string
        required: true

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - name: Gatling Enterprise Action
        uses: gatling/enterprise-action@v1
        with:
          api_token: ${{ secrets.GATLING_ENTERPRISE_API_TOKEN }}
          simulation_id: ${{ inputs.simulation_id }}
Push this to your repository’s default branch for the workflow_dispatch trigger to appear in the Actions tab.

Build, Deploy, and Run (Combined Workflow)

This pattern builds and uploads the simulation on every push to main, then immediately runs it on Gatling Enterprise Edition.
name: Run Gatling Enterprise Simulation

on:
  push:
    branches:
      - main

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  SIMULATION_ID: 'test_00000000000000000000000000'
  GATLING_ENTERPRISE_API_TOKEN: ${{ secrets.GATLING_ENTERPRISE_API_TOKEN }}

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup JDK
        uses: actions/setup-java@v4
        with:
          distribution: 'zulu'
          java-version: '21'
          cache: 'maven'

      - name: Build Gatling simulation
        run: mvn gatling:enterpriseDeploy -Dgatling.enterprise.validateSimulationId=${{ env.SIMULATION_ID }}

      - name: Gatling Enterprise Action
        uses: gatling/enterprise-action@v1
        with:
          simulation_id: ${{ env.SIMULATION_ID }}

Scheduled Weekly Run

Separate your build and run workflows to update the simulation on every push and run it on a schedule:
name: Run Gatling Enterprise Simulation

on:
  schedule:
    - cron: '0 2 * * 0'   # Every Sunday at 02:00 UTC

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - name: Gatling Enterprise Action
        uses: gatling/enterprise-action@v1
        with:
          api_token: ${{ secrets.GATLING_ENTERPRISE_API_TOKEN }}
          simulation_id: 'test_00000000000000000000000000'

Configuration Reference

Inputs

The Action accepts the following inputs in the with: block:
steps:
  - uses: gatling/enterprise-action@v1
    with:
      api_token: ${{ secrets.GATLING_ENTERPRISE_API_TOKEN }}
      simulation_id: 'test_00000000000000000000000000'
      title: 'My run title'
      description: 'My run description'
      extra_system_properties: >
        {
          "sys_prop_1": "value 1",
          "sys_prop_2": 42,
          "sys_prop_3": true
        }
      extra_environment_variables: >
        {
          "ENV_VAR_1": "value 1",
          "ENV_VAR_2": 42
        }
      fail_action_on_run_failure: true
      wait_for_run_end: true
      run_summary_enabled: true
      run_summary_initial_refresh_interval: 5
      run_summary_initial_refresh_count: 12
      run_summary_refresh_interval: 60
InputRequiredDefaultDescription
api_tokenYes*API token for authenticating with Gatling Enterprise Edition. Can also be set via the GATLING_ENTERPRISE_API_TOKEN env var.
simulation_idYesThe ID of the simulation to run.
titleNoTitle for the run report.
descriptionNoDescription for the run summary.
extra_system_propertiesNoJSON object of additional Java system properties to merge with the simulation’s configured properties.
extra_environment_variablesNoJSON object of additional environment variables.
fail_action_on_run_failureNotrueFail the Action if the simulation ends in error or failed assertions.
wait_for_run_endNotrueWait for the simulation to complete before the Action finishes.
run_summary_enabledNotrueLog a run status summary to the console periodically.
run_summary_initial_refresh_intervalNo5Seconds between early status log entries (rounded to multiples of 5).
run_summary_initial_refresh_countNo12Number of early log entries before switching to the slower interval.
run_summary_refresh_intervalNo60Seconds between later status log entries.

Outputs

Access run results in downstream steps using the step’s id:
steps:
  - id: gatling-enterprise-action
    uses: gatling/enterprise-action@v1
    with:
      api_token: ${{ secrets.GATLING_ENTERPRISE_API_TOKEN }}
      simulation_id: 'test_00000000000000000000000000'
  - run: |
      echo "run_id=${{ steps.gatling-enterprise-action.outputs.run_id }}"
      echo "reports_url=${{ steps.gatling-enterprise-action.outputs.reports_url }}"
      echo "run_status_name=${{ steps.gatling-enterprise-action.outputs.run_status_name }}"
      echo "run_assertions=${{ steps.gatling-enterprise-action.outputs.run_assertions }}"
OutputDescription
run_idThe ID of the started run.
reports_urlURL to the run’s reports page in Gatling Enterprise Edition.
runs_urlURL to the simulation’s runs history page.
run_status_nameFinal run status (e.g., Successful, AssertionsFailed).
run_status_codeNumeric code of the final run status.
run_assertionsJSON array of assertion results.

Cancellation

When the Action starts, it registers a post-execution cleanup task. If the workflow is cancelled while a simulation is running, the cleanup task will attempt to stop the simulation run on Gatling Enterprise Edition automatically.

Build docs developers (and LLMs) love