AutoBackups/.github/workflows/e2e-tests.yml

72 lines
1.8 KiB
YAML

name: E2E Tests with Playwright
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: 3.12
environment-file: environment.yml
activate-environment: autobackups
- name: Install Python dependencies
shell: bash -l {0}
run: |
conda activate autobackups
pip install -r requirements.txt
- name: Install Node.js dependencies
run: npm install
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Create test configuration files
shell: bash -l {0}
run: |
# Create minimal test config files if they don't exist
if [ ! -f config.json ]; then
echo '{"backup_destination": "/tmp/test-backups", "observation_directories": ["/tmp/test-projects"], "global_settings": {"schedule": "manual"}, "web_interface": {"port": 5000}, "everything_api": {"enabled": false}}' > config.json
fi
if [ ! -f projects.json ]; then
echo '{}' > projects.json
fi
- name: Run Playwright tests
shell: bash -l {0}
run: |
conda activate autobackups
npx playwright test
- name: Upload test results
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: test-results/
retention-days: 30