Skip to content

Commit 9ee5a02

Browse files
committed
[not4debian] ci: run unit tests in docker
- run separate unit-test job - build docker - allow make docker-unit-tests in ci
1 parent c203075 commit 9ee5a02

2 files changed

Lines changed: 40 additions & 26 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,29 @@ env:
1717
DEBIAN_FRONTEND: noninteractive
1818

1919
jobs:
20+
unit-test:
21+
name: "Unit Tests (Debian 13)"
22+
runs-on: ubuntu-22.04
23+
continue-on-error: false
24+
timeout-minutes: 30
25+
steps:
26+
- name: "Checkout Repository"
27+
uses: actions/checkout@v4
28+
with:
29+
# fetch the whole repo for `git describe` to work
30+
fetch-depth: 0
31+
- name: "Docker Image"
32+
run: |
33+
make docker-image
34+
- name: "Unit Test"
35+
run: |
36+
make docker-unit-test
37+
- name: "Upload Code Coverage"
38+
uses: codecov/codecov-action@v2
39+
with:
40+
token: ${{ secrets.CODECOV_TOKEN }}
41+
files: unit.out
42+
2043
test:
2144
name: "Test (Ubuntu 22.04)"
2245
runs-on: ubuntu-22.04
@@ -63,18 +86,6 @@ jobs:
6386
with:
6487
directory: ${{ runner.temp }}
6588

66-
- name: "Run Unit Tests"
67-
env:
68-
RUN_LONG_TESTS: 'yes'
69-
AZURE_STORAGE_ENDPOINT: "http://127.0.0.1:10000/devstoreaccount1"
70-
AZURE_STORAGE_ACCOUNT: "devstoreaccount1"
71-
AZURE_STORAGE_ACCESS_KEY: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
72-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
73-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
74-
run: |
75-
sudo mkdir -p /srv ; sudo chown runner /srv
76-
COVERAGE_DIR=${{ runner.temp }} make test
77-
7889
- name: "Run Benchmark"
7990
run: |
8091
COVERAGE_DIR=${{ runner.temp }} make bench
@@ -94,7 +105,7 @@ jobs:
94105
- name: "Merge Code Coverage"
95106
run: |
96107
go install github.com/wadey/gocovmerge@v0.0.0-20160331181800-b5bfa59ec0ad
97-
~/go/bin/gocovmerge unit.out ${{ runner.temp }}/*.out > coverage.txt
108+
~/go/bin/gocovmerge ${{ runner.temp }}/*.out > coverage.txt
98109
99110
- name: "Upload Code Coverage"
100111
uses: codecov/codecov-action@v2
@@ -104,7 +115,8 @@ jobs:
104115

105116
ci-debian-build:
106117
name: "Build"
107-
needs: test
118+
needs:
119+
- test
108120
runs-on: ubuntu-latest
109121
strategy:
110122
fail-fast: false
@@ -226,7 +238,9 @@ jobs:
226238

227239
ci-binary-build:
228240
name: "Build"
229-
needs: test
241+
needs:
242+
- unit-test
243+
- test
230244
runs-on: ubuntu-latest
231245
strategy:
232246
matrix:

Makefile

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ GOOS=$(shell go env GOHOSTOS)
88
GOARCH=$(shell go env GOHOSTARCH)
99

1010
export PODMAN_USERNS = keep-id
11-
DOCKER_RUN = docker run --security-opt label=disable -it --user 0:0 --rm -v ${PWD}:/work/src
11+
DOCKER_RUN = docker run --security-opt label=disable --user 0:0 --rm -v ${PWD}:/work/src
1212

1313
# Setting TZ for certificates
1414
export TZ=UTC
@@ -186,16 +186,16 @@ docker-image-no-cache: ## Build aptly-dev docker image (no cache)
186186
@docker build --no-cache -f system/Dockerfile . -t aptly-dev
187187

188188
docker-build: ## Build aptly in docker container
189-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper build
189+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper build
190190

191191
docker-shell: ## Run aptly and other commands in docker container
192-
@$(DOCKER_RUN) -p 3142:3142 aptly-dev /work/src/system/docker-wrapper || true
192+
@$(DOCKER_RUN) -it -p 3142:3142 aptly-dev /work/src/system/docker-wrapper || true
193193

194194
docker-deb: ## Build debian packages in docker container
195-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
195+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
196196

197197
docker-unit-test: ## Run unit tests in docker container (add TEST=regex to specify which tests to run)
198-
$(DOCKER_RUN) -t --tmpfs /smallfs:rw,size=1m aptly-dev /work/src/system/docker-wrapper \
198+
$(DOCKER_RUN) -t --tmpfs /smallfs:rw,size=1m aptly-dev aptly-dev /work/src/system/docker-wrapper \
199199
azurite-start \
200200
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
201201
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
@@ -204,7 +204,7 @@ docker-unit-test: ## Run unit tests in docker container (add TEST=regex to spec
204204
azurite-stop
205205

206206
docker-system-test: ## Run system tests in docker container (add TEST=t04_mirror or TEST=UpdateMirror26Test to run only specific tests)
207-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper \
207+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper \
208208
azurite-start \
209209
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
210210
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
@@ -215,16 +215,16 @@ docker-system-test: ## Run system tests in docker container (add TEST=t04_mirro
215215
azurite-stop
216216

217217
docker-serve: ## Run development server (auto recompiling) on http://localhost:3142
218-
@$(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
218+
@$(DOCKER_RUN) -it -p 3142:3142 -v /tmp/cache-go-aptly:/var/lib/aptly/.cache/go-build aptly-dev /work/src/system/docker-wrapper serve || true
219219

220220
docker-lint: ## Run golangci-lint in docker container
221-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper lint
221+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper lint
222222

223223
docker-binaries: ## Build binary releases (FreeBSD, macOS, Linux generic) in docker container
224-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper binaries
224+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper binaries
225225

226226
docker-man: ## Create man page in docker container
227-
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper man
227+
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper man
228228

229229
mem.png: mem.dat mem.gp
230230
gnuplot mem.gp
@@ -241,4 +241,4 @@ clean: ## remove local build and module cache
241241
rm -f unit.out aptly.test VERSION docs/docs.go docs/swagger.json docs/swagger.yaml docs/swagger.conf
242242
find system/ -type d -name __pycache__ -exec rm -rf {} \; 2>/dev/null || true
243243

244-
.PHONY: help man prepare swagger version binaries build docker-release docker-system-test docker-unit-test docker-lint docker-build docker-image docker-man docker-shell docker-serve clean releasetype dpkg serve flake8
244+
.PHONY: help man prepare swagger version binaries build docker-release docker-system-tests docker-unit-test docker-lint docker-build docker-image docker-man docker-shell docker-serve clean releasetype dpkg serve flake8

0 commit comments

Comments
 (0)