# The SAME pipeline as ci-starter.yml, written for GitLab CI instead of GitHub Actions. # # The point of having both side by side: CI is a concept, not a product. Checkout, set up the # language, install tools, lint, test: every forge does these. Only the YAML dialect and the # magic filename differ. # # Where this file goes: GitLab reads a single file named .gitlab-ci.yml at the repo root. Copy this # there, commit, and push. (Other forges: Forgejo/Gitea use .forgejo/ or .gitea/workflows/ with # Actions-compatible YAML; Bitbucket uses bitbucket-pipelines.yml. The shape rhymes everywhere.) stages: - check check: stage: check # The runner image: a throwaway container with Python already installed. The GitLab equivalent # of "runs-on: ubuntu-latest" plus "set up Python". image: python:3.12 script: - pip install ruff - ruff check . # lint - python -m unittest # test (stdlib runner from Module 13; nothing to install)