summaryrefslogtreecommitdiff
path: root/build-aux/travis-install
AgeCommit message (Collapse)AuthorFilesLines
2021-08-04Drop scripts used for TravisCI.Björn Esser1-36/+0
2021-02-20Add a build using Ubuntu 14.04 (Trusty).Zack Weinberg1-0/+36
This is to validate that our build scripts work with our documented minimum version of Perl (5.14). This is the newest version of Ubuntu on which Travis supports use of perl this old. Contra the documentation, Trusty-based build workers’ default perl is 5.18, not 5.14. Travis doesn’t support use of the `perl: VERSION` build matrix parameter in a `language:c` build, and it doesn’t support use of the `compiler:` parameter in a `language:perl` build. The least terrible kludge I can come up with is to continue using `language:c`, manually download and install the precompiled perl 5.14 binaries that Travis _would_ use for `perl:5.14`, and then manually activate the appropriate perlbrew environment. (We can’t use $PERLBREW_ROOT/etc/bashrc because it’s, well, a bash script, and our build scripts are _sh_ scripts.) There is a pretty strong argument that no one should be using perl < 5.18 anymore: 5.18 is the oldest version with randomized hashes, which are a critical security fix for anyone processing untrusted input with Perl. But the input to all our Perl scripts is our own source or object code, so that’s not an issue for us. In fact, we could go even earlier, since we’re not actually _using_ the Unicode support that motivated my selection of 5.14 as the minimum. Opinions solicited. Since this means we have to have an install script again, also use it to install perltidy and perlcritic when DISTCHECK=1, add configuration files for both tools, and run perlcritic from the distcheck-hook. (This doesn’t *do* anything yet, of course, since there aren’t any Perl scripts yet.) Quibbles with my formatting and linting choices are also solicited.
2021-01-04Use codecov.io’s “bash uploader” instead of codecov from PyPI.Zack Weinberg1-7/+0
This works kind-of the same way as the Coverity driver: we retrieve a shell script directly from codecov.io and execute it. This is how codecov.io currently recommends one upload coverage reports, and means we do not need to worry about whether ‘pip’ works. In fact, we no longer need an install script at all. pip is removed from the cache set, and the after-success script is moved to the script: tag so that coverage upload failures are flagged in the Travis dashboard.
2020-12-31Fix CI problems on OSX.Zack Weinberg1-1/+1
CI builds on OSX were broken in several different ways. - Nothing we asked for via Homebrew was getting installed, because of a bug in the xcode9.4 build image that Travis uses as its default. This is fixed in newer build images, so bump us up to xcode12.3. (N.B. I don’t know which versions of xcode and/or macos we *ought* to be compiling against, I just picked the newest one.) For more detail about the bug, see <https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296>. - The current generation of Xcode tools doesn’t support fat-binary compilation anymore. Also, clang doesn’t wanna see --coverage on its command line, ever. Use a more appropriate set of options for the new toolchain. - ‘pip install --user’ put codecov in a weird place that wasn’t on $PATH. The easiest fix, since we’re running in a scratch virtual machine anyway, is to install it globally. - Don’t install things that are already installed, because Homebrew is painfully slow. Note: Homebrew gcc *is* already installed, but it’s broken. Including ‘gcc’ in the packages list costs 150 seconds of wall time(!) but it does fix the problem, so we’ll deal.
2020-12-31Move most scripts to top-level build-aux directory.Zack Weinberg1-0/+7
Since we might not want to keep the build scripts as a combination of sh + awk forever, move most of them to a new top-level directory and rename them without any .sh or .awk suffixes. This directory is named build-aux, consistent with the recommendations in the autoconf manual, and all of the .m4 files extending autoconf move there as well. The shell scripts in test/ remain there, so that all of the tests stay together, and they keep their .sh suffix, because this is how Automake knows that they are not C programs.