Commit Graph

196 Commits

Author SHA1 Message Date
b8f211e1d1 Make functions to invoke build async 2023-01-17 18:40:05 +01:00
8dfa948e03 Implement helper functions for async global locks 2023-01-17 18:40:05 +01:00
036aa2c090 Fix "invalid escape" in regular expression in test suite 2022-12-29 17:33:01 +01:00
c404a092cc Add async locks
This might be useful to avoid blocking threads in the thread pool just for
waiting on a global lock. It might also be useful to allow stopping build
actions while they're waiting for a lock.
2022-12-04 00:28:47 +01:00
b1acbee127 Add very basic test for build service cleanup 2022-11-24 23:12:01 +01:00
218e1f6b17 Add simple cleanup of old build actions 2022-11-24 21:33:42 +01:00
9cf0fed450 Avoid duplicating "Clone of" in task name 2022-11-13 22:44:41 +01:00
aff7853f94 Set task name of clones 2022-11-13 22:14:29 +01:00
962dd0088e Fix computing source package name
The `packageName` (key in build preparation) might not actually be
`pkgbase` when rebuilding a binary package and `pkgbase` changes compared
to what it was in the before. Then `packageName` is still set to the old
`pkgbase` and we need to use the name from the actual source info (which is
the name `pkgbase` value).
2022-11-13 22:09:44 +01:00
6e7e0c01e3 Avoid using deprecated OpenSSL functions 2022-11-03 22:34:31 +01:00
809bafa6ee Log "Loading …" message when reloading DBs also without force-flag 2022-11-01 14:35:00 +01:00
a205ffae38 Fix adding last package of current batch already to staging repository 2022-09-20 23:00:36 +02:00
c7d8e71978 Add staging test with multiple batches 2022-09-15 22:59:18 +02:00
598b931e9f Move staging tests into their own block 2022-09-15 22:24:12 +02:00
69ee493b8f Fix out-commented check in tests 2022-09-15 22:06:48 +02:00
bde385ba6b Allow auth without access to secrets (and then just don't access secrets) 2022-07-29 22:07:24 +02:00
662c924321 Use flagenumclass.h for auth flags 2022-07-29 22:06:40 +02:00
aece080986 Pass sudo password and GPG passphrase from encrypted file
Not tested yet; so far just an idea to make everything at least a little
more secure
2022-07-25 21:48:24 +02:00
255da5b091 Allow passing secrets to build action 2022-07-11 23:33:28 +02:00
df2b5ba9f6 Allow secrets stored in encrypted files to be loaded from route handlers 2022-07-10 19:47:41 +02:00
9c83ba8ea7 Extend tests for conducting build
* Test further error cases
* Improve checks for error messages
* Use better scoping
2022-07-01 19:28:49 +02:00
1e7e604917 Fix skipping package build due to failed dependency
Skip package as expected when a dependency failed that was attempted to be
built as last package of the previous batch (and building as far as
possible is enabled).
2022-07-01 19:27:39 +02:00
6c1782ba42 Apply clang-format 2022-06-28 16:08:53 +02:00
0e3be7ce69 Fix conduct build action from getting stuck when configuring chroot fails
by moving the creation of the process session below configuring the chroot
2022-06-27 12:49:47 +02:00
9f5474e128 Fix passing architecture when creating database
When adding a new database when reloading the config at runtime the
architecture must be passed when creating the database. Otherwise we end up
with the new database sharing the internal storage with the x86_64 database
which leads to very confusing behavior.
2022-06-19 23:06:25 +02:00
0a536a992a Fix missing include for std::ifstream 2022-06-15 23:31:14 +02:00
3b150428ae Allow building with makecontainerpkg 2022-06-12 20:42:14 +02:00
294dba0e2a Fix URL and show it in the about dialog 2022-06-09 19:50:43 +02:00
c155176098 Fix missing build date in package search
* Avoid using buildDate of PackageInfo in favor of the same field in
  PackageBase
    * PackageInfo::buildDate should be removed on the next breaking change
* Do not really use the deprecated attribute because it is still used by
  (de)serialization code until it is removed for good
2022-06-08 22:44:58 +02:00
94c4b8addc Improve misleading test name 2022-05-31 21:34:20 +02:00
55c7c62c7c Speed up returning build actions table by avoiding deserializing whole obj 2022-05-31 20:54:02 +02:00
645bb0fe54 Use arch-specific sub-directory within cache dir when conducting build 2022-05-31 20:27:42 +02:00
f2902f1d08 Apply clang-format 2022-05-31 20:13:21 +02:00
ecebf9fbde Fix showing arch of packages after optimization
* Move the binary package arch truly into the base package
2022-05-31 20:13:15 +02:00
b74392c34d Speed up deserialization when serving providing packages as well 2022-05-31 19:40:12 +02:00
68d67f543f Refactor to optimize deserialization of base-data
* Break backwards compatibility
* Allow to deserialize only base-data of packages and build
  actions to potentially speed up showing tables
* Speed up package search in many cases by only deserializing
  base-data (unless details are actually wanted)
2022-05-31 19:04:57 +02:00
ae44624989 Rebuild package DBs as well when fixing DBs 2022-05-15 00:32:46 +02:00
40cfe9883c Ensure there are no more leftovers in "clean-repository-" DBs 2022-05-15 00:07:39 +02:00
f37739ec07 Avoid compilation error with GCC 12
Make operator<< for iteratable objects visible prior to call site like it
is already done in other places.
2022-05-12 21:01:58 +02:00
438fccd6cd Avoid fatal warning about potential null pointer deref from GCC 12
It is about code included from Boost.Asio (some io_uring related code) so
let's just not treat it as fatal error.
2022-05-12 20:45:25 +02:00
4c98887b02 Fix warning about possibly unused value 2022-05-12 20:33:23 +02:00
5a6d68b318 Fix using files DB in CleanRepository 2022-05-07 01:59:14 +02:00
c2d5e2f749 Use DB path when checking timestamps in repo cleanup
Otherwise it can break if files DBs are used.
2022-05-02 22:23:35 +02:00
1950619f21 Add link to UI in root page 2022-05-01 22:21:42 +02:00
e343b3ca44 Split ResourceUsage into MemoryUsage and setup specific stats 2022-04-24 18:25:22 +02:00
142f6466ae Show resource usage in UI 2022-04-23 19:56:22 +02:00
a780b26ef6 Log package cache size on startup 2022-04-20 22:47:29 +02:00
26caa78956 Reduce memory usage when loading packages
* Avoid creation of map with all archive contents; instead parse packages
  while walking though the archive
* Avoid instantiation of std::string in come cases (using std::string_view)
* Reuse libarchive's archive entry when walking though archive
* Use visitor-based database parser in all places to avoid intermediate big
  array with all package objects
2022-04-20 22:47:10 +02:00
2ca6ce1eec Prevent crash in package search when index is broken 2022-04-19 00:24:31 +02:00
1f3f0b0df1 Avoid high memory usage when reloading database
Especially when enabling files DBs it is quite problematic to store all
package objects of a database within one big array. This change avoids the
array and instead adds the packages directly. The disadvantage is that
clearing the database isn't as simple anymore.
2022-04-19 00:23:46 +02:00