Commit Graph

650 Commits

Author SHA1 Message Date
Andrew Kelley
edcb17daf8 CI: -Dskip-release on x86_64-windows-debug
This script is sometimes timing out, so let's test fewer things to save
time. The x86_64-windows-release script does include test coverage for
release builds of the standard library, behavior tests, etc.
2023-10-18 14:45:13 -07:00
Andrew Kelley
6ba7d0c435 reapply "CI: update x86_64 windows tarballs"
This reverts commit 272a57eeed,
reapplying commit bb98ffbe7f.
2023-10-14 00:35:59 -07:00
Andrew Kelley
272a57eeed Revert "CI: update x86_64 windows tarballs"
This reverts commit bb98ffbe7f.

This caused master branch to fail the CI. We do need to figure out why
these assertions are tripping but let's do it in a branch other than
master.
2023-09-22 12:53:36 -07:00
Andrew Kelley
867e61e10b CI: update macos tarballs
Updates from LLVM release/17.x to 17.0.1
2023-09-22 09:43:31 -07:00
Andrew Kelley
bb98ffbe7f CI: update x86_64 windows tarballs
Updates from LLVM release/17.x to 17.0.1
2023-09-22 09:42:15 -07:00
Andrew Kelley
0345d78663 CI: install ninja on windows
The new CI images provided by GitHub no longer provide ninja.exe, so
this commit installs it explicitly, using the suggested method from
GitHub.

See https://github.com/actions/runner-images/issues/8343 for more
details.
2023-09-21 14:18:55 -07:00
Andrew Kelley
fe63d15d07 CI: update all tarball URLs
These contain LLVM 17 as well as a fix to zig to add
`-fno-sanitize=function` to the clang command line.
2023-09-19 09:37:53 -07:00
Andrew Kelley
75b8b21cc1 CI: update bootstrap tarballs to latest
Updates llvm libraries to 17.0.0rc3 which contain bug fixes that
affected the zig test suite.
2023-09-19 09:37:53 -07:00
Andrew Kelley
0bd1058d5a CI: update x86_64-linux tarball 2023-09-19 09:37:32 -07:00
Andrew Kelley
7e2b6b0f1b Revert "ci: use zig build check-fmt instead of zig fmt --check"
This reverts commit 4d1432299f.

Please don't hard-code unrelated concerns this way. build.zig should not
have awareness of the naming conventions for cmake build directories.
2023-09-12 14:32:05 -07:00
Wooster
4d1432299f ci: use zig build check-fmt instead of zig fmt --check
We already have a zig build step for this: test-fmt.

* Rename the test-fmt step to check-fmt.
  test-fmt sounds like it runs tests for `zig fmt` itself (lib/std/zig/render.zig).
* Use it instead of `zig fmt --check` in the CI scripts.
* Also use it in CI scripts that didn't have this check before.
2023-09-09 15:49:18 +03:00
Andrew Kelley
d7e74f7cbf CI: fix path to output langref
Apparently tidy doesn't exit with failure status if the input file is
not found? wtf tidy
2023-08-03 09:52:15 -07:00
Andrew Kelley
6e4fff6ba6 move installation logic to the build script where it belongs
* build.zig: introduce `-Dflat` option which makes the installation
  match what we want to ship for our download tarballs. This allows
  deleting a bunch of shell script logic from the CI.
  - for example it puts the executable directly in prefix/zig rather
    than prefix/bin/zig and it additionally includes prefix/LICENSE.
* build.zig: by default also install std lib documentation to doc/std/
  - this can be disabled by `-Dno-autodocs` similar to how there is
    already `-Dno-langref`.
* build.zig: add `std-docs` and `langref` steps which build and install
  the std lib autodocs and langref to prefix/doc/std and
  prefix/doc/langref.html, respectively.

* std.Build: implement proper handling of `-femit-docs` using the
  LazyPath system. This is a breaking change.
  - this is a partial implementation of #16351
* frontend: fixed the handling of Autodocs with regards to caching and
  putting the artifacts in the proper location to integrate with the
  build system.
  - closes #15864

* CI: delete the logic for autodocs since it is now handled by build.zig
  and is enabled by default.
  - in the future we should strive to have nearly all the CI shell
    script logic deleted in favor of `zig build` commands.
* CI: pass `-DZIG_NO_LIB=ON`/`-Dno-lib` except for the one command where
  we want to actually generate the langref and autodocs. Generating the
  langref takes 14 minutes right now (why?!) so we don't want to do that
  more times than necessary.

