Forum Discussion

Yki's avatar
Yki
Contributor
3 years ago
Solved

Using readyApi with Github Actions and Maven

I am the only one who is trying to do this? If not please. HELP  How / Where do I set the accesstoken.

 

Why is there no solution to run ReadyAPI with Maven on a headless machine with this "§$&$§" id based license.

I even had a discussion with the AI ChatGPT and to be honest he was a little more useful than the Smartbear Support. At least he gave some weird solutions to what I can try to get my tests running. The support hasn't even answered my question yet.

 

GitHub Actions is installing ReadyApi with each run and tries to run the tests by given the parameter I have in my POM. The only thing which is missing is this authentication.

 

At the moment we are running the tests on Bamboo and there we had the same problem. In the end, the support gave us a filebased license but that is not an option anymore.

 

So is there anybody who is using Maven and figured out where to put the authentication data? I really would appreciate the help.

  •  thank you nmrao  I opened several tickets for various problems I am facing. Instead of answering they released a new version and with chatgpt I was able to solve my issues for now...

     

    KonGres 

    This is how it working for me
    1. POM

     

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>groupId</groupId>
    	<artifactId>flexibill-soapui-tests</artifactId>
    	<version>1.0</version>
    	<packaging>pom</packaging>
    	<name>ReadyApi Project Name</name>
    	<organization>
    		<name>company</name>
    		<url>https://www.google.com</url>
    	</organization>
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	</properties>
    	<repositories>
        </repositories>
    	<pluginRepositories>
    		<pluginRepository>
    			<id>SmartBearPluginRepository</id>
    			<url>https://smartbearsoftware.com/repository/maven2</url>
    		</pluginRepository>
    		<pluginRepository>
    			<id>com.teamdev</id>
    			<url>https://europe-maven.pkg.dev/jxbrowser/releases</url>
    		</pluginRepository>
    	</pluginRepositories>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>com.smartbear</groupId>
    				<artifactId>ready-api-maven-plugin</artifactId>
    				<version>3.46.0</version>
    				<configuration>
    					<!--<globalProperties> <value>preemptive=true</value> </globalProperties> -->
    					<slmAccessKey>your-access-key</slmAccessKey>
    					<projectFile>project_folder</projectFile>
    					<printReport>false</printReport>
    					<outputFolder>${project.build.directory}/readyapi</outputFolder>
    					<junitReport>true</junitReport>
    					<exportAll>true</exportAll>
    					<readyApiProperties>
    						<property>
    							<name>readyapi.logroot</name>
    							<value>${project.build.directory}/readyapi-logs/</value>
    						</property>
    						<property>
    							<name>licenseApiAccessForEveryone</name>
    							<value>true</value>
    						</property>
    					</readyApiProperties>
    					<environment>${env}</environment>
    					<testSuite>${testSuite}</testSuite>
    					<testCase>${testCase}</testCase>
    					<tags>
    						<param>TestCase ${env}</param>
    					</tags>
    					<!-- Only test cases with corresponding tags will be executed -->
    				</configuration>
    				<dependencies>
    					<dependency>
    						<groupId>mysql</groupId>
    						<artifactId>mysql-connector-java</artifactId>
    						<version>8.0.28</version>
    					</dependency>
    					<dependency>
    						<groupId>org.iban4j</groupId>
    						<artifactId>iban4j</artifactId>
    						<version>3.2.1</version>
    					</dependency>
    					<dependency>
    						<groupId>com.smartbear</groupId>
    						<artifactId>ready-api-jdbc-virts</artifactId>
    						<version>3.3.2</version>
    					</dependency>
    				</dependencies>
    				<executions>
    					<execution>
    						<phase>test</phase>
    						<goals>
    							<goal>test</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    	</build>
    </project>

     

     

     2. yaml for Github actions

     

    name: manual_create_testdata
    concurrency: build
    
    on:
      workflow_dispatch:
        inputs:
          environment:
            description: Please specify environment (Integration/Test) for manual run
            required: true
            type: choice
            options:
              - Integration
              - Test
          testsuite:
            description: Please specify testsuite for a specific manual run
            required: false
            type: string
          testcase:
            description: Please specify testcase for a specific manual run e.g.getTodaysDates
            required: false
            type: string
      # schedule:
        # Runs "runs at 5 am every day" (see https://crontab.guru)
        # - cron: '0 5 * * *'
    
    
    jobs:
      build:
    
        runs-on: ubuntu-latest
    
        steps:
    
        - name: Checkout branch
          uses: actions/checkout@v3
    
        - name: Setup Maven Action
          uses: s4u/setup-maven-action@v1.2.1
          with:
            java-version: 17.0
            maven-version: 3.9.0
    
        - name: Install Smartbear
          run: |
            echo "Installing Smartbear API"  
    
            sudo apt-get update -y && sudo apt-get install -y lsb-release software-properties-common && sudo apt-get clean all
            sudo apt-get install wget curl gnupg apt-utils fontconfig jq -y 
            curl https://dl.eviware.com/ready-api/3.46.0/ReadyAPI-x64-3.46.0.sh -o ReadyAPI-x64-3.46.0.sh
            sudo chmod +x ./ReadyAPI-x64-3.46.0.sh
            
    
        - name: Build with Maven
          run: |
            echo "Running Maven build on ${{ github.event.inputs.environment }}"
    
            # Check if both 'testcase' and 'testsuite' are defined
            if [[ -n "${{ github.event.inputs.testcase }}" && -n "${{ github.event.inputs.testsuite }}" ]]; then
              echo "Executing Maven command with testcase and testsuite"
              mvn clean test -Denv="${{ github.event.inputs.environment }}" -DtestSuite="${{ github.event.inputs.testsuite }}" -DtestCase="${{ github.event.inputs.testcase }}" -U --file pomGIT.xml
            elif [[ -n "${{ github.event.inputs.testsuite }}" ]]; then
              # If only 'testsuite' is defined
              echo "Executing Maven command with testsuite"
              mvn clean test -Denv="${{ github.event.inputs.environment }}" -DtestSuite="${{ github.event.inputs.testsuite }}" -U --file pomGIT.xml
            elif [[ -n "${{ github.event.inputs.testcase }}" ]]; then
              # If only 'testcase' is defined
              echo "Executing Maven command with testcase"
             mvn clean test -Denv="${{ github.event.inputs.environment }}" -DtestCase="${{ github.event.inputs.testcase }}" -U --file pomGIT.xml
            else
             # If neither 'testsuite' nor 'testcase' is defined
             echo "Executing Maven command without testsuite and testcase"
              mvn clean test -Denv="${{ github.event.inputs.environment }}" -U --file pomGIT.xml
            fi