Commit Graph
50 Commits
Author SHA1 Message Date
Martin Storsjö 87ab2cb43d github: Expose the job properties (TAG and versions) in an artifact too
While we use the job outputs since 18bd3665ac,
having the info available in an artifact makes it easier to
fetch this in later separate workflows.
2023-06-01 11:23:41 +03:00
Martin Storsjö f03d94dbdc github: Update a comment 2023-06-01 11:20:55 +03:00
Martin Storsjö fc5d2c9b21 github: Run on pull requests too 2023-05-23 11:22:57 +03:00
Martin Storsjö 995d3ac516 github: Run all the compiler-rt tests, on both i686 and x86_64
These tests should now all pass on both architectures; the
check-asan tests for the static CRT are skipped automatically,
the failures in check-interception have been fixed by compiling
the tests with the --large-address-aware flag, and the
check-asan-dynamic tests on i686 have been fixed - all by
Alvin Wong.
2023-05-05 08:27:15 +03:00
Martin Storsjö a8629002bf github: Do rudimentary testing of the cross-built aarch64 toolchain with qemu
Verify that it can compile the tests in llvm-mingw's testsuite;
this should serve as a smoke test to see that the toolchain is
correctly assembled.
2023-04-28 10:04:39 +03:00
Martin Storsjö 46215b2510 build-python: Bump to Python 3.10.11 2023-04-27 10:50:36 +03:00
Martin Storsjö 1fb5681e58 github: Add a job for cross compiling the toolchain for linux on aarch64 2023-04-27 10:47:51 +03:00
Martin Storsjö 1ab52ba4a3 github: Generalize the patterns for moving artifacts that are to be uploaded
Exclude the artifacts from the asserts build, if available.
2023-04-27 10:47:15 +03:00
Martin Storsjö 525489a018 github: Rename the linux-cross job to linux-cross-windows 2023-04-26 19:18:24 +03:00
Martin Storsjö c49af4399a github: Skip dependencies (libxml2, terminfo) in linux builds that have little value in our context
The fewer dynamic library dependencies we have, the easier it is
to run the binaries on other linux distributions than the one it
was built on.

In the docker based releases, these libraries haven't been installed
and thus haven't been used so far.

The docker based releases haven't linked against zlib though, but
keep linking against that, since that should have a quite stable
ABI and not cause much binary compatibility issues.
2023-04-26 10:01:42 +03:00
Martin Storsjö 586a9acf02 github: Upload all artifacts from scheduled builds to the "nightly" release 2023-04-25 09:59:28 +03:00
Martin Storsjö 48276b7f42 github: Remove the unnecessary arch suffix on the intermediate install directory in the linux-cross jobs
The packaged directory gets renamed to include a suffix in the end
anyway.
2023-04-25 09:59:28 +03:00
Martin Storsjö 7a5dfaf469 github: Run the non-asserts linux build on 20.04
This should make the produced artifact more widely compatible.

Releases built with release.sh with the dockerfile are currently
based on Ubuntu 18.04 though, and are more shielded from potential
extra libraries that are found during the build.
2023-04-25 09:59:28 +03:00
Martin Storsjö 8abf794331 github: Produce artifacts with names that match the actual releases 2023-04-25 09:59:28 +03:00
Martin Storsjö 085653b6c8 github: Rename the "get-versions" step to "prepare" 2023-04-25 09:59:28 +03:00
Martin Storsjö 8d1d6f9947 github: Set the versions to build in scheduled builds via the GHA "env" field
For non scheduled builds, those env variables are just left empty.

This is much neater than using the "versions" file, and uses much
fewer lines of code.

We still probably want to bundle a file labelling what versions
it contains in the built packages though; give that file a
.txt suffix.
2023-04-25 09:58:25 +03:00
Martin Storsjö 18bd3665ac github: Use job outputs instead of a "versions" artifact/file
This is more idiomatic, requires fewer lines of code and doesn't
require passing an actual file along (unless we want to).
2023-04-24 11:36:22 +03:00
Martin Storsjö f0b14f9e20 github: Sync the cpython-mingw branch used with build-python.sh 2023-04-22 23:18:55 +03:00
Martin Storsjö afedda2cbd github: Remove a redundant "update: false" for setup-msys2
"update: false" is the default, and we don't specify it elsewhere.
2023-04-22 01:28:26 +03:00
Martin Storsjö 0b3fc13a42 github: Add a job for running compiler-rt tests 2023-04-20 10:40:35 +03:00
Martin Storsjö 5d778657c2 github: Include libcxxabi and libunwind tests in the test-libcxx job too
These test suites now pass in the latest git main.

