Commit Graph

767 Commits

Author SHA1 Message Date
Christoph Fiehe 4195ad90bc Allow to add a new component to a published repo
This commit modifies the behavior of the publish switch method in the way, that also new components can be added to an already published repository. It is no longer necessary to drop and recreate the whole publish.

Signed-off-by: Christoph Fiehe <c.fiehe@eurodata.de>
2024-09-24 15:43:27 +02:00
André Roth 20c81d7f9a ci: allow pull requests
disable tests if env secrets are empty

- detect emtpy aws token
- upload: check for aptly creds
2024-09-24 10:14:39 +02:00
André Roth 9771747916 improve CI workflow
- use debian version consistently
- if the commit is not on a git tag, append ci version
- avoid double zipping
- cleanup binary builds
- replace `make release` with `make binaries`
- add missing files to archives
- use matrix build for deb packages
- allow building release version
- keep directory inside zip archives
- accept releases only on master
  only tags on master will trigger a release
- cleanup namings
- keep path in zip
- add retention period for pipeline artifacts
2024-09-24 10:14:39 +02:00
André Roth 497196886a system-tests: download compressed etcd.db 2024-09-24 10:14:39 +02:00
iofq 056df39a3c move release script to Makefile 2024-09-24 10:14:39 +02:00
André Roth 88f4101866 update or downgrade go modules to match debian versions
- use go 1.22 (as available also in bookworm-backports)
- do not install go mods in docker
2024-09-24 10:14:39 +02:00
André Roth 2306993b7b ci: improve aptly repo layout
use the new -multi-dist option to combine all distributions into one
publish point:

deb http://repo.aptly.info/ci bookworm main

or:

deb http://repo.aptly.info/release bookworm main

for the following distributions: buster, bullseye, bookworm, focal, jammy
2024-09-24 10:14:39 +02:00
André Roth 98b1ed07d1 docker: improve dev env
- abort docker scripts on error
- generate version in system tests
- build debian packages in docker
- add make clean target
- fix lint
2024-09-24 10:14:39 +02:00
André Roth b342af0d96 system tests: fix gpgv warning when verifying signatures
gpgv: can't allocate lock for '/home/runner/.gnupg/aptlytest.gpg'

this forced running local system tessts in /home/runner, as it is
in the gitgub actions.
2024-09-24 10:14:39 +02:00
Andre Roth 8fd48e9fa9 add default aptly config files
config rfiles are read in the following order:

1) ~/.aptly.conf
2) /usr/local/etc/aptly.conf
3) /etc/aptly.conf
2024-09-24 10:14:39 +02:00
André Roth 95915480a0 update tests
the fixed handling of provided packages results in snapshots no longer missing provided packages,
and also provided packages being added to repos.
2024-08-11 12:35:46 +02:00
André Roth 40eb4b4751 docker-lint: use go 1.19 compatible golangci-lint version
- use same user in docker container
- use GOPATH in source dir to prevent downloading all dependencies on each run
- add make clean
2024-08-03 00:14:26 +02:00
André Roth 0215925608 add graphviz to enable system tests
aptly uses dot in the aptly graph command and API. if it is not available, the test is skipped...
2024-08-03 00:14:26 +02:00
André Roth 696b78f207 docker: update dev env and documentation 2024-08-03 00:14:26 +02:00
André Roth 48a0bca35e allow s3 test in docker
read AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY from ./aws.creds when running:

  make docker-system-tests
