Changeset 726dfb4 in trunk


Ignore:
Timestamp:
2020-08-11T23:10:33Z (5 years ago)
Author:
GitHub <noreply@…>
Branches:
master
Children:
3c5f4f7, c21acc6, e0a52d8
Parents:
d087f04 (diff), 513177c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Jean-Paul Calderone <exarkun@…> (2020-08-11 23:10:33)
git-committer:
GitHub <noreply@…> (2020-08-11 23:10:33)
Message:

Merge pull request #747 from tahoe-lafs/3336.py36-off-travis

Move Python 3.6 CI onto CircleCI

Fixes: ticket:3336

Files:
1 added
1 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified .circleci/Dockerfile.centos

    rd087f04 r726dfb4  
    11ARG TAG
    22FROM centos:${TAG}
     3ARG PYTHON_VERSION
    34
    45ENV WHEELHOUSE_PATH /tmp/wheelhouse
     
    1213    sudo \
    1314    make automake gcc gcc-c++ \
    14     python2 \
    15     python2-devel \
     15    python${PYTHON_VERSION} \
     16    python${PYTHON_VERSION}-devel \
    1617    libffi-devel \
    1718    openssl-devel \
     
    2425COPY . ${BUILD_SRC_ROOT}
    2526
    26 RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python2.7"
     27RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python${PYTHON_VERSION}"
  • TabularUnified .circleci/Dockerfile.debian

    rd087f04 r726dfb4  
    11ARG TAG
    22FROM debian:${TAG}
     3ARG PYTHON_VERSION
    34
    45ENV WHEELHOUSE_PATH /tmp/wheelhouse
     
    910RUN apt-get --quiet update && \
    1011    apt-get --quiet --yes install \
    11         git \
    12         lsb-release \
     12        git \
     13        lsb-release \
    1314        sudo \
    14         build-essential \
    15         python2.7 \
    16         python2.7-dev \
    17         libffi-dev \
    18         libssl-dev \
    19         libyaml-dev \
    20         virtualenv
     15        build-essential \
     16        python${PYTHON_VERSION} \
     17        python${PYTHON_VERSION}-dev \
     18        libffi-dev \
     19        libssl-dev \
     20        libyaml-dev \
     21        virtualenv
    2122
    2223# Get the project source.  This is better than it seems.  CircleCI will
     
    2425COPY . ${BUILD_SRC_ROOT}
    2526
    26 RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python2.7"
     27RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python${PYTHON_VERSION}"
    2728
    2829# Only the integration tests currently need this but it doesn't hurt to always
  • TabularUnified .circleci/Dockerfile.fedora

    rd087f04 r726dfb4  
    11ARG TAG
    22FROM fedora:${TAG}
     3ARG PYTHON_VERSION
    34
    45ENV WHEELHOUSE_PATH /tmp/wheelhouse
     
    1213    sudo \
    1314    make automake gcc gcc-c++ \
    14     python \
    15     python-devel \
     15    python${PYTHON_VERSION} \
     16    python${PYTHON_VERSION}-devel \
    1617    libffi-devel \
    1718    openssl-devel \
     
    2425COPY . ${BUILD_SRC_ROOT}
    2526
    26 RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python2.7"
     27RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python${PYTHON_VERSION}"
  • TabularUnified .circleci/Dockerfile.ubuntu

    rd087f04 r726dfb4  
    11ARG TAG
    22FROM ubuntu:${TAG}
     3ARG PYTHON_VERSION
    34
    45ENV WHEELHOUSE_PATH /tmp/wheelhouse
     
    1415        sudo \
    1516        build-essential \
    16         python2.7 \
    17         python2.7-dev \
     17        python${PYTHON_VERSION} \
     18        python${PYTHON_VERSION}-dev \
    1819        libffi-dev \
    1920        libssl-dev \
     
    2728COPY . ${BUILD_SRC_ROOT}
    2829
    29 RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python2.7"
     30RUN "${BUILD_SRC_ROOT}"/.circleci/prepare-image.sh "${WHEELHOUSE_PATH}" "${VIRTUALENV_PATH}" "${BUILD_SRC_ROOT}" "python${PYTHON_VERSION}"
  • TabularUnified .circleci/config.yml

    rd087f04 r726dfb4  
    3131      # Test against PyPy 2.7
    3232      - "pypy2.7-buster"
     33
     34      # Just one Python 3.6 configuration while the port is in-progress.
     35      - "python3.6"
    3336
    3437      # Other assorted tasks and configurations
     
    7275      - "build-image-centos-8"
    7376      - "build-image-pypy-2.7-buster"
     77      - "build-image-python36-ubuntu"
    7478
    7579
     
    119123  debian-9: &DEBIAN
    120124    docker:
    121       - image: "tahoelafsci/debian:9"
     125      - image: "tahoelafsci/debian:9-py2.7"
    122126        user: "nobody"
    123127
     
    196200    <<: *DEBIAN
    197201    docker:
    198       - image: "tahoelafsci/debian:8"
     202      - image: "tahoelafsci/debian:8-py2.7"
    199203        user: "nobody"
    200204
     
    203207    <<: *DEBIAN
    204208    docker:
    205       - image: "tahoelafsci/pypy:2.7-buster"
     209      - image: "tahoelafsci/pypy:buster-py2"
    206210        user: "nobody"
    207211
     
    259263    <<: *DEBIAN
    260264    docker:
    261       - image: "tahoelafsci/ubuntu:16.04"
    262         user: "nobody"
    263 
    264 
    265   ubuntu-18.04:
    266     <<: *DEBIAN
    267     docker:
    268       - image: "tahoelafsci/ubuntu:18.04"
    269         user: "nobody"
     265      - image: "tahoelafsci/ubuntu:16.04-py2.7"
     266        user: "nobody"
     267
     268
     269  ubuntu-18.04: &UBUNTU_18_04
     270    <<: *DEBIAN
     271    docker:
     272      - image: "tahoelafsci/ubuntu:18.04-py2.7"
     273        user: "nobody"
     274
     275
     276  python3.6:
     277    <<: *UBUNTU_18_04
     278    docker:
     279      - image: "tahoelafsci/ubuntu:18.04-py3"
     280        user: "nobody"
     281
     282    environment:
     283      <<: *UTF_8_ENVIRONMENT
     284      TAHOE_LAFS_TOX_ENVIRONMENT: "py36"
    270285
    271286
     
    279294  centos-8: &RHEL_DERIV
    280295    docker:
    281       - image: "tahoelafsci/centos:8"
     296      - image: "tahoelafsci/centos:8-py2"
    282297        user: "nobody"
    283298
     
    301316    <<: *RHEL_DERIV
    302317    docker:
    303       - image: "tahoelafsci/fedora:28"
     318      - image: "tahoelafsci/fedora:28-py"
    304319        user: "nobody"
    305320
     
    308323    <<: *RHEL_DERIV
    309324    docker:
    310       - image: "tahoelafsci/fedora:29"
     325      - image: "tahoelafsci/fedora:29-py"
    311326        user: "nobody"
    312327
     
    375390
    376391    environment:
    377       DISTRO: "tahoelafsci/<DISTRO>:foo"
    378       TAG: "tahoelafsci/distro:<TAG>"
     392      DISTRO: "tahoelafsci/<DISTRO>:foo-py2"
     393      TAG: "tahoelafsci/distro:<TAG>-py2"
     394      PYTHON_VERSION: "tahoelafsci/distro:tag-py<PYTHON_VERSION}"
    379395
    380396    steps:
     
    428444                build \
    429445                --build-arg TAG=${TAG} \
    430                 -t tahoelafsci/${DISTRO}:${TAG} \
     446                --build-arg PYTHON_VERSION=${PYTHON_VERSION} \
     447                -t tahoelafsci/${DISTRO}:${TAG}-py${PYTHON_VERSION} \
    431448                -f ~/project/.circleci/Dockerfile.${DISTRO} \
    432449                ~/project/
     
    434451          name: "Push image"
    435452          command: |
    436             docker push tahoelafsci/${DISTRO}:${TAG}
     453            docker push tahoelafsci/${DISTRO}:${TAG}-py${PYTHON_VERSION}
    437454
    438455
     
    443460      DISTRO: "debian"
    444461      TAG: "8"
     462      PYTHON_VERSION: "2.7"
    445463
    446464
     
    451469      DISTRO: "debian"
    452470      TAG: "9"
     471      PYTHON_VERSION: "2.7"
    453472
    454473
     
    459478      DISTRO: "ubuntu"
    460479      TAG: "16.04"
     480      PYTHON_VERSION: "2.7"
    461481
    462482
     
    467487      DISTRO: "ubuntu"
    468488      TAG: "18.04"
     489      PYTHON_VERSION: "2.7"
     490
     491
     492  build-image-python36-ubuntu:
     493    <<: *BUILD_IMAGE
     494
     495    environment:
     496      DISTRO: "ubuntu"
     497      TAG: "18.04"
     498      PYTHON_VERSION: "3"
    469499
    470500
     
    483513      DISTRO: "centos"
    484514      TAG: "8"
     515      PYTHON_VERSION: "2"
    485516
    486517
     
    491522      DISTRO: "fedora"
    492523      TAG: "28"
     524      # The default on Fedora (this version anyway) is still Python 2.
     525      PYTHON_VERSION: ""
    493526
    494527
     
    506539    environment:
    507540      DISTRO: "pypy"
    508       TAG: "2.7-buster"
     541      TAG: "buster"
     542      # We only have Python 2 for PyPy right now so there's no support for
     543      # setting up PyPy 3 in the image building toolchain.  This value is just
     544      # for constructing the right Docker image tag.
     545      PYTHON_VERSION: "2"
  • TabularUnified .circleci/populate-wheelhouse.sh

    rd087f04 r726dfb4  
    3737export PIP_FIND_LINKS="file://${WHEELHOUSE_PATH}"
    3838
    39 # Populate the wheelhouse, if necessary.
    40 "${PIP}" \
     39# Populate the wheelhouse, if necessary.  zfec 1.5.3 can only be built with a
     40# UTF-8 environment so make sure we have one, at least for this invocation.
     41LANG="en_US.UTF-8" "${PIP}" \
    4142    wheel \
    4243    --wheel-dir "${WHEELHOUSE_PATH}" \
  • TabularUnified .circleci/run-tests.sh

    rd087f04 r726dfb4  
    8282
    8383if [ -n "${ARTIFACTS}" ]; then
     84    if [ ! -e "${SUBUNIT2}" ]; then
     85        echo "subunitv2 output file does not exist: ${SUBUNIT2}"
     86        exit 1
     87    fi
     88
    8489    # Create a junitxml results area.
    8590    mkdir -p "$(dirname "${JUNITXML}")"
    86     ${BOOTSTRAP_VENV}/bin/subunit2junitxml < "${SUBUNIT2}" > "${JUNITXML}" || "${alternative}"
     91    # Always succeed even if subunit2junitxml fails.  subunit2junitxml signals
     92    # failure if the stream it is processing contains test failures.  This is
     93    # not what we care about.  If we cared about it, the test command above
     94    # would have signalled failure already and we wouldn't be here.
     95    "${BOOTSTRAP_VENV}"/bin/subunit2junitxml < "${SUBUNIT2}" > "${JUNITXML}" || true
    8796fi
  • TabularUnified misc/python3/ratchet.sh

    rd087f04 r726dfb4  
    1212# Since both of the next calls are expected to exit non-0, relax our guard.
    1313set +e
    14 SUBUNITREPORTER_OUTPUT_PATH="$base/results.subunit2" trial --reporter subunitv2-file allmydata
    15 subunit2junitxml < "$base/results.subunit2" > "$base/results.xml"
     14trial --reporter=subunitv2-file allmydata
     15subunit2junitxml < "${SUBUNITREPORTER_OUTPUT_PATH}" > "$base/results.xml"
    1616set -e
    1717
     
    3333  export TERM=ansi
    3434fi
    35 git diff "$tracking_filename"
    3635
    37 exit $code
     36echo "The ${tracking_filename} diff is:"
     37echo "================================="
     38# "git diff" gets pretty confused in this execution context when trying to
     39# write to stdout.  Somehow it fails with SIGTTOU.
     40git diff -- "${tracking_filename}" > tracking.diff
     41cat tracking.diff
     42echo "================================="
     43
     44echo "Exiting with code ${code} from ratchet.py."
     45exit ${code}
  • TabularUnified tox.ini

    rd087f04 r726dfb4  
    5151[testenv:py36]
    5252# On macOS, git inside of ratchet.sh needs $HOME.
    53 passenv = HOME
     53passenv = {[testenv]passenv} HOME
    5454commands = {toxinidir}/misc/python3/ratchet.sh
    5555
Note: See TracChangeset for help on using the changeset viewer.