summaryrefslogtreecommitdiff
path: root/._no_travis.yml
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2021-07-04 14:58:13 -0400
committerZack Weinberg <zackw@panix.com>2021-07-04 15:46:32 -0400
commit9276dab9c421958d80acc650cc3a712be4a076c1 (patch)
treeddf6a6616452e3f1d0f6191d9abc79b8a819d0b3 /._no_travis.yml
parentfcff6bc366d663adfcdb6e780de10ac251c322e8 (diff)
downloadlibxcrypt-9276dab9c421958d80acc650cc3a712be4a076c1.tar.gz
libxcrypt-9276dab9c421958d80acc650cc3a712be4a076c1.tar.bz2
libxcrypt-9276dab9c421958d80acc650cc3a712be4a076c1.zip
Disable Travis CI.
We are migrating from Travis CI to Github Actions because the Travis build farm has become too unreliable. As of spring 2021 any given build was likely to have at least one job fail due to problems within the build infrastructure (e.g. timeouts downloading dependencies). This was at the same time the company was failing to communicate honestly about the withdrawal of their free-to-FLOSS-projects tier of service: see for example - https://blog.travis-ci.com/2021-05-07-orgshutdown - https://travis-ci.community/t/org-com-migration-unexpectedly-comes-with-a-plan-change-for-oss-what-exactly-is-the-new-deal/10567 - https://travis-ci.community/t/extremely-poor-official-communication-of-the-org-shutdown/10568 We appreciate that “free to FLOSS projects” is becoming untenable for many organizations due to abuse: see for example - https://github.blog/2021-04-22-github-actions-update-helping-maintainers-combat-bad-actors/ - https://man.sr.ht/ops/builds.sr.ht-migration.md - https://about.gitlab.com/blog/2021/05/17/prevent-crypto-mining-abuse/ where three competing CI providers (including Github) announce, without mincing any words, that their free CI service is being abused to mine cryptocurrency and, as a countermeasure, they are requiring at least the _ability_ to charge all users for their CPU time costs. If Travis had been this transparent we might have been willing to work with their new model, but they weren’t. The Travis configuration and build scripts are only disabled, not removed, with this commit; they will be removed when the migration is complete. Our original plan for this migration was to do all the work in a topic branch (see pull request #131) and land it only when complete, but due to major gaps in our code coverage logs on trunk (in turn because of Travis’ unreliability) it has proved impossible to tell whether changes on the branch are having the desired effects. We are therefore making a clean break on trunk, with this commit and the next one, ahead of the rest of the changes.
Diffstat (limited to '._no_travis.yml')
-rw-r--r--._no_travis.yml280
1 files changed, 280 insertions, 0 deletions
diff --git a/._no_travis.yml b/._no_travis.yml
new file mode 100644
index 0000000..4c663af
--- /dev/null
+++ b/._no_travis.yml
@@ -0,0 +1,280 @@
+version: ~> 1.0
+language: c
+
+# Travis wants to see a default for 'os' at top level
+# even though we override it in every jobs entry.
+os: linux
+dist: focal
+
+branches:
+ except:
+ - master
+
+cache:
+ - ccache
+
+git:
+ depth: false
+
+notifications:
+ irc:
+ channels:
+ - "ircs://chat.freenode.net:6697/#libxcrypt"
+ skip_join: true
+
+install:
+ - build-aux/travis-install
+
+before_script:
+ - build-aux/travis-before
+
+script:
+ - build-aux/travis-build && build-aux/travis-after-success
+
+
+# Repeated configuration blocks, referred to below by YAML aliases.
+# Take care not to install packages that aren't needed in some configuration.
+# Both the Linux and the OSX build workers already have current versions
+# of autoconf, automake, libtool, pkg-config, and a usable awk installed.
+_macros:
+ linux_gcc: &linux_gcc
+ os: linux
+ compiler: gcc
+ addons:
+ apt:
+ packages:
+ - lcov
+
+ linux_gcc_valgrind: &linux_gcc_valgrind
+ os: linux
+ compiler: gcc
+ addons:
+ apt:
+ packages:
+ - lcov
+ - valgrind
+
+ linux_clang: &linux_clang
+ os: linux
+ compiler: clang
+ addons:
+ apt:
+ packages:
+ - lcov
+ - llvm
+
+ osx_gcc: &osx_gcc
+ os: osx
+ osx_image: xcode12.3
+ compiler: gcc
+ addons:
+ homebrew:
+ packages:
+ - gcc
+ - lcov
+
+ osx_clang: &osx_clang
+ os: osx
+ osx_image: xcode12.3
+ compiler: clang
+ addons:
+ homebrew:
+ packages:
+ - lcov
+
+
+# The build "matrix." Really more of a list.
+jobs:
+ fast_finish: true
+ include:
+ - name: "Coverity Scan"
+ if: "tag =~ ^v(\\d+\\.)?(\\d+\\.)?(\\d+)$"
+ <<: *linux_gcc
+ env:
+ - CONF="--disable-werror --enable-obsolete-api --enable-hashes=all"
+ - PERFORM_COVERITY_SCAN="1"
+ - COVERITY_SCAN_PROJECT_NAME="$TRAVIS_REPO_SLUG"
+ - COVERITY_SCAN_BRANCH_PATTERN="^v(\d+\.)?(\d+\.)?(\d+)$"
+ - COVERITY_SCAN_BUILD_COMMAND_PREPEND="./configure $CONF"
+ - COVERITY_SCAN_BUILD_COMMAND="make -j$NPROCS"
+
+ - name: "Linux, GCC, Distcheck"
+ <<: *linux_gcc
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all"
+ - DISTCHECK=1
+
+ - name: "Linux, GCC, Unoptimized build for Codecov"
+ <<: *linux_gcc
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all"
+ - CODECOV=1
+
+ - name: "Linux, Clang, Unoptimized build for Codecov"
+ <<: *linux_clang
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all"
+ - CODECOV=1
+
+ - name: "Linux, GCC, all hashes, obsolete API, Valgrind"
+ <<: *linux_gcc_valgrind
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all --enable-valgrind-memcheck"
+ - VALGRIND=1
+
+ - name: "Linux, Clang, all hashes, obsolete API, ASan+UBSan"
+ <<: *linux_clang
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all"
+ - SANITIZER=1
+
+ - name: "Linux, GCC, all hashes, obsolete API, Perl 5.14"
+ <<: *linux_gcc
+ dist: trusty
+ env:
+ - CONF="--enable-obsolete-api --enable-hashes=all"
+ - OLDEST_SUPPORTED_PERL=1
+
+ - name: "Linux, GCC, all hashes, static lib"
+ <<: *linux_gcc
+ env: CONF="--disable-shared --disable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, Clang, all hashes, static lib"
+ <<: *linux_clang
+ env: CONF="--disable-shared --disable-obsolete-api --enable-hashes=all"
+
+ - name: "macOS, GCC (Homebrew), all hashes"
+ <<: *osx_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=all"
+
+ - name: "macOS, Clang, all hashes"
+ <<: *osx_clang
+ env: CONF="--disable-obsolete-api --enable-hashes=all"
+
+ - name: "macOS, GCC (Homebrew), all hashes, static lib"
+ <<: *osx_gcc
+ env: CONF="--disable-shared --disable-obsolete-api --enable-hashes=all"
+
+ - name: "macOS, Clang, all hashes, static lib"
+ <<: *osx_clang
+ env: CONF="--disable-shared --disable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, GCC, all hashes, obsolete API ENOSYS"
+ <<: *linux_gcc
+ env: CONF="--enable-obsolete-api --enable-obsolete-api-enosys --enable-hashes=all"
+
+ - name: "Linux, Clang, all hashes, obsolete API ENOSYS"
+ <<: *linux_clang
+ env: CONF="--enable-obsolete-api --enable-obsolete-api-enosys --enable-hashes=all"
+
+ - name: "Linux, GCC, all hashes, obsolete API, no failure-tokens"
+ <<: *linux_gcc
+ env: CONF="--disable-failure-tokens --enable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, Clang, all hashes, obsolete API, no failure-tokens"
+ <<: *linux_clang
+ env: CONF="--disable-failure-tokens --enable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, GCC, all hashes, obsolete API ENOSYS, no failure-tokens"
+ <<: *linux_gcc
+ env: CONF="--disable-failure-tokens --enable-obsolete-api --enable-obsolete-api-enosys --enable-hashes=all"
+
+ - name: "Linux, Clang, all hashes, obsolete API ENOSYS, no failure-tokens"
+ <<: *linux_clang
+ env: CONF="--disable-failure-tokens --enable-obsolete-api --enable-obsolete-api-enosys --enable-hashes=all"
+
+ - name: "Linux, GCC, all hashes, no obsolete API"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, Clang, all hashes, no obsolete API"
+ <<: *linux_clang
+ env: CONF="--disable-obsolete-api --enable-hashes=all"
+
+ - name: "Linux, GCC, strong hashes, no obsolete API"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=strong"
+
+ - name: "Linux, Clang, strong hashes, no obsolete API"
+ <<: *linux_clang
+ env: CONF="--disable-obsolete-api --enable-hashes=strong"
+
+ - name: "Linux, GCC, glibc hashes, obsolete API"
+ <<: *linux_gcc
+ env: CONF="--enable-obsolete-api --enable-hashes=glibc"
+
+ - name: "Linux, Clang, glibc hashes, obsolete API"
+ <<: *linux_clang
+ env: CONF="--enable-obsolete-api --enable-hashes=glibc"
+
+ - name: "Linux, GCC, glibc and strong hashes, obsolete API for glibc"
+ <<: *linux_gcc
+ env: CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
+
+ - name: "Linux, Clang, glibc and strong hashes, obsolete API for glibc"
+ <<: *linux_clang
+ env: CONF="--enable-obsolete-api=glibc --enable-hashes=strong,glibc"
+
+ - name: "Linux, GCC, bcrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bcrypt"
+
+ - name: "Linux, GCC, bcrypt_a only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bcrypt_a"
+
+ - name: "Linux, GCC, bcrypt_x only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bcrypt_x"
+
+ - name: "Linux, GCC, bcrypt_y only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bcrypt_y"
+
+ - name: "Linux, GCC, bigcrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bigcrypt"
+
+ - name: "Linux, GCC, bsdicrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=bsdicrypt"
+
+ - name: "Linux, GCC, descrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=descrypt"
+
+ - name: "Linux, GCC, gost-yescrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=gost-yescrypt"
+
+ - name: "Linux, GCC, md5crypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=md5crypt"
+
+ - name: "Linux, GCC, nt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=nt"
+
+ - name: "Linux, GCC, scrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=scrypt"
+
+ - name: "Linux, GCC, sha1crypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=sha1crypt"
+
+ - name: "Linux, GCC, sha256crypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=sha256crypt"
+
+ - name: "Linux, GCC, sha512crypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=sha512crypt"
+
+ - name: "Linux, GCC, sunmd5 only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=sunmd5"
+
+ - name: "Linux, GCC, yescrypt only"
+ <<: *linux_gcc
+ env: CONF="--disable-obsolete-api --enable-hashes=yescrypt"