name: Guest backup archives on: pull_request: paths: - '.github/workflows/test-guest-backups.yml' - 'AppImage/scripts/guest_backup_archives.py' - 'AppImage/scripts/flask_server.py' - 'AppImage/scripts/jwt_middleware.py' - 'AppImage/scripts/build_appimage.sh' - 'AppImage/components/guest-backup-list.tsx' - 'AppImage/components/virtual-machines.tsx' - 'AppImage/lib/guest-backup-archives.ts' - 'AppImage/messages/**' - 'tests/test_guest_backup_archives.*' push: branches: [main, develop] paths: - 'AppImage/scripts/guest_backup_archives.py' - 'AppImage/scripts/flask_server.py' - 'AppImage/scripts/jwt_middleware.py' - 'AppImage/components/guest-backup-list.tsx' - 'AppImage/components/virtual-machines.tsx' - 'AppImage/lib/guest-backup-archives.ts' - 'tests/test_guest_backup_archives.*' workflow_dispatch: permissions: contents: read jobs: guest-backups: 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 deletion, protection, authorization and cache invalidation run: python -B -m unittest discover -s tests -p test_guest_backup_archives.py -v - name: Test frontend deletion and completion handling env: NODE_PATH: ${{ github.workspace }}/.github/ci/offline-node/node_modules run: node tests/test_guest_backup_archives.cjs