Commit graph

16 commits

Author SHA1 Message Date
ridiculousfish
c3274c3579 Fix up Dockerfiles
The Dockerfiles had bitrotted some.

Get them passing again, add libpcre2-dev where we can so we aren't
hitting more servers than necessary, and reformat the bionic files so
they can share more of the same image.
2022-10-23 13:53:36 -07:00
ridiculousfish
180acbbb27 Correct exit status of fish_run_tests.sh
fish_run_tests.sh was failing because its final command was a variable
test which was usually false. Switch to an if statement so the result is
true.
2022-10-23 13:53:36 -07:00
ridiculousfish
54a60d8dab Enable DOCKER_BUILDKIT
It just seems better without any major disadvantages.
2022-10-23 13:53:36 -07:00
ridiculousfish
60621e086c Fix the centos7 Dockerfile
The git224-core package has disappeared. Use git236 instead.
2022-08-21 15:46:09 -07:00
ridiculousfish
15ac74d233 Use new fish_run_tests target in Dockerfiles
This fixes the Xenial Dockerfile and perhaps others.
2021-11-26 13:19:59 -08:00
ridiculousfish
50e63d4c04 Add centos8 and Ubuntu Xenial dockerfiles 2021-05-31 13:38:56 -07:00
ridiculousfish
6bae9ebe62 Add an Alpine Dockerfile build
This may be run with:

    ./docker/docker_run_tests.sh ./docker/alpine.Dockerfile
2021-05-13 11:00:05 -07:00
Johannes Altmanninger
75142f0cde Add Dockerfile for Fedora 2021-04-17 22:53:34 +02:00
Johannes Altmanninger
d96a2e7052 Make docker script work when CDPATH is set
Since #3914 we convert empty CDPATH entries to ".", which makes them
easier to use in fish scripts. This has backfired here, because bash's
cd prints the directory if the "." entry from CDPATH is used.
From bash(1) on cd:

> If a non-empty directory name from CDPATH is used, or  if  -  is
> the  first argument, and the directory change is successful, the
> absolute pathname of the new working directory is written to the
> standard output.

My preferred fix would be to convince bash to amend "non-empty
directory" to "non-empty directory other than .".
2021-04-17 22:53:34 +02:00
ridiculousfish
a082cf138a Add a Dockerfile to test 32 bit builds
Run it with:

    ./docker/docker_run_tests.sh docker/focal-32bit.Dockerfile
2021-02-07 17:51:31 -08:00
ridiculousfish
ef3b6750ba Add some additional packges to our Docker image based tests
This allows using sudo and openssl
2021-01-18 15:51:03 -08:00
ridiculousfish
7f15ec51fd Add a password for fishuser accounts in some Docker images
The password is fish
2021-01-18 15:37:13 -08:00
ridiculousfish
2709467b73 Add a Ubuntu bionic asan clang dockerfile test
This may be run with:

    ./docker/docker_run_tests.sh ./docker/bionic-asan-clang.Dockerfile
2021-01-11 12:44:21 -08:00
ridiculousfish
0028dce9ed Add a centos7 Dockerfile
This tests building and running on centos7 with gcc 4.8.
To run it:

    ./docker/docker_run_tests.sh ./docker/centos7.Dockerfile
2020-12-19 15:17:42 -08:00
ridiculousfish
58e74aa38b Add 'bionic-tsan-clang' Dockerfile test
This more closely matches the 'ubuntu-threadsan' environment on GitHub CI.
2020-11-23 21:00:15 -08:00
ridiculousfish
a6383002c3 Introduce Docker-based build and test environments
This is the start of an effort to make it easier to build and run tests in
various Linux environments. The idea is to reduce our reliance on CI and
also allow an easy to way capture tricky environments like musl or gcc 5.

This adds two initial Dockerfiles corresponding to Ubuntu Bionic, and
Ubuntu Bionic with Thread Sanitizer enabled. It also adds a new script
`docker/docker_run_tests.sh`. An example of usage:

    docker/docker_run_tests.sh docker/bionic-tsan.Dockerfile

When run, this builds a Docker image (which is cached after the first
build) and sets its entry point to a new script `fish_run_tests.sh`. It
then launches a container with that image, with a directory `/fish-source`
bound to the fish-shell source directory on the host. Note it is a bind
mount, not a copy, so changes to host files are instantly visible inside
the container. It then configures with CMake and runs the tests.

The Docker user is `fishuser` with password `fish`.

The script also supports two arguments `--shell-before` and
`--shell-after`. These drop the user into a bash shell before (or after)
the tests are run, to aid in debugging.

Note there's no automation for invoking this script yet; it must be run
manually. But it runs on both Mac and Linux!
2020-11-23 20:08:36 -08:00