# Gitea Actions workflow, written in GitHub Actions syntax so it runs unchanged on # either host. If the Gitea instance has no runner configured this file is inert and # tool/verify.ps1 is the verification that must pass locally. name: CI on: push: branches: [main] paths: ['Nuvolari/**'] pull_request: paths: ['Nuvolari/**'] defaults: run: working-directory: Nuvolari jobs: app: name: Flutter app runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: flutter-version: '3.47.3' channel: stable cache: true - name: Install dependencies working-directory: Nuvolari/app run: flutter pub get - name: Check formatting working-directory: Nuvolari/app run: dart format --set-exit-if-changed . - name: Analyze working-directory: Nuvolari/app run: flutter analyze - name: Test working-directory: Nuvolari/app run: flutter test backend: name: Python worker runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.13' - name: Skip when the worker does not exist yet id: guard run: | if [ -f backend/pyproject.toml ]; then echo "exists=true" >> "$GITHUB_OUTPUT" else echo "exists=false" >> "$GITHUB_OUTPUT" fi - name: Install dependencies if: steps.guard.outputs.exists == 'true' working-directory: Nuvolari/backend run: pip install -e ".[dev]" - name: Lint if: steps.guard.outputs.exists == 'true' working-directory: Nuvolari/backend run: ruff check . - name: Test if: steps.guard.outputs.exists == 'true' working-directory: Nuvolari/backend run: pytest -q