162 Commits

Author SHA1 Message Date
Christoph Reiter
dad24d4aef Add clang32 2021-04-25 14:50:25 +02:00
Christoph Reiter
41ce6dcf6f Add clang64 2021-04-23 16:45:08 +02:00
Christoph Reiter
12703c6cd3 CI: reduce cron time to every 4 hours
The high poll rate was mostly there to avoid pauses if there are many things to build.

Since jobs now get queued we can poll at the rate at which the jobs hit their
soft limit and stop beginning new builds. If there are more builds left then
the next queued workflow will start right away now.
2021-04-21 15:25:03 +02:00
Christoph Reiter
8ebdca930c
MINGW_INSTALLS -> MINGW_ARCH 2021-04-12 08:25:32 +02:00
Christoph Reiter
67d78714f7 wait_for_api_limit_reset: handle both read and write tokens
We want to wait if either of them reaches the limit
2021-04-11 16:26:14 +02:00
Christoph Reiter
3f115655b3 Use a read-only PAT for read only operations
We now use a dummy PAT for read-only requests and the GHA token
for any write operations. This should give us 5x more ready-only
API calls per hour.
2021-04-11 16:10:58 +02:00
Christoph Reiter
177fa71ff2 pygithub leaks requests exceptions 2021-04-11 15:29:48 +02:00
Christoph Reiter
79ab25aa7d pygithub: try to retry requests
We get a lot of errors recently
2021-04-11 14:37:57 +02:00
Christoph Reiter
251a70c6d0 Ignore ucrt64 when deciding which packages are ready
So it doesn't block everything
2021-04-05 11:24:10 +02:00
Christoph Reiter
0ba23c7f0a Fix upload without replacment
I missed that case with the last API call reduction change
2021-04-04 09:31:34 +02:00
Christoph Reiter
79a11d4c1d
Reduce API limit to 50 and flush stdout
50 should be enough, and maybe flushing makes the message show in the logs
2021-04-04 09:14:54 +02:00
Christoph Reiter
ffebe82072 More debug output for the rate limit waiting 2021-04-03 15:46:01 +02:00
Christoph Reiter
4e74dcd802 Wait when writing the build plan too 2021-04-03 11:20:46 +02:00
Christoph Reiter
3b01ae2d7a Sleep in case the remaining api calls fall below 100
Before we start a build and before we want to upload
2021-04-03 11:03:56 +02:00
Christoph Reiter
1be021c37c
bump the limit for additional jobs a bit
otherwise we trigger api rate limits too easily
2021-04-02 21:57:55 +02:00
Christoph Reiter
99ee497121 Ignore errors during the status update
In case multiple jobs want to replace the same asset things get racy,
so just ignore errors for now.
2021-04-02 15:06:34 +02:00
Christoph Reiter
5e435f16c5 Print the api rate limit status from time to time 2021-04-02 14:35:25 +02:00
Christoph Reiter
1cf6bcd510 Support more than one job per build type
The second one just starts from the end, so there is less chance of
them building the same thing.
2021-04-02 14:32:16 +02:00
Christoph Reiter
535a1cb670 Avoid fetching assets when uploading in the common case
In case the upload just works we don't have to look for things to delete first.
Saves some API calls..
2021-04-02 14:10:07 +02:00
Christoph Reiter
e45ba0dde5 Only build a source package if we need to
In case the repo already contains a package with the same base and version
we can assume that the source package is already in the repo as well.
2021-04-02 11:15:42 +02:00
Christoph Reiter
0d948c349d Fix one case where an incomplete package could still be moved to staging 2021-03-31 21:37:58 +02:00
Christoph Reiter
94e8b7f8d3 In case there are only blocked related builds block all instead of marking as incomplete
Instead fo marking them incomplete which would prevent them from reaching staging.
2021-03-31 10:17:10 +02:00
Christoph Reiter
533127815b Add ucrt64 support 2021-03-25 17:38:48 +01:00
Christoph Reiter
3e10bb5f32 Handle the blocking recursively
oh well...
2021-03-14 08:53:39 +01:00
Christoph Reiter
1d87fa448c Blocked and finished also needs to block all deps/rdeps
Fixes #27
2021-03-14 08:24:49 +01:00
Christoph Reiter
2e47253d7c
Ignore mingw-w64-tolua for now 2021-03-13 18:53:08 +01:00
Christoph Reiter
ed06d345cd
Skip mingw-w64-arm-none-eabi-gcc
Takes too long
2021-02-22 09:27:08 +01:00
Christoph Reiter
18d1bd382d Fetch validpgpkeys before running makepkg
auto retrieve only allows one keyserver and that is flaky, also
not all signatures include the full length key.
2021-02-21 13:21:00 +01:00
Christoph Reiter
571bdbec92 thinko 2021-02-08 19:31:21 +01:00
Christoph Reiter
73b6385940 Spawn one job for each build type 2021-02-08 19:25:12 +01:00
Christoph Reiter
9ae54273b1 Dynamically create a build matrix
at least try to
2021-02-08 18:35:05 +01:00
Christoph Reiter
770dca45d1 Support Python 3.6 and test in CI 2021-02-07 10:49:43 +01:00
Christoph Reiter
171962d948 include the version in the status json 2021-02-06 15:03:41 +01:00
Christoph Reiter
cf51c634ca More typing 2021-02-05 17:52:41 +01:00
Christoph Reiter
d131e8417c No longer store split package names
We always consider all split packages for a split type now and
never one split package alone.
2021-02-05 17:46:43 +01:00
Christoph Reiter
693c8fb667 Get rid of a hack to download all related assets by making them fake deps
Instead handle this in the place where we decide what to download.
2021-02-05 17:39:22 +01:00
Christoph Reiter
63e2681784 Separate messages for missing deps an rdeps 2021-02-05 17:20:07 +01:00
Christoph Reiter
f6c0aa9068 Also handle reverse deps from msys to mingw 2021-02-05 17:13:26 +01:00
Christoph Reiter
0b88e29e87 Clean up the package exception lists 2021-02-05 16:37:03 +01:00
Christoph Reiter
dd5df302c9 oops.. 2021-02-05 16:33:08 +01:00
Christoph Reiter
279cabaa98 Handle mingw packages depending on msys ones
This is the only cross build type dep we allow.
2021-02-05 16:19:34 +01:00
Christoph Reiter
04735f8c7f Deduplicate and sort missing deps in the description 2021-02-04 10:41:24 +01:00
Christoph Reiter
bd3d4d38c4 Remove error when building the same thing twice
This was to prevent bugs leading to loops, but also prevents
rebuilds in case of flaky builds that are manually reset.

