@@ -7,11 +7,23 @@ COVERAGE_DIR?=$(shell mktemp -d)
77GOOS =$(shell go env GOHOSTOS)
88GOARCH =$(shell go env GOHOSTARCH)
99
10+ export PODMAN_USERNS = keep-id
11+ DOCKER_RUN = docker run --security-opt label=disable -it --user 0:0 --rm -v ${PWD}:/work/src
12+
1013# Setting TZ for certificates
1114export TZ =UTC
1215# Unit Tests and some sysmte tests rely on expired certificates, turn back the time
1316export TEST_FAKETIME := 2025-01-02 03:04:05
1417
18+ # run with 'COVERAGE_SKIP=1' to skip coverage checks during system tests
19+ ifeq ($(COVERAGE_SKIP ) ,1)
20+ COVERAGE_ARG_BUILD :=
21+ COVERAGE_ARG_TEST := --coverage-skip
22+ else
23+ COVERAGE_ARG_BUILD := -coverpkg="./..."
24+ COVERAGE_ARG_TEST := --coverage-dir $(COVERAGE_DIR )
25+ endif
26+
1527# export CAPUTRE=1 for regenrating test gold files
1628ifeq ($(CAPTURE ) ,1)
1729CAPTURE_ARG := --capture
@@ -103,13 +115,13 @@ test: prepare swagger etcd-install ## Run unit tests (add TEST=regex to specify
103115
104116system-test : prepare swagger etcd-install # # Run system tests
105117 # build coverage binary
106- go test -v -coverpkg= " ./... " -c -tags testruncli
118+ go test -v $( COVERAGE_ARG_BUILD ) -c -tags testruncli
107119 # Download fixture-db, fixture-pool, etcd.db
108120 if [ ! -e ~ /aptly-fixture-db ]; then git clone https://github.com/aptly-dev/aptly-fixture-db.git ~ /aptly-fixture-db/; fi
109121 if [ ! -e ~ /aptly-fixture-pool ]; then git clone https://github.com/aptly-dev/aptly-fixture-pool.git ~ /aptly-fixture-pool/; fi
110122 test -f ~ /etcd.db || (curl -o ~ /etcd.db.xz http://repo.aptly.info/system-tests/etcd.db.xz && xz -d ~ /etcd.db.xz)
111123 # Run system tests
112- PATH=$(BINPATH ) /:$(PATH ) FORCE_COLOR=1 $(PYTHON ) system/run.py --long --coverage-dir $( COVERAGE_DIR ) $(CAPTURE_ARG ) $(TEST )
124+ PATH=$(BINPATH ) /:$(PATH ) FORCE_COLOR=1 $(PYTHON ) system/run.py --long $( COVERAGE_ARG_TEST ) $(CAPTURE_ARG ) $(TEST )
113125
114126bench :
115127 @echo " \e[33m\e[1mRunning benchmark ...\e[0m"
@@ -173,16 +185,16 @@ docker-image-no-cache: ## Build aptly-dev docker image (no cache)
173185 @docker build --no-cache -f system/Dockerfile . -t aptly-dev
174186
175187docker-build : # # Build aptly in docker container
176- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper build
188+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper build
177189
178190docker-shell : # # Run aptly and other commands in docker container
179- @docker run -it --rm - p 3142:3142 -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper || true
191+ @$( DOCKER_RUN ) - p 3142:3142 aptly-dev /work/src/system/docker-wrapper || true
180192
181193docker-deb : # # Build debian packages in docker container
182- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
194+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
183195
184196docker-unit-test : # # Run unit tests in docker container (add TEST=regex to specify which tests to run)
185- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper \
197+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper \
186198 azurite-start \
187199 AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
188200 AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
@@ -191,27 +203,27 @@ docker-unit-test: ## Run unit tests in docker container (add TEST=regex to spec
191203 azurite-stop
192204
193205docker-system-test : # # Run system tests in docker container (add TEST=t04_mirror or TEST=UpdateMirror26Test to run only specific tests)
194- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper \
206+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper \
195207 azurite-start \
196208 AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
197209 AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
198210 AZURE_STORAGE_ACCESS_KEY=" Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" \
199211 AWS_ACCESS_KEY_ID=$(AWS_ACCESS_KEY_ID ) \
200212 AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY ) \
201- system-test TEST=$(TEST ) \
213+ system-test TEST=$(TEST ) CAPTURE= $( CAPTURE ) COVERAGE_SKIP= $( COVERAGE_SKIP ) \
202214 azurite-stop
203215
204216docker-serve : # # Run development server (auto recompiling) on http://localhost:3142
205- @docker run -it --rm - p 3142:3142 -v ${PWD} :/work/src -v /tmp/cache-go-aptly:/var/lib/aptly/.cache/go-build aptly-dev /work/src/system/docker-wrapper serve || true
217+ @$( DOCKER_RUN ) - p 3142:3142 -v /tmp/cache-go-aptly:/var/lib/aptly/.cache/go-build aptly-dev /work/src/system/docker-wrapper serve || true
206218
207219docker-lint : # # Run golangci-lint in docker container
208- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper lint
220+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper lint
209221
210222docker-binaries : # # Build binary releases (FreeBSD, macOS, Linux generic) in docker container
211- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper binaries
223+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper binaries
212224
213225docker-man : # # Create man page in docker container
214- @docker run -it --rm -v ${PWD} :/work/src aptly-dev /work/src/system/docker-wrapper man
226+ @$( DOCKER_RUN ) aptly-dev /work/src/system/docker-wrapper man
215227
216228mem.png : mem.dat mem.gp
217229 gnuplot mem.gp
0 commit comments