Compare commits

...
Author SHA1 Message Date
Tirsvad 16811c53fa Wrap the workflow header comment to the yamllint line limit
Tests / Run the tests (pull_request) Successful in 49s
2026-10-13 16:27:26 +08:00
Tirsvad 7c2604108c Run yamllint and actionlint in CI
Tests / Run the tests (pull_request) Canceled after 0s
No issue closed: CI change requested by S01.
2026-10-13 16:27:09 +08:00
Tirsvad 9b063bf58f Merge pull request 'Add yamllint and actionlint to the dev extra' (#38) from dev-lint-tools into main
Tests / Run the tests (push) Successful in 50s
TirSystem/github-action: Publish wiki / publish-wiki (push) Successful in 7s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 5s
2026-10-13 10:26:07 +02:00
Tirsvad fbf73fc6d7 Add yamllint and actionlint to the dev extra
Tests / Run the tests (pull_request) Successful in 50s
No issue closed: dev tooling change requested by S01.
2026-10-13 16:24:31 +08:00
Tirsvad 0bbf4c22d4 Merge pull request 'Close the conditions of RC-007 and RC-010 in their Version History' (#37) from rc-history-rows into main
Tests / Run the tests (push) Successful in 44s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 5s
2026-10-13 10:22:31 +02:00
7 changed files with 111 additions and 99 deletions
+53 -46
View File
@@ -1,46 +1,53 @@
# Continuous integration for the squirrel census project: runs the pytest tests # Continuous integration for the squirrel census project: lints the YAML and
# on Python 3.13 for every push and pull request. Read by Gitea Actions (a # workflow files and runs the pytest tests on Python 3.13 for every push and
# runner must be registered for the repository). It changes nothing outside the # pull request. Read by Gitea Actions (a runner must be registered for the
# repository and uses no secret. Decision: MIL-001 task "Add CI workflow". # repository). It changes nothing outside the repository and uses no secret.
# Host: Gitea Actions; uses only github.* contexts, so it also runs on GitHub. # Decision: MIL-001 task "Add CI workflow".
# Host: Gitea Actions; uses only github.* contexts, so it also runs on GitHub.
name: Tests
name: Tests
on:
push: on:
branches: [main] push:
pull_request: branches: [main]
pull_request:
permissions:
contents: read permissions:
contents: read
env:
PYTHON_VERSION: "3.13" env:
PIP_VERSION: "26.2.1" PYTHON_VERSION: "3.13"
PIP_VERSION: "26.2.1"
concurrency:
group: tests-${{ github.ref }} concurrency:
cancel-in-progress: true group: tests-${{ github.ref }}
cancel-in-progress: true
jobs:
pytest: jobs:
name: Run the tests pytest:
runs-on: ubuntu-latest name: Run the tests
timeout-minutes: 10 runs-on: ubuntu-latest
steps: timeout-minutes: 10
- name: Check out the code steps:
uses: actions/checkout@v4.2.2 - name: Check out the code
uses: actions/checkout@v4.2.2
- name: Set up Python
uses: actions/setup-python@v5.6.0 - name: Set up Python
with: uses: actions/setup-python@v5.6.0
python-version: ${{ env.PYTHON_VERSION }} with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Create the virtual environment and install
run: | - name: Create the virtual environment and install
python -m venv .venv run: |
.venv/bin/python -m pip install --upgrade "pip==${PIP_VERSION}" python -m venv .venv
.venv/bin/python -m pip install -e ".[dev]" .venv/bin/python -m pip install --upgrade "pip==${PIP_VERSION}"
.venv/bin/python -m pip install -e ".[dev]"
- name: Run the tests
run: .venv/bin/python -m pytest - 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
+3
View File
@@ -6,3 +6,6 @@ rules:
max: 100 max: 100
truthy: truthy:
check-keys: false check-keys: false
# Line endings are normalised by git (LF in the repository, CRLF in some
# Windows checkouts), so the rule would fail on a local checkout only.
new-lines: disable
+3 -2
View File
@@ -20,7 +20,7 @@ There are no runtime dependencies: the program uses only the Python standard lib
## Set up ## Set up
Create a local virtual environment named `.venv` in the project folder, upgrade `pip` Create a local virtual environment named `.venv` in the project folder, upgrade `pip`
and install the project with its development tools (pytest, ruff, mypy). and install the project with its development tools (pytest, ruff, mypy, yamllint, actionlint).
### Windows powershell ### Windows powershell
@@ -90,7 +90,8 @@ it is present.
The workflow [`.gitea/workflows/ci.yml`][ci] runs for every push to `main` and for every The workflow [`.gitea/workflows/ci.yml`][ci] runs for every push to `main` and for every
pull request. It sets up Python 3.13, creates a `.venv`, upgrades `pip`, installs the pull request. It sets up Python 3.13, creates a `.venv`, upgrades `pip`, installs the
project with `.[dev]` and runs `python -m pytest`. It uses `github.*` contexts only, so project with `.[dev]`, lints the YAML and workflow files with `yamllint` and
`actionlint`, and runs `python -m pytest`. It uses `github.*` contexts only, so
it also runs on GitHub Actions. it also runs on GitHub Actions.
## Build the source documentation ## Build the source documentation
+49 -48
View File
@@ -1,48 +1,49 @@
# Project configuration for the squirrel census assignment (day 25). # Project configuration for the squirrel census assignment (day 25).
# Read by pip, setuptools and pytest. The decision to use the standard library # Read by pip, setuptools and pytest. The decision to use the standard library
# only is recorded in docs/adr/adr-0001-standard-library-instead-of-pandas.md. # only is recorded in docs/adr/adr-0001-standard-library-instead-of-pandas.md.
[build-system] [build-system]
requires = ["setuptools>=68"] requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta" build-backend = "setuptools.build_meta"
[project] [project]
name = "squirrel" name = "squirrel"
version = "0.1.0" version = "0.1.0"
description = "Count the squirrels of the 2018 Central Park Squirrel Census by primary fur colour." description = "Count the squirrels of the 2018 Central Park Squirrel Census by primary fur colour."
readme = "README.md" readme = "README.md"
requires-python = ">=3.13" requires-python = ">=3.13"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
license-files = ["LICENSE"] license-files = ["LICENSE"]
dependencies = [] dependencies = []
classifiers = [ classifiers = [
"Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.13",
"Intended Audience :: Education", "Intended Audience :: Education",
] ]
[project.optional-dependencies] [project.optional-dependencies]
dev = ["pytest==9.1.1", "ruff==0.17.0", "mypy==2.4.0", dev = ["pytest==9.1.1", "ruff==0.17.0", "mypy==2.4.0",
"pyyaml==6.0.3", "types-PyYAML==6.0.12.20260906"] "pyyaml==6.0.3", "types-PyYAML==6.0.12.20260906",
"yamllint==1.38.0", "actionlint-py==1.7.12.25"]
[tool.setuptools.packages.find]
where = ["src"] [tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
pythonpath = ["src"] [tool.pytest.ini_options]
testpaths = ["tests"] pythonpath = ["src"]
testpaths = ["tests"]
[tool.ruff]
line-length = 88 [tool.ruff]
src = ["src", "tests"] line-length = 88
extend-exclude = ["docs"] src = ["src", "tests"]
extend-exclude = ["docs"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "D"] [tool.ruff.lint]
ignore = ["D203", "D213"] select = ["E", "F", "I", "UP", "B", "D"]
ignore = ["D203", "D213"]
[tool.mypy]
strict = true [tool.mypy]
files = ["src", "tests"] strict = true
files = ["src", "tests"]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["D"] [tool.ruff.lint.per-file-ignores]
"tests/**" = ["D"]
+1 -1
View File
@@ -2,7 +2,7 @@
# Installation # Installation
Projektet kræver **Python 3.13 eller nyere**. Det har ingen kørselsafhængigheder; `pytest`, `ruff` og `mypy` er udviklingsværktøjer. Projektet kræver **Python 3.13 eller nyere**. Det har ingen kørselsafhængigheder; `pytest`, `ruff`, `mypy`, `yamllint` og `actionlint` er udviklingsværktøjer.
## Windows PowerShell ## Windows PowerShell
+1 -1
View File
@@ -2,7 +2,7 @@
# Install # Install
The project needs **Python 3.13 or later**. It has no runtime dependencies; `pytest`, `ruff` and `mypy` are development tools. The project needs **Python 3.13 or later**. It has no runtime dependencies; `pytest`, `ruff`, `mypy`, `yamllint` and `actionlint` are development tools.
## Windows PowerShell ## Windows PowerShell
+1 -1
View File
@@ -2,7 +2,7 @@
# Pemasangan # Pemasangan
Projek ini memerlukan **Python 3.13 atau lebih baharu**. Ia tiada kebergantungan masa jalan; `pytest`, `ruff` dan `mypy` ialah alat pembangunan. Projek ini memerlukan **Python 3.13 atau lebih baharu**. Ia tiada kebergantungan masa jalan; `pytest`, `ruff`, `mypy`, `yamllint` dan `actionlint` ialah alat pembangunan.
## Windows PowerShell ## Windows PowerShell