Skip to content

Python

Python #43

Workflow file for this run

name: Python
on:
workflow_dispatch:
workflow_call:
inputs:
sha:
required: true
type: string
env:
ALUMNIUM_LOG_LEVEL: debug
ALUMNIUM_LOG_PATH: alumnium.log
ALUMNIUM_PLAYWRIGHT_HEADLESS: false
DISPLAY: :99
LT_USERNAME: ${{ secrets.LT_USERNAME }}
LT_ACCESS_KEY: ${{ secrets.LT_ACCESS_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }}
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
defaults:
run:
working-directory: packages/python
jobs:
examples:
name: Examples
runs-on: ubuntu-latest
timeout-minutes: 60
env:
ALUMNIUM_DRIVER: ${{ matrix.driver }}
ALUMNIUM_MODEL: ${{ matrix.model }}
strategy:
fail-fast: false
matrix:
driver:
- selenium
model:
- azure_openai
- google
include:
- driver: appium-android
model: azure_openai
- driver: appium-ios
model: azure_openai
- driver: playwright
model: azure_openai
- driver: playwright
model: google
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.sha || github.sha }}
- uses: actions/setup-python@v5
with:
python-version-file: .tool-versions
- run: pip install poetry=="$(grep poetry .tool-versions | cut -d" " -f2)"
working-directory: .
- uses: actions/cache@v4
with:
path: packages/python/.venv
key: venv-${{ hashFiles('packages/python/poetry.lock') }}
- run: poetry install
- if: matrix.driver == 'playwright'
run: poetry run playwright install chromium
- if: startsWith(matrix.driver, 'appium') != true
run: Xvfb ${{ env.DISPLAY }} -screen 0 1600x1200x24 &
- uses: actions/cache@v4
with:
path: |
packages/python/.alumnium-cache.sqlite
packages/python/.alumnium/cache/
key: alumnium-cache-python-${{ matrix.driver }}-${{ matrix.model }}-${{ github.sha }}
restore-keys: alumnium-cache-python-${{ matrix.driver }}-${{ matrix.model }}-
- run: poetry poe examples-${{ matrix.driver }}
- if: failure() && runner.debug == '1'
uses: mxschmitt/action-tmate@v3
- if: always()
uses: actions/upload-artifact@v4
with:
name: ci-python-${{ matrix.driver }}-${{ matrix.model }}
path: |
packages/python/*.log
packages/python/reports/
packages/python/test-results/