623 Commits

Author SHA1 Message Date
Christoph Reiter
7417496d9e write_build_plan: rework + build src last
* don't show the cycles when generating the build plan
  (we have other places that show it now)
* interleave the different build types when generating jobs
* make the src jobs depend on the non-src jobs, as src builds
  depend on eiher msys or ucrt64 build results and otherwise
  will just stop due to missing deps. Could be improved by only
  depending on msys/ucrt64, but this is still an improvement.
2023-03-24 13:19:12 +01:00
Christoph Reiter
c27f9a7c40 we can only clean assets for the current repo 2023-03-23 12:32:59 +01:00
Christoph Reiter
19857e3fa0 looks like fromJson() can't handle newlines 2023-03-23 12:07:49 +01:00
Christoph Reiter
956ac59246 write_build_plan: remove the check for running workflows
This was required to avoid running multiple builds at the same time.
But GHA now has concurrency groups which solves the same problem,
so drop that code
2023-03-23 11:59:37 +01:00
Christoph Reiter
ba632451ef README: document the env vars 2023-03-23 11:59:37 +01:00
Christoph Reiter
606b782bb0 config: add option to limit the job count for specific build types
Limit src builds because they are quite fast anyway, and clangarm64
because the self hosted runner can only do one job at a time.
2023-03-23 11:58:17 +01:00
Christoph Reiter
e2ca121180 Replace readonly with write everywhere
less confusing, at least for me
2023-03-23 11:58:17 +01:00
Christoph Reiter
b453032363 Get rid of MAIN_REPO
in most cases at least. either derive from the current
build type, or via get_current_repo() which reads the
GITHUB_REPOSITORY env var.
2023-03-23 11:58:17 +01:00
Christoph Reiter
98697683a5 main: remove --repo option again
this was meant for the arm runner, but it was never used.
2023-03-23 11:58:17 +01:00
Christoph Reiter
6f93057f83 make the tests a package
to make pytest happy
2023-03-23 11:58:13 +01:00
Christoph Reiter
88871c4cb0 Rename _PathLike to PathLike
it's no longer internal
2023-03-23 11:17:10 +01:00
Christoph Reiter
ad34ca14b6 Move some hard coded IDs to the config 2023-03-23 11:17:10 +01:00
Christoph Reiter
e0e19de2c1 Add some unit tests
just one to get things started
2023-03-22 12:47:27 +01:00
Christoph Reiter
5085f864b3 Missed one command 2023-03-22 11:13:33 +01:00
Christoph Reiter
6f40845ba3 README: add a short description and remove the process info
the process info is now moved to the main MSYS2 documentation
2023-03-22 10:42:42 +01:00
Christoph Reiter
6788467670 README: update the CLI help output 2023-03-22 10:09:36 +01:00
Christoph Reiter
87f0603c87 Split the code up into separate modules
with minimal code changes
2023-03-22 09:59:05 +01:00
Christoph Reiter
0d25d51a04 Convert the script to a Python package
It can now be invoked via `python -m msys2_autobuild` or
by installing it, which adds a "msys2-autobuild" script.

This is a first step towards splitting up the code.

The HTTP cache is now stored in the working directory
instead of the source directory.
2023-03-21 11:34:39 +01:00
Christoph Reiter
d0ddf60737 Update dependencies 2023-03-18 10:40:06 +01:00
Christoph Reiter
91ab34350f cache: clean up at the end and limit to 3 hours
it's unlikely there will be many hits after some hours, so better
keep the upload size low. Also clean at the end to make
the upload smaller.
2023-02-19 17:02:55 +01:00
Christoph Reiter
38e6bc6e47 requests_cache: port to new cache cleanup function
I find the API still confusing, but it's better then before.
2023-02-19 16:43:35 +01:00
Christoph Reiter
6ccea00bba Bump the max number of jobs again
Since the last commit we should need fewer API calls
2023-02-19 16:10:29 +01:00
Christoph Reiter
c152a6dbbf Depend on the new pygithub assets API
This exposes the assets inline from a release, so this
should save us lots of requests. Available since v1.58.0
2023-02-19 16:08:51 +01:00
Christoph Reiter
b7df29ff56 CI: skip installing wheel
This was for packages without wheels to build them initially.
In theory newer pip should handle this automatically, let's see
2023-02-19 16:07:19 +01:00
Christoph Reiter
77c2d02a4d Update dependencies 2023-02-19 16:03:41 +01:00
Jeremy Drake
aea263ec2c CI: Remove enabling of clangarm64 in pacman.conf
It is now enabled by default so this is a no-op.
2023-01-29 00:33:11 +01:00
Jeremy Drake
1666f6d3b0 Allow building qt6-static on clangarm64.
The timeout on a self-hosted runner is much larger (72 hours, though
there seemed to be a different limit related to the token hit before
reaching that).
2023-01-18 19:44:42 +01:00
Christoph Reiter
63a1b6020e Extend manual build for mingw-w64-qt5-static to clang32/64
seems the clang build got slower, it now hits the 6h limit always
2023-01-18 18:36:19 +01:00
Christoph Reiter
77a21114a8 CI: set "MSYS" env var later
so the cache action doesn't override it
See https://github.com/actions/toolkit/issues/1312
2023-01-14 12:33:26 +01:00
Christoph Reiter
6e2c5b47d4 Revert "Unset MSYS env everywhere"
This reverts commit e2f4f874a20304bc94047ddf92ca63a9ee9aa5e5.

