From 042e46682ed457e02e07c45cd48240f691a4ff6d Mon Sep 17 00:00:00 2001 From: Alex Willmer Date: Tue, 19 Oct 2021 22:41:35 +0100 Subject: [PATCH] Abandon Travis CI We have no credits, and its a PITA to maintain two CI platforms. The tests running on Travis provide very little extra coverage vs Azure Pipelines alone --- .ci/README.md | 4 +-- .ci/ci_lib.py | 42 ++---------------------- .ci/travis.sh | 35 -------------------- .travis.yml | 87 ------------------------------------------------- README.md | 5 +-- tests/README.md | 2 +- 6 files changed, 7 insertions(+), 168 deletions(-) delete mode 100755 .ci/travis.sh delete mode 100644 .travis.yml diff --git a/.ci/README.md b/.ci/README.md index 1b9f9dfa..4d033602 100644 --- a/.ci/README.md +++ b/.ci/README.md @@ -1,8 +1,8 @@ # `.ci` -This directory contains scripts for Travis CI and (more or less) Azure -Pipelines, but they will also happily run on any Debian-like machine. +This directory contains scripts for Continuous Integration platforms. Currently +Azure Pipelines, but they will also happily run on any Debian-like machine. The scripts are usually split into `_install` and `_test` steps. The `_install` step will damage your machine, the `_test` step will just run the tests the way diff --git a/.ci/ci_lib.py b/.ci/ci_lib.py index 524337a9..513ac98c 100644 --- a/.ci/ci_lib.py +++ b/.ci/ci_lib.py @@ -64,24 +64,6 @@ def have_docker(): # Force line buffering on stdout. sys.stdout = os.fdopen(1, 'w', 1) -# Force stdout FD 1 to be a pipe, so tools like pip don't spam progress bars. -if 'TRAVIS_HOME' in os.environ: - proc = subprocess.Popen( - args=['stdbuf', '-oL', 'cat'], - stdin=subprocess.PIPE - ) - - os.dup2(proc.stdin.fileno(), 1) - os.dup2(proc.stdin.fileno(), 2) - - def cleanup_travis_junk(stdout=sys.stdout, stderr=sys.stderr, proc=proc): - stdout.close() - stderr.close() - proc.terminate() - - atexit.register(cleanup_travis_junk) - -# ----------------- def _argv(s, *args): """Interpolate a command line using *args, return an argv style list. @@ -206,27 +188,9 @@ class TempDir(object): class Fold(object): - """ - Bracket a section of stdout with travis_fold markers. - - This allows the section to be collapsed or expanded in Travis CI web UI. - - >>> with Fold('stage 1'): - ... print('Frobnicate the frobnitz') - ... - travis_fold:start:stage 1 - Frobnicate the frobnitz - travis_fold:end:stage 1 - """ - def __init__(self, name): - self.name = name - - def __enter__(self): - print('travis_fold:start:%s' % (self.name)) - - def __exit__(self, _1, _2, _3): - print('') - print('travis_fold:end:%s' % (self.name)) + def __init__(self, name): pass + def __enter__(self): pass + def __exit__(self, _1, _2, _3): pass os.environ.setdefault('ANSIBLE_STRATEGY', diff --git a/.ci/travis.sh b/.ci/travis.sh deleted file mode 100755 index 8bab7287..00000000 --- a/.ci/travis.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# workaround from https://stackoverflow.com/a/26082445 to handle Travis 4MB log limit -set -e - -export PING_SLEEP=30s -export WORKDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -export BUILD_OUTPUT=$WORKDIR/build.out - -touch $BUILD_OUTPUT - -dump_output() { - echo Tailing the last 1000 lines of output: - tail -1000 $BUILD_OUTPUT -} -error_handler() { - echo ERROR: An error was encountered with the build. - dump_output - kill $PING_LOOP_PID - exit 1 -} -# If an error occurs, run our error handler to output a tail of the build -trap 'error_handler' ERR - -# Set up a repeating loop to send some output to Travis. - -bash -c "while true; do echo \$(date) - building ...; sleep $PING_SLEEP; done" & -PING_LOOP_PID=$! - -.ci/${MODE}_tests.py >> $BUILD_OUTPUT 2>&1 - -# The build finished without returning an error so dump a tail of the output -dump_output - -# nicely terminate the ping output loop -kill $PING_LOOP_PID diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a7b07bfa..00000000 --- a/.travis.yml +++ /dev/null @@ -1,87 +0,0 @@ -sudo: required -dist: xenial # Ubuntu 16.04 LTS - -notifications: - email: false - irc: "chat.freenode.net#mitogen-builds" - -language: python - -branches: - except: - - docs-master - -cache: -- pip -- directories: - - /home/travis/virtualenv - -install: -- if ! [ -x "$(command -v aws)" ]; then curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ; unzip awscliv2.zip ; sudo ./aws/install ; fi -- pip install -U pip==20.2.1 -- .ci/${MODE}_install.py - -# Travis has a 4MB log limit (https://github.com/travis-ci/travis-ci/issues/1382), but verbose Mitogen logs run larger than that -# in order to keep verbosity to debug a build failure, will run with this workaround: https://stackoverflow.com/a/26082445 -script: -- .ci/spawn_reverse_shell.py -- MODE=${MODE} .ci/travis.sh - -# To avoid matrix explosion, just test against oldest->newest and -# newest->oldest in various configuartions. - -matrix: - include: - # Debops tests. - # NOTE: debops tests turned off for Ansible 2.10: https://github.com/debops/debops/issues/1521 - # 2.10; 3.6 -> 2.7 - # - python: "3.6" - # env: MODE=debops_common VER=2.10.0 - # 2.10; 2.7 -> 2.7 - # - python: "2.7" - # env: MODE=debops_common VER=2.10.0 - - # Sanity check against vanilla Ansible. One job suffices. - # https://github.com/dw/mitogen/pull/715#issuecomment-719266420 migrating to Azure for now due to Travis 50 min time limit cap - # azure lets us adjust the cap, and the current STRATEGY=linear tests take up to 1.5 hours to finish - # - python: "2.7" - # env: MODE=ansible VER=2.10.0 DISTROS=debian STRATEGY=linear - - # ansible_mitogen tests. - - # 2.10 -> {debian, centos6, centos7} - - python: "3.6" - env: MODE=ansible VER=2.10.0 - # 2.10 -> {debian, centos6, centos7} - - python: "3.9" - env: MODE=ansible VER=2.10.0 - # 2.10 -> {debian, centos6, centos7} - - python: "2.7" - env: MODE=ansible VER=2.10.0 - # 2.10 -> {debian, centos6, centos7} - # - python: "2.6" - # env: MODE=ansible VER=2.10.0 - - # 2.10 -> {centos5} - # - python: "2.6" - # env: MODE=ansible DISTROS=centos5 VER=2.10.0 - - # Mitogen tests. - # 2.4 -> 2.4 - # - language: c - # env: MODE=mitogen_py24 DISTROS=centos5 VER=2.10.0 - # 2.7 -> 2.7 -- moved to Azure - # 2.7 -> 2.6 - #- python: "2.7" - #env: MODE=mitogen DISTRO=centos6 - - python: "3.6" - env: MODE=mitogen DISTRO=centos7 - - python: "3.9" - env: MODE=mitogen DISTRO=centos7 - # 2.6 -> 2.7 - # - python: "2.6" - # env: MODE=mitogen DISTRO=centos7 - # 2.6 -> 3.5 - # - python: "2.6" - # env: MODE=mitogen DISTRO=debian-py3 - # 3.6 -> 2.6 -- moved to Azure diff --git a/README.md b/README.md index 85beacb4..0d4d1b30 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,9 @@ # Mitogen - Please see the documentation. ![](https://i.imgur.com/eBM6LhJ.gif) [![Total alerts](https://img.shields.io/lgtm/alerts/g/mitogen-hq/mitogen.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/mitogen-hq/mitogen/alerts/) -[![Build Status](https://api.travis-ci.com/mitogen-hq/mitogen.svg?branch=master)](https://api.travis-ci.com/mitogen-hq/mitogen) - -[![Pipelines Status](https://dev.azure.com/mitogen-hq/mitogen/_apis/build/status/mitogen-hq.mitogen?branchName=master)](https://dev.azure.com/mitogen-hq/mitogen/_build/latest?definitionId=1&branchName=master) +[![Build Status](https://dev.azure.com/mitogen-hq/mitogen/_apis/build/status/mitogen-hq.mitogen?branchName=master)](https://dev.azure.com/mitogen-hq/mitogen/_build/latest?definitionId=1&branchName=master) diff --git a/tests/README.md b/tests/README.md index 51464989..65226e87 100644 --- a/tests/README.md +++ b/tests/README.md @@ -7,7 +7,7 @@ started in September 2017. Pull requests in this area are very welcome! ## Running The Tests -[![Build Status](https://api.travis-ci.org/dw/mitogen.svg?branch=master)](https://travis-ci.org/dw/mitogen) +[![Build Status](https://dev.azure.com/mitogen-hq/mitogen/_apis/build/status/mitogen-hq.mitogen?branchName=master)](https://dev.azure.com/mitogen-hq/mitogen/_build/latest?definitionId=1&branchName=master) Your computer should have an Internet connection, and the ``docker`` command line tool should be able to connect to a working Docker daemon (localhost or