mirror of
https://github.com/geoserver/geoserver-cloud.git
synced 2024-10-23 09:24:15 +08:00
Split acceptance test execution into start and run phases
Regularly, you'd keep on running `make acceptance-tests-[datadir|pgconfig|jdbcconfig]` as usual. For the github action it's nicer to have the docker compo start and run in separte steps.
This commit is contained in:
parent
a3880c4989
commit
d9394b91ef
36
.github/workflows/pull-request.yaml
vendored
36
.github/workflows/pull-request.yaml
vendored
@ -50,7 +50,9 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: application-jars
|
||||
path: ./**/target/*-bin.jar
|
||||
path: |
|
||||
./**/target/*-bin.jar
|
||||
./**/target/config/
|
||||
retention-days: 1
|
||||
compression-level: 0 # no compression
|
||||
|
||||
@ -63,18 +65,13 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
catalog: [ 'datadir', 'pgconfig', 'jdbcconfig' ]
|
||||
catalog: [ 'datadir' ]
|
||||
#catalog: [ 'datadir', 'pgconfig', 'jdbcconfig' ]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '21'
|
||||
cache: 'maven'
|
||||
|
||||
- name: Download application jar files
|
||||
uses: actions/download-artifact@v4
|
||||
@ -82,28 +79,33 @@ jobs:
|
||||
name: application-jars
|
||||
path: .
|
||||
|
||||
- name: Copy config directory
|
||||
# during the validate phase, the config/ dir is copied to each app's target/config
|
||||
run: ./mvnw validate -f src/apps -ntp -T1C
|
||||
|
||||
- name: Build images
|
||||
# REPACKAGE=false avoids to re-package the apps during build-image
|
||||
run: REPACKAGE=false make build-image
|
||||
|
||||
- name: Build acceptance tests docker image
|
||||
run: |
|
||||
make build-acceptance
|
||||
|
||||
- name: Install CI dependencies
|
||||
id: install-ci
|
||||
id: installci
|
||||
run: python3 -m pip install --user --requirement=ci/requirements.txt
|
||||
|
||||
- name: Run acceptance tests ${{ matrix.catalog }}
|
||||
- name: Launch ${{ matrix.catalog }} acceptance tests docker composition
|
||||
id: start
|
||||
run: |
|
||||
make start-acceptance-tests-${{ matrix.catalog }}
|
||||
|
||||
- name: Run ${{ matrix.catalog }} acceptance tests
|
||||
id: acceptance
|
||||
run: |
|
||||
make acceptance-tests-${{ matrix.catalog }}
|
||||
make run-acceptance-tests-${{ matrix.catalog }}
|
||||
|
||||
- name: Print docker compose logs
|
||||
if: steps.build.install-ci == 'success'
|
||||
if: always()
|
||||
run: (cd compose && c2cciutils-docker-logs)
|
||||
|
||||
- name: Cleanup acceptance tests
|
||||
if: steps.build.acceptance != 'skipped'
|
||||
if: always()
|
||||
run: |
|
||||
make clean-acceptance-tests-${{ matrix.catalog }}
|
||||
|
50
Makefile
50
Makefile
@ -26,11 +26,11 @@ install:
|
||||
|
||||
.PHONY: package
|
||||
package:
|
||||
./mvnw clean package -DskipTests -ntp -U -T1C
|
||||
./mvnw clean package -Dfmt.skip -DskipTests -ntp -U -T1C
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
./mvnw verify -ntp -T1C
|
||||
./mvnw verify -Dfmt.skip -ntp -T1C
|
||||
|
||||
.PHONY: build-image
|
||||
build-image: build-base-images build-image-infrastructure build-image-geoserver
|
||||
@ -136,19 +136,16 @@ verify-image:
|
||||
build-acceptance:
|
||||
docker build --tag=acceptance:$(TAG) acceptance_tests
|
||||
|
||||
.PHONY: acceptance-tests-pgconfig
|
||||
acceptance-tests-pgconfig: build-acceptance
|
||||
(cd compose/ && ./acceptance_pgconfig up -d)
|
||||
(cd compose/ && ./acceptance_pgconfig exec -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: clean-acceptance-tests-pgconfig
|
||||
clean-acceptance-tests-pgconfig:
|
||||
(cd compose/ && ./acceptance_pgconfig down -v)
|
||||
|
||||
.PHONY: acceptance-tests-datadir
|
||||
acceptance-tests-datadir: build-acceptance
|
||||
acceptance-tests-datadir: build-acceptance start-acceptance-tests-datadir run-acceptance-tests-datadir
|
||||
|
||||
.PHONY: start-acceptance-tests-datadir
|
||||
start-acceptance-tests-datadir:
|
||||
(cd compose/ && ./acceptance_datadir up -d)
|
||||
(cd compose/ && ./acceptance_datadir exec -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: run-acceptance-tests-datadir
|
||||
run-acceptance-tests-datadir:
|
||||
(cd compose/ && ./acceptance_datadir run --rm -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: clean-acceptance-tests-datadir
|
||||
clean-acceptance-tests-datadir:
|
||||
@ -156,10 +153,33 @@ clean-acceptance-tests-datadir:
|
||||
rm -rf compose/catalog-datadir/*
|
||||
touch compose/catalog-datadir/.keep
|
||||
|
||||
.PHONY: acceptance-tests-pgconfig
|
||||
acceptance-tests-pgconfig: build-acceptance start-acceptance-tests-pgconfig run-acceptance-tests-pgconfig
|
||||
(cd compose/ && ./acceptance_pgconfig up -d)
|
||||
(cd compose/ && ./acceptance_pgconfig exec -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: start-acceptance-tests-pgconfig
|
||||
start-acceptance-tests-pgconfig:
|
||||
(cd compose/ && ./acceptance_pgconfig up -d)
|
||||
|
||||
.PHONY: run-acceptance-tests-pgconfig
|
||||
run-acceptance-tests-pgconfig:
|
||||
(cd compose/ && ./acceptance_pgconfig run --rm -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: clean-acceptance-tests-pgconfig
|
||||
clean-acceptance-tests-pgconfig:
|
||||
(cd compose/ && ./acceptance_pgconfig down -v)
|
||||
|
||||
.PHONY: acceptance-tests-jdbcconfig
|
||||
acceptance-tests-jdbcconfig: build-acceptance
|
||||
acceptance-tests-jdbcconfig: build-acceptance start-acceptance-tests-jdbcconfig run-acceptance-tests-jdbcconfig
|
||||
|
||||
.PHONY: start-acceptance-tests-jdbcconfig
|
||||
start-acceptance-tests-jdbcconfig:
|
||||
(cd compose/ && ./acceptance_jdbcconfig up -d)
|
||||
(cd compose/ && ./acceptance_jdbcconfig exec -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: run-acceptance-tests-jdbcconfig
|
||||
run-acceptance-tests-jdbcconfig:
|
||||
(cd compose/ && ./acceptance_jdbcconfig run --rm -T acceptance bash -c 'until [ -f /tmp/healthcheck ]; do echo "Waiting for /tmp/healthcheck to be available..."; sleep 5; done && pytest . -vvv --color=yes')
|
||||
|
||||
.PHONY: clean-acceptance-tests-jdbcconfig
|
||||
clean-acceptance-tests-jdbcconfig:
|
||||
|
@ -13,6 +13,13 @@ services:
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1.0"
|
||||
memory: 512M
|
||||
|
||||
acceptance:
|
||||
image: acceptance:${TAG}
|
||||
@ -39,6 +46,13 @@ services:
|
||||
condition: service_healthy
|
||||
acl:
|
||||
condition: service_started
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 0
|
||||
resources:
|
||||
limits:
|
||||
cpus: "1.0"
|
||||
memory: 512M
|
||||
|
||||
# For github CI
|
||||
acl:
|
||||
|
Loading…
Reference in New Issue
Block a user