Skip to content

Changes to tooling and tests for moving to Python 3.13 #35

Changes to tooling and tests for moving to Python 3.13

Changes to tooling and tests for moving to Python 3.13 #35

Workflow file for this run

---
name: CI
on:
pull_request:
branches:
- main
paths-ignore:
- '.gitignore'
- 'LICENSE'
- '**.md'
jobs:
build:
name: Test Runner
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
with:
install: true
- name: Build Docker image and store in cache
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825
with:
context: .
push: false
load: true
tags: exercism/python-test-runner
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Run Tests in Docker
run: bin/run-tests-in-docker.sh
housekeeping:
runs-on: ubuntu-24.04
container:
image: python:3.13.5-alpine3.22
steps:
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Install Git
run: apk update && apk add git --no-cache
- name: Download & Install dependencies
run: |
pip install flake8 requests
pip install -r requirements-generator.txt
git clone https://github.com/exercism/problem-specifications .problem-specifications
- name: Generate tests
run: |
bin/generate_tests.py --verbose -p .problem-specifications --check
# - name: Lint with flake8
# run: |
# # stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test template status
continue-on-error: true
run: |
./bin/template_status.py -v -p .problem-specifications
canonical_sync:
runs-on: ubuntu-24.04
container:
image: python:3.13.5-alpine3.22
needs: housekeeping
strategy:
matrix:
python-version: [ 3.9, 3.10, 3.11, 3.12 ]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: ${{ matrix.python-version }}
- name: Install Git
run: apk update && apk add git --no-cache
- name: Download & Install dependencies
run: |
pip install flake8 requests
pip install -r requirements-generator.txt
git clone https://github.com/exercism/python .python
- name: Check exercises
run: |
./bin/test_exercises.py