* Autodoc: fixed use of a global variable. It works fine as a local
  variable instead.
  - note that in the future we will want to make Autodoc run
    simultaneously using the job system, but for now the principle of
    YAGNI dictates that we don't have an init()/deinit() API and instead
    simply call the function that does the things.
* Autodoc: only do it when there are no compile errors
2023-07-22 00:16:27 -07:00
Andrew Kelley
128fd7dd02 CI: -x86_64-macos-debug, +aarch64-macos-debug
It's easier to get M1 hardware for testing than x86_64-macos. This
addresses the current bottleneck in our CI pipeline.
2023-06-21 00:37:58 -07:00
Andrew Kelley
5b9e528bc5 CI: give aarch64-linux a maxrss parameter
to avoid getting OOM killed. We need to have a high number of GitHub
Actions runners simultaneously active, otherwise the hardware ends up
underutilized. But with zig build running in parallel now, this
sometimes results in memory usage spikes that have been causing the
runner to get killed.

This number is the total physical memory (251G) divided by the number of
runners we have active (11).

See related commit 2d41dac57d which did
the same but for our x86_64-linux machines.
2023-04-25 12:46:39 -07:00
Andrew Kelley
0e394cf922
Merge pull request #15192 from motiejus/build-release
zig build: change "-Drelease" to "-Doptimize"
2023-04-18 20:36:56 -07:00
Andrew Kelley
2d41dac57d CI: give x86_64-linux a maxrss parameter
to avoid getting OOM killed. It's been happening regularly recently. We
need to have a high number of GitHub Actions runners simultaneously
active, otherwise the hardware ends up underutilized. But with zig build
running in parallel now, this sometimes results in memory usage spikes
that have been causing the runner to get killed.

This number is the total physical memory (126G) divided by the number of
runners we have active (6).
2023-04-17 10:38:27 -07:00
Andrew Kelley
72dcad6f02 Revert "ci: let's not skip non native tests on macos!"
This reverts commit a34752c941.

With #15277 merged, the macOS CI will still run the self-hosted x86_64
tests even with -Dskip-non-native. This was the main motivation for the
commit.

It would be nice to keep this flag enabled, however, we don't have
enough CI computing power, and the macOS CI lags behind with these extra
tests enabled.
2023-04-16 23:48:42 -07:00
Motiejus Jakštys
7abc3738a2 zig build: change "-Drelease" to "-Doptimize"
I find myself quite often creating ReleaseSafe builds and putting them
to production for certain experiments:
- Debug info are for stack traces. An ongoing example where those would
  help is #14815.
- Safety checks would have saved a couple of mine and @kubkon's hours in
  #15098.

This is a breaking change for scripts that make Zig releases -- I will
submit another PR to zig-bootstrap and release-cutter after this is
merged.
2023-04-16 23:55:51 +03:00
Jakub Konka
a34752c941 ci: let's not skip non native tests on macos! 2023-04-13 16:44:22 +02:00
Andrew Kelley
271f24f047 CI: disable reproducibility check on x86_64-macos 2023-04-06 13:58:25 -07:00
Andrew Kelley
eccf39c995 CI: update aarch64-macos tarball 2023-04-06 08:40:36 -07:00
Andrew Kelley
467a1498e4 CI: update x86_64-macos tarballs to llvm 16.0.1 2023-04-06 01:29:19 -07:00
Andrew Kelley
aea45bdf25 CI: update macos tarball to llvm 16.0.0-rc4 2023-03-17 14:55:00 -07:00
Andrew Kelley
1ed569e0b2 Merge remote-tracking branch 'origin/master' into llvm16 2023-03-16 17:33:24 -07:00
Andrew Kelley
2c326c87b1 build.zig: install the langref to $prefix/doc/langref.html
and update the CI scripts to match.
2023-03-15 10:48:14 -07:00
Andrew Kelley
8d4067e7a3 CI: take advantage of zig build concurrency
I ain't afraid of no ghost.

This reverts commit 14a176b9b16e07a66a2f9cd485aaf80fed0f5a12.
2023-03-15 10:48:14 -07:00
Andrew Kelley
c641af3cba CI: use -j1 like a coward
Zig's build script has several race conditions preventing proper
concurrent builds from working. By using -j1 for now, finishing this
branch (concurrent zig builds) is untangled from the separate problem of
correcting concurrency issues with zig's own build script.