This target isn't run automatically anywhere, but in case the
target is enabled to run the tests, include the libcxxabi and libunwind
test suites too.
2023-04-20 10:36:19 +03:00
Martin Storsjö 0ab70b67d8 github: Remove ignores for failing ffmpeg tests
These no longer fail; they were fixed in ffmpeg in commit
76b33704b628248d77ed61cbef9ecd9430a4b6c5 in July 2022; we currently
test a pinned 6.0 release, where this fix is included.
2023-04-19 23:18:17 +03:00
Martin Storsjö b495c39a6d github: Use less specific filenames in the ffmpeg test jobs
This reduces the differences if using a proper release tarball
instead of an artifact from an earlier step (if testing parts of
the workflow by modifying it).
2023-04-19 23:18:17 +03:00
Martin Storsjö 5264f99ade github: Stop setting PYTHON_EXECUTABLE in the openmp test job
This shouldn't be necessary any longer since commit
40079637569f999015eaf3f7e137a63b2c8ade92 in llvm-project (in
December 2022).
2023-04-11 11:06:43 +03:00
Martin Storsjö 8189893403 github: Update a comment about the openmp test job
We're now on 16.x, and the tests do pass, but we still skip running
these tests on regular pushes - we only do them for the scheduled
nightly builds.
2023-04-11 11:06:43 +03:00
Martin Storsjö c1d6c39d33 Revert "github: Disable building lldb-mi in the scheduled cross builds"
This reverts commit 1b216b6fdf.

It's now compatible with current llvm versions.
2023-04-11 00:08:38 +03:00
Martin Storsjö 9e612d76f9 github: Stop setting LIBCXX_TARGET_INFO for the libcxx test setup
This variable is no longer needed/used.
2023-03-10 20:05:47 +02:00
Martin Storsjö 04ec21bea7 github: Run tests with the ffmpeg 6.0 release instead of 5.1.2 2023-03-09 13:54:10 +02:00
Martin Storsjö 22790a89f4 github: Don't run builds for tags, only pushes to branches
There's no need to rerun all the builds when pushing a tag.
2023-02-10 23:56:30 +02:00
Martin Storsjö c49460aa86 github: Add setup for running libcxx's tests on the built toolchain
Keep this disabled by default (since it takes a fair amount of time
and has good test coverage upstream), but including it in disabled
form so that it's easy to enable temporarily for testing occasionally.

Libcxx does test the mingw configuration in their own CI (with an older
pinned release of the compiler), so this is mostly redundant, and
primarily relevant for testing that the very latest compiler (and
python setup) works for the tests.
2023-01-29 01:13:39 +02:00
Alvin Wong ce554e93c5 Revert "Enable CFGuard for scheduled builds which uses latest llvm and mingw-w64"
This reverts commit e76e935c7d.

