Skip to content
---
name: Regression Tests
on: push
jobs:
Agent:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.7', '3.8', '3.9', '3.10', '3.11']
fail-fast: false
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- run: pip install -r Tests/Regression/Agent/pip_requirements.txt
- name: Robot Framework
run: robot --include ${{ matrix.platform }} Tests/Regression/Agent
Manager:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.7', '3.8', '3.9', '3.10', '3.11']
fail-fast: false
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: "Apt Update"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
sudo apt update -y
- name: "Ubuntu Installs"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
sudo apt install -y python3-tk python3-dev python3-xlib scrot fluxbox # tesseract-ocr
sudo apt list --installed
- name: "Ubuntu Xvfb"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
export DISPLAY=:13.0
Xvfb :13 -screen 0 1920x1080x24 > /dev/null 2>&1 &
# xauth with complain unless ~/.Xauthority exists
touch ~/.Xauthority
# To view a listing of the .Xauthority file, enter the following
xauth list
sleep 1
# fluxbox
fluxbox &
# - name: "MacOS Installs"
# if: ${{ matrix.platform == 'macos-latest' }}
# run: |
# brew update
# brew install tesseract
# brew upgrade
#
# - name: "Windows Installs"
# if: ${{ matrix.platform == 'windows-latest' }}
# run: |
# Invoke-WebRequest -Uri "https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.1.20230401.exe"
# -OutFile "$($ENV:Temp)\tesseract-ocr-w64-setup-5.3.1.20230401.exe"
# & "$($ENV:Temp)\tesseract-ocr-w64-setup-5.3.1.20230401.exe" /s
# shell: powershell
#
# - name: "Verify tesseract"
# run: tesseract -v
- run: pip install -r Tests/Regression/Manager/pip_requirements.txt
- name: setup git config
run: |
# setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default
git config user.name "GitHub Actions Bot"
git config user.email "<>"
git config advice.addIgnoredFile false
- name: create branch for test results
run: git checkout -B Test-Result-Manager-${{ matrix.platform }}-${{ matrix.python }}
- name: Robot Framework
id: robottest
run: >
robot --include ${{ matrix.platform }}
--outputdir Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}
Tests/Regression/Manager
env:
DISPLAY: :13.0
- name: git commit
# if: ${{ steps.robottest.conclusion == 'failure' }}
# https://docs.github.com/en/actions/learn-github-actions/expressions
if: ${{ failure() }}
run: |
# Stage the file, commit and push
echo "git add"
git add Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}/
echo "git commit"
git commit -m "Manager ${{ matrix.platform }} ${{ matrix.python }}"
- name: Switch back to original branch
# if: ${{ steps.robottest.conclusion == 'failure' }}
if: ${{ failure() }}
run: |
echo "git checkout ref_name: ${{ github.ref_name }}"
git checkout -f ${{ github.ref_name }}
echo "git pull"
git pull --ff --autostash -f
- name: Merge test results into original branch
# if: ${{ steps.robottest.conclusion == 'failure' }}
if: ${{ failure() }}
run: |
echo "git merge"
git merge --ff Test-Result-Manager-${{ matrix.platform }}-${{ matrix.python }}
echo "git pull again"
git pull --ff --autostash -f
echo "git push"
git push
Reporter:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.9', '3.10', '3.11']
fail-fast: false
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: "Apt Update"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
sudo apt update -y
- name: "Ubuntu Installs"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
sudo apt -y install python3-tk python3-dev python3-xlib scrot fluxbox tesseract-ocr
sudo apt list --installed
- name: "Ubuntu Xvfb"
if: ${{ matrix.platform == 'ubuntu-latest' }}
run: |
export DISPLAY=:13.0
Xvfb :13 -screen 0 1920x1080x24 > /dev/null 2>&1 &
# xauth with complain unless ~/.Xauthority exists
touch ~/.Xauthority
# To view a listing of the .Xauthority file, enter the following
xauth list
sleep 1
# fluxbox
fluxbox &
#
- name: "MacOS Install tesseract"
if: ${{ matrix.platform == 'macos-latest' }}
run: |
brew install tesseract
# brew update
# brew upgrade
#
- name: "Windows Download Tesseract"
if: ${{ matrix.platform == 'windows-latest' }}
shell: pwsh
run: >
Invoke-WebRequest
-Uri "https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.1.20230401.exe"
-OutFile "$($ENV:Temp)\tesseract-ocr-w64-setup-5.3.1.20230401.exe"
- name: "Windows Install Tesseract"
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: |
"%Temp%\tesseract-ocr-w64-setup-5.3.1.20230401.exe" /S
- name: "Windows Add Tesseract to Path"
if: ${{ matrix.platform == 'windows-latest' }}
shell: pwsh
run: |
echo "$($ENV:ProgramFiles)\Tesseract-OCR" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: "Verify tesseract"
# if: ${{ matrix.platform != 'windows-latest' }}
run: tesseract -v
#
# - name: "Verify tesseract"
# if: ${{ matrix.platform == 'windows-latest' }}
# run: |
# echo %PATH%
# echo %programfiles%
# dir "%programfiles%""
# dir "%programfiles%\Tesseract-OCR"
# echo %programfiles(x86)%
# dir "%programfiles(x86)%"
# "%programfiles%\Tesseract-OCR\tesseract.exe" -v
# shell: cmd
#
- run: pip install -r Tests/Regression/Reporter/pip_requirements.txt
- name: setup git config
run: |
# setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default
git config user.name "GitHub Actions Bot"
git config user.email "<>"
git config advice.addIgnoredFile false
- name: create branch for test results
run: git checkout -B Test-Result-Reporter-${{ matrix.platform }}-${{ matrix.python }}
- name: Robot Framework
id: robottest
run: >
robot --include ${{ matrix.platform }}
--outputdir Tests/Regression/Reporter/Logs/${{ matrix.platform }}_${{ matrix.python }}
Tests/Regression/Reporter
env:
DISPLAY: :13.0
- name: git commit
# if: ${{ steps.robottest.conclusion == 'failure' }}
if: ${{ failure() }}
run: |
# Stage the file, commit and push
echo "git add"
git add Tests/Regression/Reporter/Logs/${{ matrix.platform }}_${{ matrix.python }}/
echo "git commit"
git commit -m "Reporter ${{ matrix.platform }} ${{ matrix.python }}"
- name: Switch back to original branch
# if: ${{ steps.robottest.conclusion == 'failure' }}
if: ${{ failure() }}
run: |
echo "git checkout ref_name: ${{ github.ref_name }}"
git checkout -f ${{ github.ref_name }}
echo "git pull"
git pull --ff --autostash -f
- name: Merge test results into original branch
# if: ${{ steps.robottest.conclusion == 'failure' }}
if: ${{ failure() }}
run: |
echo "git merge"
git merge --ff Test-Result-Reporter-${{ matrix.platform }}-${{ matrix.python }}
echo "git pull again"
git pull --ff --autostash
echo "git push"
git push