diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 118f96ffc30bfc991ac29a86bf37bc8185fa92ac..8212bf68770680fa73e05388aa343d536d867d94 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -96,6 +96,11 @@ worker: worker: image: $CI_REGISTRY_IMAGE/worker:$TAG_SHA volumes: + backend-storage: + driver_opts: + type: none + o: bind + device: './storage/backend' backend-logs: driver_opts: type: none @@ -114,6 +119,7 @@ worker: before_script: - apt update && apt install -y --no-install-recommends curl + debhelper docker-compose docker.io dpkg-dev @@ -123,7 +129,7 @@ worker: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" - docker info - echo "$COMPOSE_OVERLAY" > docker-compose.override.yml - - mkdir -p logs/backend logs/frontend logs/worker + - mkdir -p logs/backend logs/frontend logs/worker storage/backend - | cat << EOF > ~/.oscrc [general] diff --git a/tests/01-build-dash b/tests/01-build-dash index 32f4bba3debe1395985943d9bf03999e9c8227a9..81045a781b86b21c67dfa0e318f799a4a10b14ed 100755 --- a/tests/01-build-dash +++ b/tests/01-build-dash @@ -10,13 +10,45 @@ cd "$dir" apt-get source --download-only dash +tarball=$(echo dash_*.orig.tar.*) +# pretend the tarball is signed +echo signature > $tarball.asc + +pkgver=${tarball%.orig.tar.*} +ver=${pkgver#dash_} + +# create fake extra tarball +mkdir vendor +tar -zcf dash_$ver.orig-vendor.tar.gz vendor/ + +# pretend this is a valid signature +echo signature > dash_$ver.orig-vendor.tar.gz.asc + +( + dpkg-source -x *dsc + cd dash-$ver + dpkg-buildpackage -d -S +) + osc dput bullseye-derivative *.dsc cd "$OLDPWD" -if ! wait-for-pkg bullseye-derivative dash main +if ! wait-for-pkg bullseye-derivative dash main x86_64 5 then # DoD didn't wake up, restart the backend and try again docker-compose exec -T backend supervisorctl restart all - wait-for-pkg bullseye-derivative dash main + wait-for-pkg bullseye-derivative dash main x86_64 fi + +wait-for-file -d storage/backend/repos/bullseye-derivative/main + +wait-for-file -f storage/backend/repos/bullseye-derivative/main/$tarball + +ls storage/backend/repos/bullseye-derivative/main -lR + +set -x + +test -f storage/backend/repos/bullseye-derivative/main/$tarball.asc +test -f storage/backend/repos/bullseye-derivative/main/dash_$ver.orig-vendor.tar.gz +test -f storage/backend/repos/bullseye-derivative/main/dash_$ver.orig-vendor.tar.gz.asc diff --git a/tests/scripts/wait-for-file b/tests/scripts/wait-for-file new file mode 100755 index 0000000000000000000000000000000000000000..228aa397cfdf28191eddb5f5bc5b6a5e8ceac59d --- /dev/null +++ b/tests/scripts/wait-for-file @@ -0,0 +1,23 @@ +#!/bin/sh + +iterations=30 +wait=30 + +echo "Checking for file presence: $@" + +for i in $(seq $iterations) +do + echo test "$@" + if test "$@" + then + echo "Condition reached." >&2 + break + fi + if [ $i -eq $iterations ] + then + echo "ERROR: file failed to appear within the time limit!" >&2 + exit 1 + fi + echo "Sleeping ${wait}s (iteration $i/$iterations)" + sleep $wait +done diff --git a/tests/scripts/wait-for-pkg b/tests/scripts/wait-for-pkg index 5105f6ab79d7f069e620265d544a63c2f9134f68..de06669c598933fca9c8b99a8af0ad70704271d5 100755 --- a/tests/scripts/wait-for-pkg +++ b/tests/scripts/wait-for-pkg @@ -4,7 +4,7 @@ project=$1 pkg=$2 prj_repo=${3:-main} prj_arch=${4:-x86_64} -iterations=30 +iterations=${5:-30} wait=30 echo "Checking build result: $project $pkg $prj_repo $prj_arch"