mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-06-02 04:50:49 +00:00
ci: run unit tests in docker
- run separate unit-test job - build docker - allow make docker-unit-tests in ci
This commit is contained in:
+29
-15
@@ -17,6 +17,29 @@ env:
|
|||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
unit-test:
|
||||||
|
name: "Unit Tests (Debian 13)"
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
continue-on-error: false
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- name: "Checkout Repository"
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
# fetch the whole repo for `git describe` to work
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: "Docker Image"
|
||||||
|
run: |
|
||||||
|
make docker-image
|
||||||
|
- name: "Unit Test"
|
||||||
|
run: |
|
||||||
|
make docker-unit-tests
|
||||||
|
- name: "Upload Code Coverage"
|
||||||
|
uses: codecov/codecov-action@v2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
files: unit.out
|
||||||
|
|
||||||
test:
|
test:
|
||||||
name: "Test (Ubuntu 22.04)"
|
name: "Test (Ubuntu 22.04)"
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@@ -63,18 +86,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
directory: ${{ runner.temp }}
|
directory: ${{ runner.temp }}
|
||||||
|
|
||||||
- name: "Run Unit Tests"
|
|
||||||
env:
|
|
||||||
RUN_LONG_TESTS: 'yes'
|
|
||||||
AZURE_STORAGE_ENDPOINT: "http://127.0.0.1:10000/devstoreaccount1"
|
|
||||||
AZURE_STORAGE_ACCOUNT: "devstoreaccount1"
|
|
||||||
AZURE_STORAGE_ACCESS_KEY: "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
run: |
|
|
||||||
sudo mkdir -p /srv ; sudo chown runner /srv
|
|
||||||
COVERAGE_DIR=${{ runner.temp }} make test
|
|
||||||
|
|
||||||
- name: "Run Benchmark"
|
- name: "Run Benchmark"
|
||||||
run: |
|
run: |
|
||||||
COVERAGE_DIR=${{ runner.temp }} make bench
|
COVERAGE_DIR=${{ runner.temp }} make bench
|
||||||
@@ -94,7 +105,7 @@ jobs:
|
|||||||
- name: "Merge Code Coverage"
|
- name: "Merge Code Coverage"
|
||||||
run: |
|
run: |
|
||||||
go install github.com/wadey/gocovmerge@v0.0.0-20160331181800-b5bfa59ec0ad
|
go install github.com/wadey/gocovmerge@v0.0.0-20160331181800-b5bfa59ec0ad
|
||||||
~/go/bin/gocovmerge unit.out ${{ runner.temp }}/*.out > coverage.txt
|
~/go/bin/gocovmerge ${{ runner.temp }}/*.out > coverage.txt
|
||||||
|
|
||||||
- name: "Upload Code Coverage"
|
- name: "Upload Code Coverage"
|
||||||
uses: codecov/codecov-action@v2
|
uses: codecov/codecov-action@v2
|
||||||
@@ -104,7 +115,8 @@ jobs:
|
|||||||
|
|
||||||
ci-debian-build:
|
ci-debian-build:
|
||||||
name: "Build"
|
name: "Build"
|
||||||
needs: test
|
needs:
|
||||||
|
- test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -224,7 +236,9 @@ jobs:
|
|||||||
|
|
||||||
ci-binary-build:
|
ci-binary-build:
|
||||||
name: "Build"
|
name: "Build"
|
||||||
needs: test
|
needs:
|
||||||
|
- unit-test
|
||||||
|
- test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ GOOS=$(shell go env GOHOSTOS)
|
|||||||
GOARCH=$(shell go env GOHOSTARCH)
|
GOARCH=$(shell go env GOHOSTARCH)
|
||||||
|
|
||||||
export PODMAN_USERNS = keep-id
|
export PODMAN_USERNS = keep-id
|
||||||
DOCKER_RUN = docker run --security-opt label=disable -it --user 0:0 --rm -v ${PWD}:/work/src
|
DOCKER_RUN = docker run --security-opt label=disable --user 0:0 --rm -v ${PWD}:/work/src
|
||||||
|
|
||||||
# Setting TZ for certificates
|
# Setting TZ for certificates
|
||||||
export TZ=UTC
|
export TZ=UTC
|
||||||
@@ -185,16 +185,16 @@ docker-image-no-cache: ## Build aptly-dev docker image (no cache)
|
|||||||
@docker build --no-cache -f system/Dockerfile . -t aptly-dev
|
@docker build --no-cache -f system/Dockerfile . -t aptly-dev
|
||||||
|
|
||||||
docker-build: ## Build aptly in docker container
|
docker-build: ## Build aptly in docker container
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper build
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper build
|
||||||
|
|
||||||
docker-shell: ## Run aptly and other commands in docker container
|
docker-shell: ## Run aptly and other commands in docker container
|
||||||
@$(DOCKER_RUN) -p 3142:3142 aptly-dev /work/src/system/docker-wrapper || true
|
@$(DOCKER_RUN) -it -p 3142:3142 aptly-dev /work/src/system/docker-wrapper || true
|
||||||
|
|
||||||
docker-deb: ## Build debian packages in docker container
|
docker-deb: ## Build debian packages in docker container
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper dpkg DEBARCH=amd64
|
||||||
|
|
||||||
docker-unit-test: ## Run unit tests in docker container (add TEST=regex to specify which tests to run)
|
docker-unit-tests: ## Run unit tests in docker container (add TEST=regex to specify which tests to run)
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper \
|
$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper \
|
||||||
azurite-start \
|
azurite-start \
|
||||||
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
||||||
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
|
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
|
||||||
@@ -203,7 +203,7 @@ docker-unit-test: ## Run unit tests in docker container (add TEST=regex to spec
|
|||||||
azurite-stop
|
azurite-stop
|
||||||
|
|
||||||
docker-system-test: ## Run system tests in docker container (add TEST=t04_mirror or TEST=UpdateMirror26Test to run only specific tests)
|
docker-system-test: ## Run system tests in docker container (add TEST=t04_mirror or TEST=UpdateMirror26Test to run only specific tests)
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper \
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper \
|
||||||
azurite-start \
|
azurite-start \
|
||||||
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
AZURE_STORAGE_ENDPOINT=http://127.0.0.1:10000/devstoreaccount1 \
|
||||||
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
|
AZURE_STORAGE_ACCOUNT=devstoreaccount1 \
|
||||||
@@ -214,16 +214,16 @@ docker-system-test: ## Run system tests in docker container (add TEST=t04_mirro
|
|||||||
azurite-stop
|
azurite-stop
|
||||||
|
|
||||||
docker-serve: ## Run development server (auto recompiling) on http://localhost:3142
|
docker-serve: ## Run development server (auto recompiling) on http://localhost:3142
|
||||||
@$(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
|
@$(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
|
||||||
|
|
||||||
docker-lint: ## Run golangci-lint in docker container
|
docker-lint: ## Run golangci-lint in docker container
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper lint
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper lint
|
||||||
|
|
||||||
docker-binaries: ## Build binary releases (FreeBSD, macOS, Linux generic) in docker container
|
docker-binaries: ## Build binary releases (FreeBSD, macOS, Linux generic) in docker container
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper binaries
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper binaries
|
||||||
|
|
||||||
docker-man: ## Create man page in docker container
|
docker-man: ## Create man page in docker container
|
||||||
@$(DOCKER_RUN) aptly-dev /work/src/system/docker-wrapper man
|
@$(DOCKER_RUN) -t aptly-dev /work/src/system/docker-wrapper man
|
||||||
|
|
||||||
mem.png: mem.dat mem.gp
|
mem.png: mem.dat mem.gp
|
||||||
gnuplot mem.gp
|
gnuplot mem.gp
|
||||||
@@ -240,4 +240,4 @@ clean: ## remove local build and module cache
|
|||||||
rm -f unit.out aptly.test VERSION docs/docs.go docs/swagger.json docs/swagger.yaml docs/swagger.conf
|
rm -f unit.out aptly.test VERSION docs/docs.go docs/swagger.json docs/swagger.yaml docs/swagger.conf
|
||||||
find system/ -type d -name __pycache__ -exec rm -rf {} \; 2>/dev/null || true
|
find system/ -type d -name __pycache__ -exec rm -rf {} \; 2>/dev/null || true
|
||||||
|
|
||||||
.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
|
.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
|
||||||
|
|||||||
Reference in New Issue
Block a user