Commit Graph

42 Commits

Author SHA1 Message Date
Martchus f7272c0836 Adapt makechrootpkg invocation to change in devtools-custom 2024-03-16 22:36:00 +01:00
Martchus 5d5b673b3c Improve updating package database when loading library dependencies
* Make use of `PackageUpdater` more efficient by avoiding multiple calls of
  `addDepsAndProvidesFromOtherPackage`
* Fix leaving old provides in the database by splitting the update via new
  `beginUpdate()` and `endUpdate()` functions
2023-12-21 20:51:38 +01:00
Martchus 8deeb0a82b Remove non-forcing package updates
This was only used in tests but was otherwise not very useful as we
normally need to ensure the persistent database is updated as well.
2023-12-19 21:34:18 +01:00
Martchus feadac7a66 Adapt tests to changed note 2023-05-28 22:37:19 +02:00
Martchus 86581ec002 Add note in cleanup action stating how many build actions have been deleted 2023-04-08 18:50:46 +02:00
Martchus 5af8de2468 Fix catching exception from `boost::filesystem` in `BuildServiceCleanup` and adapt tests 2023-04-08 18:43:58 +02:00
Martchus 2fd30f5a0f Adapt tests to boost 1.81 2023-01-23 22:41:01 +01:00
Martchus 036aa2c090 Fix "invalid escape" in regular expression in test suite 2022-12-29 17:33:01 +01:00
Martchus 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
Martchus b1acbee127 Add very basic test for build service cleanup 2022-11-24 23:12:01 +01:00
Martchus a205ffae38 Fix adding last package of current batch already to staging repository 2022-09-20 23:00:36 +02:00
Martchus c7d8e71978 Add staging test with multiple batches 2022-09-15 22:59:18 +02:00
Martchus 598b931e9f Move staging tests into their own block 2022-09-15 22:24:12 +02:00
Martchus 69ee493b8f Fix out-commented check in tests 2022-09-15 22:06:48 +02:00
Martchus 255da5b091 Allow passing secrets to build action 2022-07-11 23:33:28 +02:00
Martchus 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
Martchus 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
Martchus 94c4b8addc Improve misleading test name 2022-05-31 21:34:20 +02:00
Martchus 55c7c62c7c Speed up returning build actions table by avoiding deserializing whole obj 2022-05-31 20:54:02 +02:00
Martchus 645bb0fe54 Use arch-specific sub-directory within cache dir when conducting build 2022-05-31 20:27:42 +02:00
Martchus 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
Martchus e15f65ac16 Extend tests for conducting build 2022-04-07 23:18:14 +02:00
Martchus 0343685910 Adapt tests for limiting 2022-02-25 23:18:26 +01:00
Martchus bdbfd42e5e Avoid package object being reused after 3d7310af3 2022-02-20 19:50:44 +01:00
Martchus 93afb3883d Write build action "output" log to a logfile like for sub-processes 2022-02-20 00:11:23 +01:00
Martchus 557fd1a738 lmdb: Use lmdb to store build actions 2022-02-13 21:04:54 +01:00
Martchus 218dfecf56 Avoid loading databases when modification date is <= last update
* Do HTTP head request first when loading database from mirror to avoid
  downloading the full database all the time
* Use the last modification date of the local database file because with
  the persistent storage even local database reloads became a bit expensive
2022-01-25 00:13:10 +01:00
Martchus f088e54c61 lmdb: Use package cache when querying packages for dependencies
* Use package cache when querying packages for dependencies or library
  names
* Avoid manual instantiations of `std::shared_ptr<Package>`
2022-01-21 20:35:43 +01:00
Martchus 2ffa6629c8 lmdb: Use lmdb to store packages and dependency indices 2022-01-18 21:50:53 +01:00
Martchus ace478be22 Fix tests when test working directory is on another device
* Fallback to copying if hard link creation fails due to cross device link
2021-09-30 22:22:22 +02:00
Martchus c68202bdc1 Add test for repository cleanup 2021-08-29 00:29:26 +02:00
Martchus e5f4057c61 Use BufferSearch from c++utilities 2021-07-16 16:01:23 +02:00
Martchus 49aebdd8a5 Fix typos found via `codespell --skip .git -w` 2021-07-03 19:59:57 +02:00
Martchus 3a797bc8b6 Adapt test to fixed behavior of splitString*() to preserve last empty part 2021-05-16 19:43:16 +02:00
Martchus b73bee87b5 Add test for posting build actions from pre-defined build task 2021-04-05 19:49:04 +02:00
Martchus 1c75e8f957 Allow signing packages manually after the build
Simply adding `--sign` to the `makepkg` flags doesn't work because it would
require setting up GPG within the chroot environment (of `makechrootpkg`).

When debugging it is anyways annoying that `makepkg` sends the `gpg` output
to `/dev/null`. This way the logs are preserved.
2021-03-14 21:53:51 +01:00
Martchus 4416922397 Fix clearing locks 2021-03-02 18:30:15 +01:00
Martchus f147dc3179 Fix locks for global resources by implementing a mutex not tied to a thread
* Can not use a normal mutex because we don't want to tie the resources to
  a specific thread (and instead e.g. to a build action which might not be
  executed by a single thread)
* A semaphore would do that but libstdc++ only supports it as of GCC 11 and
  besides it wouldn't distinguish between shared and exclusive locking
2021-02-26 01:39:21 +01:00
Martchus 3894d911d7 Fix posting build action to start it later; add basic test for the route 2021-02-08 23:54:03 +01:00
Martchus 6b274ccc88 Improve log messages 2021-02-08 23:54:03 +01:00
Martchus aa356944da Log process IDs of started sub processes 2021-02-08 23:54:02 +01:00
Martchus c1554f4c87 Initial import 2021-02-08 23:53:56 +01:00