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