In other words, let's solve one problem at a time.
2023-03-15 10:48:12 -07:00
Andrew Kelley
12b74b2c05 CI: more aggressively check zig1 bootstrapping
This would have caught the problem we are seeing in #14799.
2023-03-09 01:26:21 -05:00
Andrew Kelley
778ca2ae6b update CI tarballs to LLVM16 2023-03-04 13:59:55 -07:00
Andrew Kelley
d399f8a489 Merge remote-tracking branch 'origin/master' into llvm16 2023-02-27 16:10:48 -07:00
mlugg
09a84c8384
Update std.Build to new module CLI, update zig1 and CMakeLists
Resolves: #14667
2023-02-21 01:59:37 +00:00
Andrew Kelley
fab9b7110e Merge remote-tracking branch 'origin/master' into llvm16 2023-02-03 12:49:40 -07:00
Andrew Kelley
5ba703b030 CI: update tarballs to LLVM 16.0.0-rc1 2023-01-29 18:57:58 -07:00
kcbanner
a9b68308b9 cbe: fixes for tls, support for not linking libc, and enabling tests
- cbe: Implement linksection support, to support TLS when not linking libc
- cbe: Support under-aligned variables / struct fields
- cbe: Support packed structs (in the C definition of packed)
- windows: Fix regression with x86 _tls_array
- compiler_rt: Add 128-bit atomics to compiler_rt
- tests: Re-enable threadlocal tests on cbe+windows, and llvm+x86
- tests: Re-enable f80 tests that now pass
- ci: change windows ci to run the CBE behaviour tests with -lc, to match how the compiler is bootstrapped
- update zig1.wasm
2023-01-29 15:04:13 -05:00
kcbanner
4888f9d7e1 ci: don't run the -msvc cbe tests with the zig test runner 2023-01-23 18:43:56 -05:00
kcbanner
31228e4f84 ci: fixup incorrect paths 2023-01-23 13:48:37 -05:00
kcbanner
d162ebfa35 ci: update windows debug ci as well 2023-01-23 13:48:37 -05:00
kcbanner
98768a9921 ci: explicitly test the CBE tests with the -msvc abi, as this is the path users will use when bootstrapping 2023-01-23 13:48:37 -05:00
Andrew Kelley
4592ee77c0 update CI tarball for macos
This includes the commit for -Wno-overriding-t-option
2023-01-22 15:00:53 -07:00
Andrew Kelley
3df4707ea7 CI: also test x86_64-macos with a debug zig compiler 2023-01-22 12:14:25 -07:00
Andrew Kelley
7b68b76326 CI: additionally test debug builds on Windows 2023-01-17 13:06:07 -05:00
kcbanner
0e659042ac ci: run the behaviour tests using the cbe and msvc 2023-01-13 04:05:49 -05:00
Manlio Perillo
e2d7b2bf33 ci: remove extra whitespace 2022-12-30 15:01:54 -05:00
Andrew Kelley
e2e96eb13b CI: update x86_64 and aarch64 LLVM tarballs with assertions enabled 2022-12-27 23:13:34 -07:00
Andrew Kelley
266e2e9a31 Revert "CI: workaround git bug regarding changed attributes"
This reverts commit aa44512b85.

