no ref for local #497
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Regression Tests | |
on: push | |
jobs: | |
Package_For_PIP: | |
uses: ./.github/workflows/Package.yaml | |
Agent: | |
needs: | |
- Package_For_PIP | |
strategy: | |
matrix: | |
platform: [ubuntu-latest, macos-latest, windows-latest] | |
python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] | |
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: | |
needs: | |
- Package_For_PIP | |
strategy: | |
matrix: | |
platform: [ubuntu-latest, macos-latest, windows-latest] | |
python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: "Echo Vars" | |
run: | | |
echo matrix.platform: ${{ matrix.platform }} | |
echo matrix.python: ${{ matrix.python }} | |
- name: (MacOS, <3.11) Fix Python's tkinter Issue-649 (https://github.com/actions/setup-python/issues/649) | |
shell: bash | |
if: ${{ startswith(matrix.platform, 'macos-') && contains('3.7;3.8;3.9;3.10', matrix.python) }} | |
run: | | |
brew install tcl-tk pyenv openssl readline sqlite3 xz zlib | |
env \ | |
PATH="$(brew --prefix tcl-tk)/bin:$PATH" \ | |
LDFLAGS="-L$(brew --prefix tcl-tk)/lib" \ | |
CPPFLAGS="-I$(brew --prefix tcl-tk)/include" \ | |
PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \ | |
CFLAGS="-I$(brew --prefix tcl-tk)/include" \ | |
PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$(brew --prefix tcl-tk)/include' --with-tcltk-libs='-L$(brew --prefix tcl-tk)/lib -ltcl8.6 -ltk8.6'" \ | |
pyenv install ${{matrix.python}} | |
pyenv global ${{matrix.python}} | |
- name: setup-python | |
if: ${{ !startswith(matrix.platform, 'macos-') || contains('3.11;3.12;', matrix.python) }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- 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: | |
needs: | |
- Package_For_PIP | |
strategy: | |
matrix: | |
platform: [ubuntu-latest, macos-latest, windows-latest] | |
python: ['3.9', '3.10', '3.11', '3.12'] | |
fail-fast: false | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: "Echo Vars" | |
run: | | |
echo matrix.platform: ${{ matrix.platform }} | |
echo matrix.python: ${{ matrix.python }} | |
- name: (MacOS, <3.11) Fix Python's tkinter Issue-649 (https://github.com/actions/setup-python/issues/649) | |
shell: bash | |
if: ${{ startswith(matrix.platform, 'macos-') && contains('3.7;3.8;3.9;3.10', matrix.python) }} | |
run: | | |
brew install tcl-tk pyenv openssl readline sqlite3 xz zlib | |
env \ | |
PATH="$(brew --prefix tcl-tk)/bin:$PATH" \ | |
LDFLAGS="-L$(brew --prefix tcl-tk)/lib" \ | |
CPPFLAGS="-I$(brew --prefix tcl-tk)/include" \ | |
PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \ | |
CFLAGS="-I$(brew --prefix tcl-tk)/include" \ | |
PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I$(brew --prefix tcl-tk)/include' --with-tcltk-libs='-L$(brew --prefix tcl-tk)/lib -ltcl8.6 -ltk8.6'" \ | |
pyenv install ${{matrix.python}} | |
pyenv global ${{matrix.python}} | |
- name: setup-python | |
if: ${{ !startswith(matrix.platform, 'macos-') || contains('3.11;3.12;', matrix.python) }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- 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 |