We are depending on it being set in CI, so this isn't the right approach
2023-01-14 12:32:40 +01:00
Christoph Reiter
e2f4f874a2 Unset MSYS env everywhere
See https://github.com/actions/toolkit/issues/1311
2023-01-14 07:58:13 +01:00
Christoph Reiter
63f65d30bc Delete old assets in a thread pool
To speed things up a bit
2023-01-01 11:34:17 +01:00
Christoph Reiter
307799fd27 Update the status file format and include cycles
This moves it closer to the buildqueue format, and also includes cycles,
and allows future additions.
2022-12-27 16:16:47 +01:00
Christoph Reiter
bf82f9fff2 Don't include broken cycles in the cycle output 2022-12-27 16:16:08 +01:00
Christoph Reiter
a9862b27c1 Missed one left over src build-type 2022-12-24 00:03:29 +01:00
Christoph Reiter
2ae439cd00 Build all source packages in a separate build job
See https://github.com/msys2/msys2-autobuild/issues/69

Building source packages requires git etc to be installed, but
ideally we wouldn't pollute the builder with extra packages that
it doesn't explicitly require.

To avoid this build msys and mingw source packages in a separate job.
2022-12-23 23:53:08 +01:00
Christoph Reiter
21a84297d8 Update deps 2022-12-21 12:09:05 +01:00
Christoph Reiter
e22cc1cc17 Update dependencies 2022-12-10 21:55:46 +01:00
Christoph Reiter
eee25ec33f CI: run on ubuntu-22.04 2022-12-10 21:21:01 +01:00
Christoph Reiter
59e8e1af5d CI: create a larger pagefile
so we can build flang in CI, same as https://github.com/msys2/MINGW-packages/pull/13791
2022-10-29 21:18:54 +02:00
Christoph Reiter
1fd41adbfa CI: test with 3.11 2022-10-27 08:05:20 +02:00
Christoph Reiter
e94b92f73e Update deps 2022-10-27 08:04:11 +02:00
Christoph Reiter
5d06444a57 CI: port away from ::set-output 2022-10-21 13:24:22 +02:00
Christoph Reiter
9d582e19b1 Build src packages in an ucrt64 env
It will be the new default
2022-10-10 18:39:24 +02:00
Christoph Reiter
bf34129d62 Update dependencies 2022-10-09 20:57:44 +02:00
Christoph Reiter
c9dd9afe5e Unset VCPKG_ROOT during build
see https://github.com/msys2/MINGW-packages/pull/13368
2022-10-02 12:35:50 +02:00
Christoph Reiter
b40229daa6 Drop BUILD_TYPES_WIP
This wasn't complete as it would only ignore broken builds
for direct deps and not indirect ones, but kinda worked in ignoring
some arm64 errors.

But it also causes problems if an error is ignored and the other arches
get uploaded. Then it's hard to roll back the update because lots of
packages with the new version are already in the repo.

With the new autobuild controller we can also restart flaky builds instead
of ignoring them and waiting for jeremy to fix them later.

Let's try removing that special case.
2022-09-20 08:02:56 +02:00
Jeremy Drake
253f8b8c4c GHA: accept extra 'context' input
This is meant for the invoker (ie, msys2-autobuild-controller) to
provide additional information to be logged with the job (specifically,
what user requested it).
2022-09-06 21:58:16 +02:00
Jeremy Drake
c03c642719 GHA: log workflow_dispatch inputs in job 2022-09-06 21:58:16 +02:00
Christoph Reiter
f581199930 try running the real pacman with exec
it seems like the pacman wrapper doesn't survive a runtime update.
try exec to avoid returning control to bash
2022-09-06 21:11:16 +02:00