This commit is no longer needed.
2022-12-21 17:17:28 -07:00
Andrew Kelley
aa44512b85 CI: workaround git bug regarding changed attributes 2022-12-18 16:34:09 -07:00
Jakub Konka
b1f874c78a enable testing for stage3 and stage4 being byte-for-byte identical 2022-12-16 18:05:58 +01:00
Andrew Kelley
b911b54aeb CI: fix path to langref when running tidy 2022-12-14 14:26:02 -07:00
Andrew Kelley
8691fde0f6 CI: override cache folders on aarch64-windows
This matches the scripts we use for our other self-hosted runners.
2022-12-13 02:41:53 -05:00
Andrew Kelley
cacb962ba7 CMake: add workaround for CMAKE_AR not supporting spaces
This allows using `zig ar` for `CMAKE_AR`. Unfortunately, it requires a
patch to CMakeLists.txt and cannot be done merely with flags to the
cmake line.
2022-12-10 16:28:49 -07:00
Andrew Kelley
c9231f0547 CI: add aarch64-windows coverage 2022-12-10 16:28:49 -07:00
Andrew Kelley
83361e4a9b CI: test updating the wasm binary
Make sure that no commit regresses the ability to upgrade our wasm
binary. Otherwise, somebody in the future is going to have a Bad Day.
2022-12-08 02:01:46 -05:00
Andrew Kelley
1122d9d212 CI: windows: fix zig lib dir path
See #12685
2022-12-07 12:49:17 -07:00
Jacob Young
eb4337fe83 Revert "CI: revert windows script to master branch version"
This reverts commit 106e967893.
2022-12-07 01:34:21 -07:00
Andrew Kelley
106e967893 CI: revert windows script to master branch version
This commit chickens out and reverts
02456a32ad, leaving it for a future
enhancement.
2022-12-06 12:27:28 -07:00
Andrew Kelley
c58ebfb1e1 CI: aarch64-macos tarball patch
I messed up the spelling of '-stack_size' making it '-stack' instead.
Will need to fix on master branch. But let's test this here before
making another master branch commit.
2022-12-06 12:27:28 -07:00
Andrew Kelley
0f2a7d3b54 CI: don't pass -Denable-stage1 when building stage4 2022-12-06 12:27:28 -07:00
Andrew Kelley
f46567e6bf CI: update tarballs
In particular, these two changes are relevant:

 * zig cc: support -stack in addition to --stack for linker arg
   - Fixes stack overflow when running zig2 on aarch64-macos.
 * compiler_rt: avoid using weak aliases
   - Fixes duplicate symbol when linking zig2 on aarch64-linux.
2022-12-06 12:27:28 -07:00
Andrew Kelley
3fb1b2caef CI: use a patched tarball
In the CI system, I copied the old tarball and then applied
05c21a26cb2d5daf06191bd996d0770192704b66 to its compiler_rt
implementation.

After this is verified we can drop this commit and regenerate the
tarballs from a master branch commit.
2022-12-06 12:27:28 -07:00
Andrew Kelley
02456a32ad CI: make Windows build from source like everybody else
Now that OOM is no longer a problem, the Windows CI can do the same
process every other system does instead of building from a recent Zig
binary.
2022-12-06 12:15:04 -07:00
Andrew Kelley
bdb6fb5763 CI: use cache directories local to the CI run
Override the cache directories because they won't actually help other CI
runs which will be testing alternate versions of zig, and ultimately
would just fill up space on the hard drive for no reason.

