diff options
author | Zack Weinberg <zackw@panix.com> | 2021-07-04 14:58:13 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2021-07-04 15:46:32 -0400 |
commit | 9276dab9c421958d80acc650cc3a712be4a076c1 (patch) | |
tree | ddf6a6616452e3f1d0f6191d9abc79b8a819d0b3 /._no_travis.yml | |
parent | fcff6bc366d663adfcdb6e780de10ac251c322e8 (diff) | |
download | libxcrypt-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.yml | 280 |
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" |