Try to make CI more robust with more retries (#11532)* Try to make CI more robust with more retriesTry adding `--retry` to a bunch of `curl` commands to see if we can makeCI a bit more robust in
Try to make CI more robust with more retries (#11532)* Try to make CI more robust with more retriesTry adding `--retry` to a bunch of `curl` commands to see if we can makeCI a bit more robust in the face of flaky network failures.prtest:full* See if rustls is less flaky* See if curl isn't flaky?
show more ...
Update nightly in CI (#9501)* Update nightly in CIThis commit updates nightly again in CI after failing to do so in #9496.This fixes an issue in our release CI where CMake was misconfigured when
Update nightly in CI (#9501)* Update nightly in CIThis commit updates nightly again in CI after failing to do so in #9496.This fixes an issue in our release CI where CMake was misconfigured whencross-compiling and creating `aarch64-pc-windows-msvc` artifacts.prtest:full* Try installing ninja* Also install Ninja on Linux
Try again to fix version info in CI builds (#9157)Turns out just having `git` wasn't enough. In the containers things arerunning as `root` and `git` doesn't like that so try to convince gitthat i
Try again to fix version info in CI builds (#9157)Turns out just having `git` wasn't enough. In the containers things arerunning as `root` and `git` doesn't like that so try to convince gitthat it should like it.
Install `git` executable in container builds (#9152)Precompiled artifacts for macOS show this for `wasmtime --version` wasmtime-cli 24.0.0 (6fc3d274c 2024-08-20)whereas for Linux they show
Install `git` executable in container builds (#9152)Precompiled artifacts for macOS show this for `wasmtime --version` wasmtime-cli 24.0.0 (6fc3d274c 2024-08-20)whereas for Linux they show wasmtime-cli 24.0.0and this is due to `git` not being available in the build environment onLinux.
Clean up dist build configuration (#9113)* Clean up dist build configuration* Move updating `$PATH` to the `main.js` script which is the one that mounts `/rust/bin` so that knowledge isn't spre
Clean up dist build configuration (#9113)* Clean up dist build configuration* Move updating `$PATH` to the `main.js` script which is the one that mounts `/rust/bin` so that knowledge isn't spread around.* Remove some unused env vars in docker containers.* Forward cargo/rust-specific env vars to the build from outside of containers to the build itself.prtest:full* Change how musl rustflags are configured* More rustflags changes* Review feedback
Refactor installation of C API and features supported (#8642)* Refactor installation of C API and features supportedThis commit overhauls and refactors the management of the building ofthe C AP
Refactor installation of C API and features supported (#8642)* Refactor installation of C API and features supportedThis commit overhauls and refactors the management of the building ofthe C API. Instead of this being script-based it's now done entirelythrough CMake and CMake is the primary focus for building the C API. Forexample building the C API release artifacts is now done through CMakeinstead of through a shell script's `cargo build` and manually movingartifacts.The benefits that this brings are:* The C API now properly hides symbols in its header files that weren't enabled at build time. This is done through a new build-time generated `conf.h` templated on a `conf.h.in` file in the source tree.* The C API's project now supports enabling/disabling Cargo features to have finer-grained support over what's included (plus auto-management of the header file).* Building the C API and managing it is now exclusively done through CMake. For example invoking `doxygen` now lives in CMake, installation lives there, etc.The `CMakeLists.txt` file for the C API is overhauled in the process ofdoing this. The build now primarily matches on the Rust target beingbuilt rather than the host target. Additionally installation will nowinstall both the static and shared libraries instead of just one.Additionally during this refactoring various bits and pieces ofAndroid-specific code were all removed. Management of the C toolchainfeels best left in scope of the caller (e.g. configuring `CC_*` env varsand such) rather than here.prtest:full* Don't use `option` for optional strings* Invert release build checkAlso adjust some indentation* Fix more indentation* Remove no-longer-used variable* Reduce duplication in feature macro
Refactor binary-compatible-builds for releases (#4171)* Refactor binary-compatible-builds for releases I was poking around this yesterday and noticed a few things that could be improved for our
Refactor binary-compatible-builds for releases (#4171)* Refactor binary-compatible-builds for releases I was poking around this yesterday and noticed a few things that could be improved for our release builds: * The centos container for the x86_64 builds contained a bunch of extra tooling we no longer need such as python3 and a C++ compiler. Along with custom toolchain things this could all get removed since the C we include now is quite simple. * The aarch64 and s390x cross-compiled builds had relatively high glibc version requirements compared to the x86_64 build. This was because we don't use a container to build the cross-compiled binaries. I added containers here along the lines of the x86_64 build to use an older glibc to build the release binary to lower our version requirement. This lower the aarch64 version requirement from glibc 2.28 to 2.17. Additionally the s390x requirement dropped from 2.28 to 2.16. * To make the containers a bit easier to read/write I added `Dockerfile`s for them in a new `ci/docker` directory instead of hardcoding install commands in JS. This isn't intended to be a really big change or anything for anyone, but it's intended to keep our Linux-based builds consistent at least as best we can. * Remove temporary change