In practice we did see one of the CI servers fill up too many files
inside ~/.cache/zig, which caused certain file system operations to
start returning ENOSPC, despite the hard drive having plenty of space
left.
2022-12-04 15:45:15 -07:00
Andrew Kelley
af4361f57a CI: update tarballs to 0.11.0-dev.448+e6e459e9e
Notably this contains a fix to zig cc that enables the syntax
`-Wl,-z,stack-size=0x10000`.
2022-12-02 17:31:33 -05:00
Andrew Kelley
9f9f1aadc7 CI: add aarch64-linux-debug job and flatten dirs 2022-12-01 00:37:47 -07:00
Andrew Kelley
deda6b5146 LLVM: fix canElideLoad behavior with loops
closes #13546
2022-11-30 00:20:49 -05:00
Loris Cro
52e1be9c68 Revert "ci: add markers for collapsing log sections in GH web UI"
This reverts commit 6028adda4b.
2022-11-29 22:55:04 +01:00
Loris Cro
6028adda4b ci: add markers for collapsing log sections in GH web UI 2022-11-29 22:03:30 +01:00
Jakub Konka
1829b6eab8
Merge pull request #13625 from kcbanner/windows_disable_symlink_tests
Skip linker tests requiring symlinks on Windows
2022-11-29 02:57:37 +01:00
Andrew Kelley
2df47df390 CI: move some stuff to the website repo 2022-11-26 15:34:35 -07:00
kcbanner
57bc61ab26 test-link: add -Denable-symlinks-windows to opt-in to using symlinks
Adds a way for standalone tests to declare they need symlinks, and these
tests won't be run on windows unless -Denable-symlinks-windows is set
2022-11-26 14:26:26 -05:00
Loris Cro
7fd34f18c5 ci: windows: add missing check to last test 2022-11-25 19:41:37 +01:00
Andrew Kelley
984acae12d CI: use consistent relative/absolute paths for zig test commands
Standard library tests require the root source file to be the
corresponding file inside the Zig lib directory. In other words, there
may not be two copies of the standard library. After the changes in this
branch, Zig no longer notices that `../lib/std.zig` and
`$(pwd)/../lib/std.zig` are the same file because one is relative and
one is absolute.
2022-11-22 21:08:09 -07:00
Andrew Kelley
32ce2f91a9 CI: fix wrong path name in x86_64-linux release script
I verified that the script will pass with this change.
2022-11-22 20:54:30 -07:00
Andrew Kelley
c24c6fe210 CI: disable building docs on x86_64-linux debug
See tracking issue #13546
2022-11-22 15:15:04 -07:00
Andrew Kelley
b3b507ad8f CI: disable building tarballs; x86 self-hosted 2022-11-22 14:13:58 -07:00
Loris Cro
671fb4ac47 ci: move tarball creation and publishing to github-hosted runners 2022-11-22 13:40:31 -07:00
Andrew Kelley
283c92e362 CI: add missing backslash 2022-11-22 01:28:08 -08:00
Andrew Kelley
936b44e50a CI: fix wrong directory paths 2022-11-22 01:20:22 -08:00
Andrew Kelley
ab680250e1 CI: fix wrong lib dir path 2022-11-22 01:05:59 -07:00
Andrew Kelley
e18d310afd CI: build from old zig on x86_64-linux debug
This is to work around OOM on the CI server. Once #13560 is complete,
we can avoid having to replace the tarballs so often.
2022-11-22 00:56:44 -07:00
Andrew Kelley
0912f1d1f9 CI: fix wrong tarball name for aarch64-linux 2022-11-21 20:19:44 -07:00
Andrew Kelley
e21b6a712d CI: switch to GitHub Actions 2022-11-21 20:16:08 -07:00
Andrew Kelley
f3d987dc87 CI: start moving tarball generation to github actions 2022-11-21 20:16:08 -07:00
Andrew Kelley
c822da7121 CI: aarch64-linux: support older cmake 2022-11-21 20:16:08 -07:00
Andrew Kelley
5d7efa6d82 CI: aarch64-linux: init 2022-11-14 16:04:01 -07:00
Andrew Kelley
e14d135881 macos: x86_64: fix wrong path to cmake 2022-11-14 15:17:41 -07:00
Andrew Kelley
27e63bb59f CI: aarch64-macos: set PATH env var for cmake 2022-11-14 15:15:12 -07:00
Andrew Kelley
37402e4d17 CI: separate aarch64 and x86_64 macos scripts 2022-11-14 15:10:05 -07:00
Loris Cro
bbd0775d77 ci: init github actions support 2022-11-14 22:41:36 +01:00
Andrew Kelley
a65ba6c85a CI: stop using cloud.drone.io
This service stopped working two days ago for unknown reasons. Until it
is determined how to get it working again, or we switch to a different
CI provider for aarch64, this CI test coverage is disabled so that
we can continue to use the CI for other targets.
2022-11-08 11:04:33 -07:00
Andrew Kelley
e9a12491f6 CI: add stage3/stage4 determinism check
Makes sure that #12183 will not regress.
2022-11-04 20:33:37 -07:00
Veikka Tuominen
8c4faa5f3f
Merge pull request #13338 from Vexu/stage2-compile-errors
Improve some error messages
2022-11-04 16:04:31 +02:00
Veikka Tuominen
577daab08c CI: windows: update tarball 2022-11-03 22:11:25 +02:00
Andrew Kelley
0bbb000359 ci: add 0.10.0 release data 2022-10-31 14:21:52 -07:00
Andrew Kelley
17df35025b CI: disable failing C backend test
See #13357
2022-10-30 03:21:18 -07:00
Andrew Kelley
fbd1390f80 CI: drone: shuffle some tests around
We have to balance the timings to end up below the two hour mark.
2022-10-29 23:10:49 -07:00
Andrew Kelley
c8f1ea46b5 ci: enable aarch64-linux test coverage
closes #12689
2022-10-29 23:07:16 -07:00
Andrew Kelley
3e926d868e CI: update freebsd tarball 2022-10-29 12:15:47 -07:00
Andrew Kelley
23878aec4a CI: azure: fix upload script
Partial revert of changes made in
398a3aae40, fixes regression.
2022-10-27 20:57:21 -07:00
Eric Joldasov
398a3aae40 CI: make directory structure in releases consistent 2022-10-27 20:53:11 -04:00