name: Backup storage retention on: pull_request: paths: - '.github/workflows/test-backup-storage-retention.yml' - 'AppImage/scripts/flask_vm_backup_routes.py' - 'AppImage/components/backup-storage-retention.tsx' - 'AppImage/components/backup-tab.tsx' - 'AppImage/components/vm-backup-jobs.tsx' - 'AppImage/lib/backup-retention.ts' - 'tests/test_vm_backup_jobs_api.py' - 'tests/test_backup_storage_retention.cjs' push: branches: [main, develop] paths: - 'AppImage/scripts/flask_vm_backup_routes.py' - 'AppImage/components/backup-storage-retention.tsx' - 'AppImage/lib/backup-retention.ts' - 'tests/test_vm_backup_jobs_api.py' - 'tests/test_backup_storage_retention.cjs' workflow_dispatch: permissions: contents: read jobs: storage-retention: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-python@v5 with: python-version: '3.11' - uses: actions/setup-node@v6 with: node-version: '22.14.0' - name: Install fixture dependencies run: | python -m pip install 'Flask==3.1.2' npm ci --prefix .github/ci/offline-node --ignore-scripts --no-audit --no-fund - name: Test native job and storage configuration APIs run: python -B -m unittest discover -s tests -p test_vm_backup_jobs_api.py -v - name: Test shared retention properties env: NODE_PATH: ${{ github.workspace }}/.github/ci/offline-node/node_modules run: node tests/test_backup_storage_retention.cjs