github.com/jaylevin/jenkins-library@v1.230.4/resources/metadata/gaugeExecuteTests.yaml (about)

     1  metadata:
     2    name: gaugeExecuteTests
     3    description: Installs gauge and executes specified gauge tests.
     4    longDescription: |
     5      In this step Gauge ([getgauge.io](https://getgauge.io)) acceptance tests are executed. Using Gauge it will be possible to have a three-tier test layout:
     6  
     7      Acceptance Criteria
     8      Test implemenation layer
     9      Application driver layer
    10  
    11      This layout is propagated by Jez Humble and Dave Farley in their book "Continuous Delivery" as a way to create maintainable acceptance test suites (see "Continuous Delivery", p. 190ff).
    12  
    13      Using Gauge it is possible to write test specifications in [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) and therefore allow e.g. product owners to write the relevant acceptance test specifications. At the same time it allows the developer to implement the steps described in the specification in her development environment.
    14  
    15      You can use the [sample projects](https://github.com/getgauge/gauge-mvn-archetypes) of Gauge.
    16  
    17  spec:
    18    inputs:
    19      secrets:
    20        - name: seleniumHubCredentialsId
    21          type: jenkins
    22          description: "Defines the id of the user/password credentials to be used to connect to a Selenium Hub. The credentials are provided in the environment variables `PIPER_SELENIUM_HUB_USER` and `PIPER_SELENIUM_HUB_PASSWORD`."
    23      resources:
    24        - name: buildDescriptor
    25          type: stash
    26        - name: tests
    27          type: stash
    28      params:
    29        - name: installCommand
    30          type: string
    31          description: 'Defines the command for installing Gauge. Gauge should be installed using npm. Example: npm install -g @getgauge/cli@1.2.1'
    32          scope:
    33            - STEPS
    34            - STAGES
    35            - PARAMETERS
    36        - name: languageRunner
    37          type: string
    38          description: 'Defines the Gauge language runner to be used. Example: java'
    39          scope:
    40            - STEPS
    41            - STAGES
    42            - PARAMETERS
    43        - name: runCommand
    44          type: string
    45          description: 'Defines the command which is used for executing Gauge. Example: run -s -p specs/'
    46          scope:
    47            - STEPS
    48            - STAGES
    49            - PARAMETERS
    50          mandatory: true
    51        - name: testOptions
    52          type: string
    53          description: "Allows to set specific options for the Gauge execution. Details can be found for example [in the Gauge Maven plugin documentation](https://github.com/getgauge-contrib/gauge-maven-plugin#executing-specs)"
    54          scope:
    55            - STEPS
    56            - STAGES
    57            - PARAMETERS
    58    outputs:
    59      resources:
    60        - name: influx
    61          type: influx
    62          params:
    63            - name: step_data
    64              fields:
    65                - name: gauge
    66                  type: bool
    67        - name: reports
    68          type: reports
    69          params:
    70            - filePattern: "**/TEST-*.xml"
    71              type: acceptance-test
    72            - filePattern: "**/requirement.mapping"
    73              type: requirement-mapping
    74            - filePattern: "**/delivery.mapping"
    75              type: delivery-mapping
    76    containers:
    77      - name: gauge
    78        image: node:lts-stretch
    79        env:
    80          - name: no_proxy
    81            value: localhost,selenium,$no_proxy
    82          - name: NO_PROXY
    83            value: localhost,selenium,$NO_PROXY
    84        workingDir: /home/node
    85        volumeMounts:
    86          - mountPath: /dev/shm
    87            name: dev-shm
    88    sidecars:
    89      - image: selenium/standalone-chrome
    90        name: selenium
    91        securityContext:
    92          privileged: true
    93        volumeMounts:
    94          - mountPath: /dev/shm
    95            name: dev-shm
    96        env:
    97          - name: "NO_PROXY"
    98            value: "localhost,selenium,$NO_PROXY"
    99          - name: "no_proxy"
   100            value: "localhost,selenium,$no_proxy"