Skip to content

Commit

Permalink
Split Agent, Manager & reporter into own yaml files
Browse files Browse the repository at this point in the history
Issue #235
  • Loading branch information
damies13 committed Apr 29, 2024
1 parent b522a88 commit dda4811
Show file tree
Hide file tree
Showing 5 changed files with 360 additions and 74 deletions.
23 changes: 18 additions & 5 deletions .github/workflows/Main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,31 @@ jobs:
Package_For_PIP:
uses: ./.github/workflows/Package.yaml

Regression_Tests:
needs:
- Package_For_PIP
uses: ./.github/workflows/Regression_Tests.yaml
# Regression_Tests:
# needs:
# - Package_For_PIP
# uses: ./.github/workflows/Regression_Tests.yaml

Regression_Tests_Agent:
needs:
- Package_For_PIP
uses: ./.github/workflows/Regression_Tests_Agent.yaml

Regression_Tests_Manager:
needs:
- Package_For_PIP
uses: ./.github/workflows/Regression_Tests_Manager.yaml

Regression_Tests_Reporter:
needs:
- Package_For_PIP
uses: ./.github/workflows/Regression_Tests_Reporter.yaml

Publish_Package:
needs:
- Package_For_PIP
- Regression_Tests
# - Regression_Tests
- Regression_Tests_Agent
- Regression_Tests_Manager
- Regression_Tests_Reporter
uses: ./.github/workflows/Publish.yaml
69 changes: 0 additions & 69 deletions .github/workflows/Regression_Tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,75 +4,6 @@ name: Regression Tests
on: workflow_call

jobs:
Agent:
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@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Download packages to dist
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Show Dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: |
ls -la dist
- name: Show Dist W
if: ${{ matrix.platform == 'windows-latest' }}
run: |
dir dist
- name: Install Agent from dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_agent-*.whl
working-directory: ./dist
- name: Install Agent from dist W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_agent-*.whl) do pip install %%f
working-directory: ./dist
- name: Install Manager from dist (for testing Issues) UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_manager-*.whl
working-directory: ./dist
- name: Install Manager from dist (for testing Issues) W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_manager-*.whl) do pip install %%f
working-directory: ./dist
- run: pip install -r Tests/Regression/Agent/pip_requirements.txt

- name: Robot Framework
run: >
robot --include ${{ matrix.platform }}
--outputdir Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
Tests/Regression/Agent
- name: Archive Agent Logs
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: Agent-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 15

- name: Archive Agent Logs (longer retention if failed)
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: Agent-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 90

Manager:
strategy:
matrix:
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/Regression_Tests_Agent.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,58 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Download packages to dist
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Show Dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: |
ls -la dist
- name: Show Dist W
if: ${{ matrix.platform == 'windows-latest' }}
run: |
dir dist
- name: Install Agent from dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_agent-*.whl
working-directory: ./dist
- name: Install Agent from dist W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_agent-*.whl) do pip install %%f
working-directory: ./dist
- name: Install Manager from dist (for testing Issues) UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_manager-*.whl
working-directory: ./dist
- name: Install Manager from dist (for testing Issues) W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_manager-*.whl) do pip install %%f
working-directory: ./dist
- run: pip install -r Tests/Regression/Agent/pip_requirements.txt

- name: Robot Framework
run: >
robot --include ${{ matrix.platform }}
--outputdir Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
Tests/Regression/Agent
- name: Archive Agent Logs
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: Agent-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 15

- name: Archive Agent Logs (longer retention if failed)
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: Agent-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Agent/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 90
139 changes: 139 additions & 0 deletions .github/workflows/Regression_Tests_Manager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Regression Tests - Manager

on: workflow_call

jobs:
Manager:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
# robot: ['6.1.1', '7.0']
python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
exclude:
- platform: macos-latest
python: '3.7'
include:
- platform: macos-13
python: '3.7'
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@v5
with:
python-version: ${{ matrix.python }}
- name: Checkout
uses: actions/checkout@v4
- 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: Download packages to dist
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Show Dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: |
ls -la dist
- name: Show Dist W
if: ${{ matrix.platform == 'windows-latest' }}
run: |
dir dist
- name: Install Manager from dist UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_manager-*.whl
working-directory: ./dist
- name: Install Manager from dist W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_manager-*.whl) do pip install %%f
working-directory: ./dist
- name: Install Agent from dist (for testing Issues) UM
if: ${{ matrix.platform != 'windows-latest' }}
run: pip install rfswarm_agent-*.whl
working-directory: ./dist
- name: Install Agent from dist (for testing Issues) W
if: ${{ matrix.platform == 'windows-latest' }}
shell: cmd
run: for %%f in (rfswarm_agent-*.whl) do pip install %%f
working-directory: ./dist
- run: pip install -r Tests/Regression/Manager/pip_requirements.txt

- 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
MATRIX_PLATFORM: ${{ matrix.platform }}
MATRIX_PYTHON: ${{ matrix.python }}

- name: Try and fix images with relative path
if: ${{ !cancelled() && matrix.platform != 'macos-latest' }}
run: |
cd Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}
sed --in-place=.bak 's/img src=".*${{ matrix.platform }}_${{ matrix.python }}/img src="./g' ./output.xml
rebot ./output.xml
- name: Try and fix images with relative path (macos)
if: ${{ !cancelled() && matrix.platform == 'macos-latest' }}
run: |
cd Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}
sed -i.bak 's/img src=".*${{ matrix.platform }}_${{ matrix.python }}/img src="./g' ./output.xml
rebot ./output.xml
- name: Archive Manager Logs
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: Manager-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 15

- name: Archive Manager Logs (longer retention if failed)
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: Manager-${{ matrix.platform }}-${{ matrix.python }}
path: Tests/Regression/Manager/Logs/${{ matrix.platform }}_${{ matrix.python }}
retention-days: 90
Loading

0 comments on commit dda4811

Please sign in to comment.