# Continuous integration for the squirrel census project: lints the YAML and # workflow files and runs the pytest tests on Python 3.13 for every push and # pull request. Read by Gitea Actions (a runner must be registered for the # repository). It changes nothing outside the repository and uses no secret. # Decision: MIL-001 task "Add CI workflow". # Host: Gitea Actions; uses only github.* contexts, so it also runs on GitHub. name: Tests on: push: branches: [main] pull_request: permissions: contents: read env: PYTHON_VERSION: "3.13" PIP_VERSION: "26.2.1" concurrency: group: tests-${{ github.ref }} cancel-in-progress: true jobs: pytest: name: Run the tests runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Check out the code uses: actions/checkout@v4.2.2 - name: Set up Python uses: actions/setup-python@v5.6.0 with: python-version: ${{ env.PYTHON_VERSION }} - name: Create the virtual environment and install run: | python -m venv .venv .venv/bin/python -m pip install --upgrade "pip==${PIP_VERSION}" .venv/bin/python -m pip install -e ".[dev]" - name: Lint the YAML files run: .venv/bin/python -m yamllint -c .yamllint.yml .gitea .yamllint.yml - name: Lint the workflow files run: .venv/bin/actionlint .gitea/workflows/*.yml - name: Run the tests run: .venv/bin/python -m pytest