Try to switch to modern Python 3 world.

Temporarily switch image building to always happen.
This commit is contained in:
Itamar Turner-Trauring 2022-02-14 10:35:43 -05:00
parent 296bc3e68b
commit 0639f2c16c
2 changed files with 74 additions and 133 deletions

View File

@ -1,5 +1,5 @@
ARG TAG ARG TAG
FROM centos:${TAG} FROM oraclelinux:${TAG}
ARG PYTHON_VERSION ARG PYTHON_VERSION
ENV WHEELHOUSE_PATH /tmp/wheelhouse ENV WHEELHOUSE_PATH /tmp/wheelhouse

View File

@ -15,28 +15,20 @@ workflows:
ci: ci:
jobs: jobs:
# Start with jobs testing various platforms. # Start with jobs testing various platforms.
- "debian-9":
{}
- "debian-10": - "debian-10":
{}
- "debian-11":
requires: requires:
- "debian-9" - "debian-10"
- "ubuntu-20-04": - "ubuntu-20-04":
{} {}
- "ubuntu-18-04": - "ubuntu-18-04":
requires: requires:
- "ubuntu-20-04" - "ubuntu-20-04"
- "ubuntu-16-04":
requires:
- "ubuntu-20-04"
- "fedora-29": # Equivalent to RHEL 8; CentOS 8 is dead.
{} - "oraclelinux-8":
- "fedora-28":
requires:
- "fedora-29"
- "centos-8":
{} {}
- "nixos": - "nixos":
@ -47,9 +39,9 @@ workflows:
name: "NixOS 21.11" name: "NixOS 21.11"
nixpkgs: "21.11" nixpkgs: "21.11"
# Test against PyPy 2.7 # Eventually, test against PyPy 3.8
- "pypy27-buster": #- "pypy27-buster":
{} # {}
# Test against Python 3: # Test against Python 3:
- "python37": - "python37":
@ -74,7 +66,7 @@ workflows:
requires: requires:
# If the unit test suite doesn't pass, don't bother running the # If the unit test suite doesn't pass, don't bother running the
# integration tests. # integration tests.
- "debian-9" - "debian-10"
- "typechecks": - "typechecks":
{} {}
@ -85,13 +77,13 @@ workflows:
# Build the Docker images used by the ci jobs. This makes the ci jobs # Build the Docker images used by the ci jobs. This makes the ci jobs
# faster and takes various spurious failures out of the critical path. # faster and takes various spurious failures out of the critical path.
triggers: triggers:
# Build once a day # # Build once a day
- schedule: # - schedule:
cron: "0 0 * * *" # cron: "0 0 * * *"
filters: # filters:
branches: # branches:
only: # only:
- "master" # - "master"
jobs: jobs:
# Every job that pushes a Docker image from Docker Hub needs to provide # Every job that pushes a Docker image from Docker Hub needs to provide
@ -104,22 +96,19 @@ workflows:
# https://app.circleci.com/settings/organization/github/tahoe-lafs/contexts # https://app.circleci.com/settings/organization/github/tahoe-lafs/contexts
- "build-image-debian-10": &DOCKERHUB_CONTEXT - "build-image-debian-10": &DOCKERHUB_CONTEXT
context: "dockerhub-auth" context: "dockerhub-auth"
- "build-image-debian-9": - "build-image-debian-11":
<<: *DOCKERHUB_CONTEXT
- "build-image-ubuntu-16-04":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
- "build-image-ubuntu-18-04": - "build-image-ubuntu-18-04":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
- "build-image-ubuntu-20-04": - "build-image-ubuntu-20-04":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
- "build-image-fedora-28": - "build-image-fedora-35":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
- "build-image-fedora-29": - "build-image-oraclelinux-8":
<<: *DOCKERHUB_CONTEXT
- "build-image-centos-8":
<<: *DOCKERHUB_CONTEXT
- "build-image-pypy27-buster":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
# Restore later as PyPy38
#- "build-image-pypy27-buster":
# <<: *DOCKERHUB_CONTEXT
- "build-image-python37-ubuntu": - "build-image-python37-ubuntu":
<<: *DOCKERHUB_CONTEXT <<: *DOCKERHUB_CONTEXT
@ -150,7 +139,7 @@ jobs:
lint: lint:
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "circleci/python:2" image: "cimg/python:3.9"
steps: steps:
- "checkout" - "checkout"
@ -168,7 +157,7 @@ jobs:
codechecks3: codechecks3:
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "circleci/python:3" image: "cimg/python:3.9"
steps: steps:
- "checkout" - "checkout"
@ -186,7 +175,7 @@ jobs:
pyinstaller: pyinstaller:
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "circleci/python:2" image: "cimg/python:3.9"
steps: steps:
- "checkout" - "checkout"
@ -209,10 +198,10 @@ jobs:
command: | command: |
dist/Tahoe-LAFS/tahoe --version dist/Tahoe-LAFS/tahoe --version
debian-9: &DEBIAN debian-10: &DEBIAN
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/debian:9-py2.7" image: "tahoelafsci/debian:10-py3.7"
user: "nobody" user: "nobody"
environment: &UTF_8_ENVIRONMENT environment: &UTF_8_ENVIRONMENT
@ -226,7 +215,7 @@ jobs:
# filenames and argv). # filenames and argv).
LANG: "en_US.UTF-8" LANG: "en_US.UTF-8"
# Select a tox environment to run for this job. # Select a tox environment to run for this job.
TAHOE_LAFS_TOX_ENVIRONMENT: "py27" TAHOE_LAFS_TOX_ENVIRONMENT: "py37"
# Additional arguments to pass to tox. # Additional arguments to pass to tox.
TAHOE_LAFS_TOX_ARGS: "" TAHOE_LAFS_TOX_ARGS: ""
# The path in which test artifacts will be placed. # The path in which test artifacts will be placed.
@ -299,24 +288,32 @@ jobs:
<<: *DEBIAN <<: *DEBIAN
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/debian:10-py2.7" image: "tahoelafsci/debian:10-py3.7"
user: "nobody" user: "nobody"
pypy27-buster: debian-11:
<<: *DEBIAN <<: *DEBIAN
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/pypy:buster-py2" image: "tahoelafsci/debian:11-py3.9"
user: "nobody" user: "nobody"
environment: environment:
<<: *UTF_8_ENVIRONMENT TAHOE_LAFS_TOX_ENVIRONMENT: "py39"
# We don't do coverage since it makes PyPy far too slow:
TAHOE_LAFS_TOX_ENVIRONMENT: "pypy27"
# Since we didn't collect it, don't upload it.
UPLOAD_COVERAGE: ""
# Restore later using PyPy3.8
# pypy27-buster:
# <<: *DEBIAN
# docker:
# - <<: *DOCKERHUB_AUTH
# image: "tahoelafsci/pypy:buster-py2"
# user: "nobody"
# environment:
# <<: *UTF_8_ENVIRONMENT
# # We don't do coverage since it makes PyPy far too slow:
# TAHOE_LAFS_TOX_ENVIRONMENT: "pypy27"
# # Since we didn't collect it, don't upload it.
# UPLOAD_COVERAGE: ""
c-locale: c-locale:
<<: *DEBIAN <<: *DEBIAN
@ -364,23 +361,6 @@ jobs:
- run: *SETUP_VIRTUALENV - run: *SETUP_VIRTUALENV
- run: *RUN_TESTS - run: *RUN_TESTS
ubuntu-16-04:
<<: *DEBIAN
docker:
- <<: *DOCKERHUB_AUTH
image: "tahoelafsci/ubuntu:16.04-py2.7"
user: "nobody"
ubuntu-18-04: &UBUNTU_18_04
<<: *DEBIAN
docker:
- <<: *DOCKERHUB_AUTH
image: "tahoelafsci/ubuntu:18.04-py2.7"
user: "nobody"
python37: python37:
<<: *UBUNTU_18_04 <<: *UBUNTU_18_04
docker: docker:
@ -405,10 +385,10 @@ jobs:
user: "nobody" user: "nobody"
centos-8: &RHEL_DERIV oracelinux-8: &RHEL_DERIV
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/centos:8-py2" image: "tahoelafsci/oraclelinux:8-py3.8"
user: "nobody" user: "nobody"
environment: *UTF_8_ENVIRONMENT environment: *UTF_8_ENVIRONMENT
@ -427,20 +407,11 @@ jobs:
- store_artifacts: *STORE_OTHER_ARTIFACTS - store_artifacts: *STORE_OTHER_ARTIFACTS
- run: *SUBMIT_COVERAGE - run: *SUBMIT_COVERAGE
fedora-35:
fedora-28:
<<: *RHEL_DERIV <<: *RHEL_DERIV
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/fedora:28-py" image: "tahoelafsci/fedora:35-py3.9"
user: "nobody"
fedora-29:
<<: *RHEL_DERIV
docker:
- <<: *DOCKERHUB_AUTH
image: "tahoelafsci/fedora:29-py"
user: "nobody" user: "nobody"
nixos: nixos:
@ -554,7 +525,7 @@ jobs:
typechecks: typechecks:
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/ubuntu:18.04-py3" image: "tahoelafsci/ubuntu:18.04-py3.7"
steps: steps:
- "checkout" - "checkout"
@ -566,7 +537,7 @@ jobs:
docs: docs:
docker: docker:
- <<: *DOCKERHUB_AUTH - <<: *DOCKERHUB_AUTH
image: "tahoelafsci/ubuntu:18.04-py3" image: "tahoelafsci/ubuntu:18.04-py3.7"
steps: steps:
- "checkout" - "checkout"
@ -589,8 +560,8 @@ jobs:
image: "cimg/base:2022.01" image: "cimg/base:2022.01"
environment: environment:
DISTRO: "tahoelafsci/<DISTRO>:foo-py2" DISTRO: "tahoelafsci/<DISTRO>:foo-py3.9"
TAG: "tahoelafsci/distro:<TAG>-py2" TAG: "tahoelafsci/distro:<TAG>-py3.9"
PYTHON_VERSION: "tahoelafsci/distro:tag-py<PYTHON_VERSION}" PYTHON_VERSION: "tahoelafsci/distro:tag-py<PYTHON_VERSION}"
steps: steps:
@ -622,35 +593,16 @@ jobs:
environment: environment:
DISTRO: "debian" DISTRO: "debian"
TAG: "10" TAG: "10"
PYTHON_VERSION: "2.7" PYTHON_VERSION: "3.7"
build-image-debian-9: build-image-debian-11:
<<: *BUILD_IMAGE <<: *BUILD_IMAGE
environment: environment:
DISTRO: "debian" DISTRO: "debian"
TAG: "9" TAG: "11"
PYTHON_VERSION: "2.7" PYTHON_VERSION: "3.9"
build-image-ubuntu-16-04:
<<: *BUILD_IMAGE
environment:
DISTRO: "ubuntu"
TAG: "16.04"
PYTHON_VERSION: "2.7"
build-image-ubuntu-18-04:
<<: *BUILD_IMAGE
environment:
DISTRO: "ubuntu"
TAG: "18.04"
PYTHON_VERSION: "2.7"
build-image-python37-ubuntu: build-image-python37-ubuntu:
<<: *BUILD_IMAGE <<: *BUILD_IMAGE
@ -667,43 +619,32 @@ jobs:
environment: environment:
DISTRO: "ubuntu" DISTRO: "ubuntu"
TAG: "20.04" TAG: "20.04"
PYTHON_VERSION: "2.7" PYTHON_VERSION: "3.9"
build-image-centos-8: build-image-oracelinux:
<<: *BUILD_IMAGE <<: *BUILD_IMAGE
environment: environment:
DISTRO: "centos" DISTRO: "oraclelinux"
TAG: "8" TAG: "8"
PYTHON_VERSION: "2" PYTHON_VERSION: "3.8"
build-image-fedora-35:
build-image-fedora-28:
<<: *BUILD_IMAGE <<: *BUILD_IMAGE
environment: environment:
DISTRO: "fedora" DISTRO: "fedora"
TAG: "28" TAG: "35"
# The default on Fedora (this version anyway) is still Python 2. PYTHON_VERSION: "3.9"
PYTHON_VERSION: ""
# build-image-pypy27-buster:
# <<: *BUILD_IMAGE
build-image-fedora-29: # environment:
<<: *BUILD_IMAGE # DISTRO: "pypy"
# TAG: "buster"
environment: # # We only have Python 2 for PyPy right now so there's no support for
DISTRO: "fedora" # # setting up PyPy 3 in the image building toolchain. This value is just
TAG: "29" # # for constructing the right Docker image tag.
# PYTHON_VERSION: "2"
build-image-pypy27-buster:
<<: *BUILD_IMAGE
environment:
DISTRO: "pypy"
TAG: "buster"
# We only have Python 2 for PyPy right now so there's no support for
# setting up PyPy 3 in the image building toolchain. This value is just
# for constructing the right Docker image tag.
PYTHON_VERSION: "2"