Things seem stable enough now, so remove it.
2021-01-31 13:51:55 +01:00
Christoph Reiter
2ce31a81f6 Update the build status before/after each build
Instead of before abd after the CI job. We already have most the information
ready in that case so we can do it more often without hitting the GH API too much.

This gives us faster status updates on the website.
2021-01-30 20:00:05 +01:00
Christoph Reiter
4eaa5d3941
try blender again 2021-01-24 17:00:45 +01:00
Christoph Reiter
87d7916308 Always build source packages in CI
They should always work and not hit any limits
2021-01-24 13:33:13 +01:00
Christoph Reiter
4daf82d87f Add an upload-assets command
Example:

* build package
* ./autobuild.py upload-assets mingw-w64-blender

It will look automatically for the right files in the current directory (or specify
a directory via --path) and upload them. Use --dry-run to see what gets uploaded first.

Our CI can't handle all packages since some reach the build time limit
and some toolchain packages have cyclic dependencies that make DLL version
bumps impossible without locally copying DLLs around.

For this maintainers can now upload the missing packages and unblock CI.
Up until now only GHA was allowed to upload. This gets replaced by a list of allowed
uploaders. It doesn't add much security, but better than nothing.
2021-01-23 21:11:02 +01:00
Christoph Reiter
4ccc958f85 Fix finished check for blocking
We only want to know if they are finished, not if they can be downloaded.
2021-01-23 20:48:21 +01:00
Christoph Reiter
b6111084a4 Add a shebang 2021-01-23 19:56:29 +01:00
Christoph Reiter
d428412330 typo 2021-01-22 19:48:02 +01:00