|
name: CI |
|
|
|
on: |
|
push: |
|
branches: [ main ] |
|
pull_request: |
|
branches: [ main ] |
|
schedule: |
|
- cron: 33 6 * * 3 |
|
|
|
jobs: |
|
build: |
|
|
|
runs-on: ubuntu-latest |
|
strategy: |
|
matrix: |
|
python-version: ["3.10", "3.14"] |
|
rf-version: [6.1.1, 7.4.2] |
|
|
|
steps: |
|
- uses: actions/checkout@v7 |
|
- name: Set up Python ${{ matrix.python-version }} with Robot Framework ${{ matrix.rf-version }} |
|
uses: actions/setup-python@v7 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
- name: Install dependencies |
|
run: | |
|
python -m pip install --upgrade pip |
|
pip install uv |
|
uv pip install -r requirements-dev.txt --python ${{ matrix.python-version }} --system |
|
- name: Install RF ${{ matrix.rf-version }} |
|
run: | |
|
uv pip install -U robotframework==${{ matrix.rf-version }} --python ${{ matrix.python-version }} --system |
|
- name: Run ruff |
|
run: | |
|
ruff check ./src tasks.py |
|
ruff format --check ./src tasks.py |
|
- name: Run robocop |
|
run: | |
|
robocop format --check --diff atest/ |
|
- name: Run mypy |
|
if: matrix.rf-version == '7.4.2' |
|
run: | |
|
mypy src/ |
|
- name: Run unit tests |
|
run: | |
|
python utest/run.py |
|
- name: Run acceptance tests |
|
run: | |
|
python atest/run.py |
|
- uses: actions/upload-artifact@v7 |
|
if: ${{ always() }} |
|
with: |
|
name: atest_results-${{ matrix.python-version }}-${{ matrix.rf-version }} |
|
path: atest/results |