2024-08-03 00:14:26 +02:00
André Roth a0bd32a39c system tests: fix expired ppa mirror key 2024-07-31 22:16:00 +02:00
André Roth 640c202ee5 etcd: implement separate system tests
- add t13_etcd test directory
- etcd will be started for the unit tests and each system test
- etcd will load fixture DB export if requested by the test
- existing tests are reused for etcd testing
2024-07-31 22:16:00 +02:00
hudeng 59bf4501e8 feat: Use databaseBackend config repace databaseEtcd
databaseBackend config contains type and url sub config, It can facilitate the expansion of other types of databases in the future.
2024-07-31 22:16:00 +02:00
hudeng f29449db14 feat: Add system test for etcd 2024-07-31 22:16:00 +02:00
hudeng 78172d11d7 feat: Add etcd database support
improve concurrent access and high availability of aptly with the help of the characteristics of etcd
2024-07-31 22:16:00 +02:00
André Roth 57e2c5c670 api tests: use check_task_fail 2024-07-24 21:19:47 +02:00
André Roth 49ff832f94 reenable lost tests 2024-07-24 21:19:47 +02:00
André Roth 4a0bdcbb64 improve system tests
- log import errors for test modules
- log output only on test failure
- improve docker system test container
- use go 1.19 in docker system tests
- download go dependencies in docker container
- system tests: color failues output
- imrpove test result output
- do not install golangci-lint in system tests
2024-07-24 21:19:47 +02:00
André Roth fe25414b45 api: repo copy handle package not found
and add tests for error proper handling.
2024-07-24 21:19:47 +02:00
André Roth 440c3debdc improve api tests and error output
show only relevant aptly logs if a test fails.
for async tasks, show task output, as it contains the error message.
2024-07-24 21:19:47 +02:00
André Roth 8029305d32 dependencies: remove duplicates / missing deps from test 2024-07-11 18:25:49 +02:00
Sylvain Nieuwlandt 11401ca472 [api/copy] create system tests for new copy api endpoint 2024-07-10 16:43:03 +02:00
André Roth d8c1e432c6 add test 2024-07-03 18:08:58 +02:00
André Roth 4661913265 add system test for maximumVersion filter 2024-06-24 17:44:40 +02:00
Ryan Gonzalez b5bf2cbcda Fix functional tests' '--capture' on Python 3
None of the commands' output is ever treated as binary, so we can just
always decode it as text.

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2024-06-17 11:51:18 +02:00
Ryan Gonzalez f9325fbc91 Add support for Azure package pools
This adds support for storing packages directly on Azure, with no truly
"local" (on-disk) repo used. The existing Azure PublishedStorage
implementation was refactored to move the shared code to a separate
context struct, which can then be re-used by the new PackagePool. In
addition, the files package's mockChecksumStorage was made public so
that it could be used in the Azure PackagePool tests as well.

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2024-06-17 11:51:18 +02:00
Ryan Gonzalez 8e37813129 Add support for custom package pool locations
Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2024-06-17 11:51:18 +02:00
Ryan Gonzalez 91574b53d9 Add functional tests for Azure publishing
Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2024-06-17 11:51:18 +02:00
Ryan Gonzalez 859edb10cd Fix S3 tests on Python 3
read_path() can read in binary, which the S3 tests don't support (simply
because they don't need it)...but it needs to be able to take the `mode`
argument anyway.

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2024-06-17 11:51:18 +02:00
André Roth f0bf519d36 cleanup 2024-06-15 19:18:14 +02:00
André Roth d8cfafccc9 system tests: improve log output 2024-06-15 19:18:14 +02:00
André Roth 34c1c1f83a system-tests: make docker abortable and use colors 2024-06-15 19:18:14 +02:00
André Roth 45035802be implement task queue waiting for resources 2024-06-15 19:18:14 +02:00
André Roth 2d97ba2bbd fix flake8 error 2024-06-15 19:18:14 +02:00
Ramón N.Rodriguez 47696a3303 api:publish: test concurrency
This commit introduces a test which runs concurrent publishes (which
could be parallell with multiproccessing, python is fun).
The test purposly fails (at the point in history that this patch is
written) in order to make it as easy as possible to verify later patches,
which hopefully addresses concurrency problems.

The same behaviour can easily be tested outside of the system tests with
the following (or similar) shell

$ aptly serve -listen=:8080 -no-lock
$ aptly repo create create -distributions=testing local-repo
$ atply publish repo -architectures=amd64 local-repo
$ apt download aptly
$ aptly repo add local-repo ./aptly*.deb
$ for _ in $(seq 10); do curl -X PUT 127.0.0.1:8080/api/publish//testing

In the local testing perfomed (on a dual core vm) the first 1-4 jobs
would typically succeed and the rest would error out.
2024-06-15 19:18:14 +02:00
André Roth 57ff7c69cd mirror api: add test for SkipArchitectureCheck and SkipComponentCheck 2024-06-14 14:30:29 +02:00
André Roth 06be6f23a6 Revert "Bump requests from 2.28.2 to 2.31.0 in /system"
This reverts commit 24e62b58bc.
2024-04-17 22:08:27 +02:00
dependabot[bot] 24e62b58bc Bump requests from 2.28.2 to 2.31.0 in /system
Bumps [requests](https://github.com/psf/requests) from 2.28.2 to 2.31.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.2...v2.31.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-17 21:35:16 +02:00
André Roth 2a2e35c096 add test for publishing distribution with slash (/) 2024-04-11 19:37:51 +02:00
André Roth 32595e7cb7 openpgp: export full key for internal gpg 2024-04-11 10:15:02 +02:00
André Roth 9deb031c44 fix system tests
- use s3 mirror instead of internet download
- reduce download verbosity
- do not use venv in docker-system-tests
- be more verbose on test output
- do not run golangci-lint in system-tests
2024-04-11 10:15:02 +02:00
André Roth 50eaf6c0bb update docker / makefile 2024-03-06 12:46:44 +01:00
André Roth 72a7780054 fix golint complaints 2024-03-06 06:21:36 +01:00
André Roth d7cc9b89d1 system tests: use repository mirrors on S3 for reproducibility
no direct internet download from apt repositories,
which over time will change or cease to exist.

also migrate to gpg2 on newer ubuntu.
2024-02-05 13:04:45 +01:00
André Roth a69aa7c533 system-tests: add Dockerfile 2024-02-05 13:04:45 +01:00