metadata:
  name: abapEnvironmentRunAUnitTest
  description: Runs an AUnit Test
  longDescription: |
    This step is for triggering an [AUnit](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/cdd19e3a5c49458291ec65d8d86e2b9a.html) test run on an SAP BTP ABAP Environment system.
    Please provide either of the following options:

    * The host and credentials of the BTP ABAP Environment system itself. The credentials must be configured for the Communication Scenario SAP_COM_0735.
    * The Cloud Foundry parameters (API endpoint, organization, space), credentials, the service instance for the ABAP service and the service key for the Communication Scenario SAP_COM_0735.
    * Only provide one of those options with the respective credentials. If all values are provided, the direct communication (via host) has priority.

    Regardless of the option you chose, please make sure to provide the object set containing the objects that you want to be checked analog to the examples listed on this page.
spec:
  inputs:
    secrets:
      - name: abapCredentialsId
        aliases:
          - name: cfCredentialsId
        description: Jenkins credentials ID containing user and password to authenticate to the BTP ABAP Environment system or the Cloud Foundry API
        type: jenkins
    params:
      - name: aUnitConfig
        type: string
        description: Path to a YAML configuration file for the object set to be checked during the AUnit test run
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: false
      - name: repositories
        type: string
        description: Specifies a YAML file containing the repositories configuration
        scope:
          - GENERAL
          - PARAMETERS
          - STAGES
          - STEPS
      - name: cfApiEndpoint
        type: string
        description: Cloud Foundry API endpoint
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
        aliases:
          - name: cloudFoundry/apiEndpoint
      - name: cfOrg
        type: string
        description: Cloud Foundry org
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
        aliases:
          - name: cloudFoundry/org
      - name: cfServiceInstance
        type: string
        description: Parameter of ServiceInstance Name to delete Cloud Foundry Service
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
        aliases:
          - name: cloudFoundry/serviceInstance
      - name: cfServiceKeyName
        type: string
        description: Parameter of Cloud Foundry Service Key to be created
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
        aliases:
          - name: cloudFoundry/serviceKey
          - name: cloudFoundry/serviceKeyName
          - name: cfServiceKey
      - name: cfSpace
        type: string
        description: Cloud Foundry Space
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
        aliases:
          - name: cloudFoundry/space
      - name: username
        type: string
        description: User for either the Cloud Foundry API or the Communication Arrangement for SAP_COM_0735
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: abapCredentialsId
            type: secret
            param: username
      - name: password
        type: string
        description: Password for either the Cloud Foundry API or the Communication Arrangement for SAP_COM_0735
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: true
        secret: true
        resourceRef:
          - name: abapCredentialsId
            type: secret
            param: password
      - name: host
        type: string
        description: Specifies the host address of the SAP BTP ABAP Environment system
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
      - name: aUnitResultsFileName
        type: string
        description: Specifies output file name for the results from the AUnit run.
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
        mandatory: false
        default: "AUnitResults.xml"
      - name: generateHTML
        type: bool
        description: Specifies whether the AUnit results should also be generated as an HTML document
        scope:
          - PARAMETERS
          - STAGES
          - STEPS
          - GENERAL
        mandatory: false
  containers:
    - name: cf
      image: ppiper/cf-cli:7
