Parallel Execution in GitHub Actions using multiple build.xml files

In parallel execution, you can test different modules or applications on multiple browsers in parallel rather than one by one. Multiple versions or subcomponents of an application are tested with the same input on different systems simultaneously to reduce test execution time. Parallel execution enables faster testing and a quicker turnaround in deployments.

You can achieve parallel execution by running the Jobs in parallel using multiple build.xml files. In the example given below, we are executing 20 test cases with 2 build.xml files and with 10 different test cases associated with each and we are running them in different browsers/mode i.e., one in Chrome and second in Chrome Headless mode.

You will need to create separate jobs for running your build.xml as you can only run your jobs parallelly in GitHub actions.

Given below is an example:

# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on: 
  workflow_dispatch:
 

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build_Chrome:
    
     runs-on: ubuntu-latest
    
    # Steps represent a sequence of tasks that will be executed as part of the job
     steps:
    # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
     - uses: actions/checkout@v2
     - uses: actions/setup-java@v1
       with:
         java-version: 1.8

     
     - name: Run the test cases in Chrome
       env:
        BROWSER_NAME: Chrome
        PROVAR_SECRETSPASSWORD: ${{secrets.PASSWORD}} 
      
       run: |
        mkdir $GITHUB_WORKSPACE/ProvarHome
        curl -O https://download.provartesting.com/latest/Provar_ANT_latest.zip
        unzip -o Provar_ANT_latest.zip -d ProvarHome
        rm Provar_ANT_latest.zip
        sudo apt-get update && sudo apt-get upgrade       
        wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -        
        sudo echo "deb [arch=amd64]  http://dl.google.com/linux/chrome/deb/ stable main" >>sudo tee -a /etc/apt/sources.list.d/google-chrome.list
        sudo apt-get -y install google-chrome-stable
        sudo add-apt-repository ppa:mozillateam/firefox-next && sudo apt install firefox
        echo $PROVAR_HOM
        cd $GITHUB_WORKSPACE/test/ANT

        ant -f build_Chrome.xml
               
     - uses: actions/upload-artifact@v2
       with:
        name: Execution Report1
        path:${{ github.workspace }}/test/ANT/Results/*

     - uses: actions/upload-artifact@v2
       if: failure()
       with:
        name: Execution Report1
       path:${{ github.workspace }}/test/ANT/Results/*

# This workflow contains a single job called "build"
 build_ChromeHeadless:
   # The type of runner that the job will run on
   runs-on: ubuntu-latest
   
   # Steps represent a sequence of tasks that will be executed as part of the job
   steps:
   # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
    - uses: actions/checkout@v2
    - uses: actions/setup-java@v1
      with:
        java-version: 1.8
    
   - name: Run the test cases in headless mode
     env:
       BROWSER_NAME: Chrome_Headless
       PROVAR_SECRETSPASSWORD: ${{secrets.PASSWORD}} 
     
     run: |
       mkdir $GITHUB_WORKSPACE/ProvarHome
       curl -O https://download.provartesting.com/latest/Provar_ANT_latest.zip
       unzip -o Provar_ANT_latest.zip -d ProvarHome
       rm Provar_ANT_latest.zip
       sudo apt-get update && sudo apt-get upgrade       
       wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -        
       sudo echo "deb [arch=amd64]  http://dl.google.com/linux/chrome/deb/ stable main" >>sudo tee -a /etc/apt/sources.list.d/google-chrome.list
       sudo apt-get -y install google-chrome-stable
       sudo add-apt-repository ppa:mozillateam/firefox-next && sudo apt install firefox
       echo $PROVAR_HOM
       cd $GITHUB_WORKSPACE/test/AN
      xvfb-run ant -f build_ChromeHeadlesss.xml
              
   - uses: actions/upload-artifact@v2
     with:
       name: Execution Report2
      path:${{ github.workspace }}/test/ANT/Results/*

   - uses: actions/upload-artifact@v2
     if: failure()
     with:
       name: Execution Report2
       path:${{ github.workspace }}/test/ANT/Results/*

Review Provar on G2
Documentation library

Other available resources

Looking for something different?

We use cookies to better understand how our website is used so we can tailor content for you. For more information about the different cookies we use please take a look at our Privacy Policy.

Scroll to Top