This is no longer necessary, since the default currently is to
enable CFGuard.
2023-01-29 01:09:17 +02:00
Martin Storsjö 6a37ec900b github: Test building and running the OpenMP tests on Windows
These tests should pass with the latest version from git (but
don't pass with the current pinned 15.0.0 version).
2022-11-29 22:40:47 +02:00
Martin Storsjö 01597c1d72 github: Include the version file in the cross-built toolchains too 2022-11-14 00:26:44 +02:00
Martin Storsjö a5a6488198 github: Test a known-good version of ffmpeg
The latest version in git might have some tests failing occasionally
(like it does currently).
2022-11-07 23:10:21 +02:00
Martin Storsjö e16ba0772f run-tests: Split out building and running of tests into a Makefile
This allows building and running the tests in parallel.
2022-10-29 23:22:56 +03:00
Martin Storsjö a7130b4396 github: Set a ulimit timeout when cross-building ffmpeg 2022-10-29 23:07:43 +03:00
Martin Storsjö 9750d128ad Revert "github: Update the environment used for doing msys2 builds"
This reverts commit 55db22d242.

The base tarball for setup-msys2 should now be new enough to
include the patched compiler in the clang64 environment, so this
no longer requires updating the environment on each build.
2022-10-27 22:17:04 +03:00
Martin Storsjö 53e803c424 github: Update use of actions/checkout and actions/upload-artifact from v2 to v3
The use of actions/download-artifact was already at v3.

This should avoid warnings about use of Node 12 which now is
deprecated.
2022-10-21 18:00:20 +03:00
Martin Storsjö dcd92f6146 github: Print the chosen versions in the get-versions job
They are printed in the later jobs that use them already though,
but print them here too, for clarity.
2022-10-04 11:51:22 +03:00
Alvin Wong e76e935c7d Enable CFGuard for scheduled builds which uses latest llvm and mingw-w64 2022-10-01 13:25:52 +03:00
Martin Storsjö b78082449e github: Run the lldb smoke tests as part of the test-toolchain stage
Run this for both i686 and x86_64, as we only test lldb with the
native architecture of the lldb executable (which is assumed to
be the same as the default architecture of the clang executable).
2022-09-17 00:20:52 +03:00
Martin Storsjö 263431c101 github: Fix a comment in a printed message
This was missed in 982e43d9c3.
2022-09-12 10:38:23 +03:00
Martin Storsjö 55db22d242 github: Update the environment used for doing msys2 builds
This should get a patched host compiler for the clang64 environment,
supporting symbol visibility, avoiding exporting too many symbols
from the dylibs.

For the mingw64 build (with GCC, which doesn't support symbol
visibility on Windows), the number of exported symbols
seems to be slightly lower, so we don't hit the limit of exported
symbols quite yet.
2022-09-02 11:38:26 +03:00
Martin Storsjö b6dd40540d github: Install the diffutils package when building on msys2
The configure script of winpthreads tries to execute the "cmp"
command (pulled in via the libtool macros), visible as errors in
the build logs. (The issue doesn't seem to make any practical
difference though.)
2022-09-02 11:34:26 +03:00
Martin Storsjö 982e43d9c3 github: Build two linux toolchains, one with and one without assertions, in scheduled builds
Use the one without assertions for cross-building toolchains, as the
one with assertions is too slow. In practice, one or more of the cross
toolchain builds end up timing out (exceeding the 6 h limit) almost
every day in the scheduled builds, requiring reruns (sometimes
multiple reruns) to complete successfully in time.

(There seems to be a big variation in what actual runner the jobs
end up using; some runners complete the cross builds in around 4 h,
while some are much slower, and seem to require 5-6 hours or more.)

In practice, during the 2 months that I've had scheduled jobs
running on Github Actions, there haven't been any failed asserts
triggered and caught in the cross builds (but once in the cross builds
of ffmpeg, which still keep using a toolchain with asserts enabled).
2022-08-24 13:24:52 +03:00
Martin Storsjö 1b216b6fdf github: Disable building lldb-mi in the scheduled cross builds
Latest git llvm-project has switched to requiring C++17, while
lldb-mi still is built in C++14 mode. This makes the scheduled builds
fail. Therefore, disable building lldb-mi for now in the scheduled
builds, until this has been fixed in the latest git main versions
of lldb-mi.
2022-08-12 00:51:56 +03:00
Martin Storsjö badbd89806 github: Disable zstd in the macos github actions build
Zstd is available and gets autodetected, but it's only available in
native form, not in arm64 form.

Also, for the existing workaround, instead of entirely disabling lldb,
one could pass -DLLDB_ENABLE_PYTHON=OFF instead.
2022-07-21 21:52:22 +03:00
Martin Storsjö 98f3380bec build-python: Bump to cpython-mingw 3.10.5
This is the version that msys2 currently ships.
2022-06-19 23:10:14 +03:00
Martin Storsjö ca2bc90bf3 github: Fix a typo in the workflows file 2022-06-18 23:05:04 +03:00
Martin Storsjö 24b8efd236 Add GitHub Actions builds
Test building the toolchain on all supported platforms for building
it (linux, macOS, msys2). Produce cross-built standalone toolchains
that run on Windows for all 4 supported architectures.

Run scheduled builds (daily), built with the latest git versions of
most components. For scheduled builds, the linux toolchain is built
with assertions enabled, as latest git version of llvm occasionally
can have regressions, and many such are caught by having assertions
enabled and building enough code that exercise many code generation
cases.
2022-06-16 10:36:10 +03:00