24 Commits

Author SHA1 Message Date
MarcoFalke
fa4d6c76b6
ci/cirrus: Add native ARM64 persistent workers
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
2023-09-20 17:09:54 +00:00
Tim Ruffing
e78c7b68eb ci/Dockerfile: Reduce size of Docker image further
- No need to have wget installed
 - Clean up rm -rf /var/lib/apt/lists/, see
   https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get
2023-09-03 11:31:35 +02:00
Tim Ruffing
2f0d3bbffb ci/Dockerfile: Warn if ulimit -n is too high when running Docker
The underlying issue does not affect our CI hosts, but is an issue on my
development machine (Arch Linux). In particular, this affects the vanilla
configuration of Docker on systemd, which has effectively no limit:
11400a3f5a/pkg/docker-engine/common/systemd/docker.service (L31)

I hope this saves future generations some precious hours of their life.
2023-09-03 11:31:35 +02:00
Tim Ruffing
6ebe7d2bb3 ci/Dockerfile: Always use versioned clang packages
This commit switches to a new strategy to make sure we're installing the
most recent LLVM packages. Before this commit, we used the unversioned
LLVM packages (e.g., `clang` instead of `clang-18`), which are supposed
to provide the latest snapshot, but this is broken for arm64 [1],
which we want to add in a later PR.

Anyway, the new approach is cleaner because it does not require us to
fiddle with the installed `clang` package by removing a symlink.

[1] https://github.com/llvm/llvm-project/issues/64790

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2023-09-03 11:29:44 +02:00
Tim Ruffing
ad3e65d9fe
ci: Remove GCC build files and sage to reduce size of Docker image 2023-08-18 13:52:28 +01:00
Hennadii Stepanov
d78bec7001
ci: Remove Windows MSVC tasks from Cirrus CI
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
2023-08-17 10:13:38 +01:00
Hennadii Stepanov
8408dfdc4c
Revert "ci: Run sage prover on CI"
This reverts commit d8d54859ed138a8ed9a8486d847155211c9f4a7d.
2023-08-14 14:28:54 +01:00
Tim Ruffing
981e5be38c ci: Fix typo in comment 2023-07-06 20:19:07 +02:00
Tim Ruffing
1deecaaf3b ci: Install development snapshots of gcc and clang
TODO: Make sure the Docker image is actually rebuild
2023-07-06 20:19:04 +02:00
Hennadii Stepanov
c862a9fb49
ci: Adjust Docker image to Debian 12 "bookworm" 2023-06-26 10:24:15 +01:00
Hennadii Stepanov
c7db4942b3
ci: Fix error D8037 in cl.exe 2023-06-03 09:08:31 +01:00
Hennadii Stepanov
7dae115861
Revert "ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe"
This reverts commit 27504d5c941df89bc828067248270179c9dcb04b.
2023-06-02 16:13:29 +01:00
Tim Ruffing
27504d5c94 ci: Move wine prefix to /tmp to avoid error D8037 in cl.exe
Don't ask me why this makes a difference. It may be some permission
problem even though everything in Cirrus CI runs as root anyway. In
any case, I'll probably get mad if I investigate this further.

Fixes #1326.
2023-05-24 14:28:05 +02:00
Tim Ruffing
9efc2e5221 ci: Add MSVC builds
This adds MSVC builds built on Linux using wine. This requires some
settings of tools and flags because the autotools support for MSVC is
naturally somewhat limited.

The advantage of this approach is that it is compatible with our
existing CI scripts, so there's no need to write a Windows CI script
(in PowerShell or similar). If we want to test building and running on
Windows native (e.g., as supported by Cirrus CI) we could still do this
in the future.

Another advantage of this approach is that contributors can simply use
the docker image if they need a MSVC installation in a non-Windows
environment.

This commit also improves the Dockerfile by grouping RUN commands
according to Docker docs:
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
2022-06-29 11:05:40 +02:00
Tim Ruffing
d8d54859ed ci: Run sage prover on CI 2022-02-04 15:37:32 +01:00
Tim Ruffing
3d2f492ceb ci: Install libasan6 (instead of 5) after Debian upgrade 2021-08-19 12:11:11 +02:00
Tim Ruffing
90e83449b2 ci: Add C++ test 2021-07-05 13:57:40 +02:00
Tim Ruffing
c58c4ea470 ci: Add ppc64le build 2021-06-08 17:03:53 +02:00
Tim Ruffing
de4157f13a ci: Run ASan/LSan and reorganize sanitizer and Valgrind jobs 2021-05-21 12:12:46 +02:00
Pieter Wuille
7d65ed5214 Add ARM32/ARM64 CI 2021-05-03 12:03:52 -07:00
Pieter Wuille
4dc37bf81b Add mingw32-w64/wine CI build 2021-04-30 16:37:44 -07:00
Pieter Wuille
1f233b3fa0 Remove num/gmp support
The whole "num" API and its libgmp-based implementation are now unused. Remove them.
2021-03-15 13:01:52 -07:00
Tim Ruffing
c7f754fe4d ci: Run PRs on merge result instead of on the source branch
This is taken from Bitcoin Core's .cirrus.yml
2021-03-03 01:21:11 +01:00
Tim Ruffing
f24e122d13 ci: Switch all Linux builds to Debian
The experiment of using Nix Shell was not really successful. Most
notably, Nix uses a bunch of wrapper scripts around compilers, which
make the build much less "pure". This may be useful but it's exactly
not what we want for CI. In particular, this resulted in gcc being used
for the "clang" builds because a wrapper script redefined the CC env
variable.

This now builds a single docker image (Debian) for all architectures
that we test in CI on Linux.
2021-03-03 00:38:01 +01:00