Skip to content

Add external compose for clustering #135

Add external compose for clustering

Add external compose for clustering #135

Workflow file for this run

name: build-latest
on:
workflow_dispatch:
pull_request:
branches:
- develop
push:
branches:
- develop
jobs:
build-activemq-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build image for testing activeqm
id: docker_build_testing_image_activeqm
uses: docker/build-push-action@v5
with:
context: ./clustering/activemq-docker
file: Dockerfile
push: false
load: true
tags: kartoza/activemq-docker:manual-build
outputs: type=docker,dest=/tmp/activemq.tar
cache-from: |
type=gha,scope=test
type=gha,scope=prod
cache-to: type=gha,scope=test
target: activemq-prod
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: kartoza-activemq
path: /tmp/activemq.tar
build-docker-image:
runs-on: ubuntu-latest
strategy:
matrix:
geoserverMajorVersion:
- 2
imageVersion:
- image: 9.0.73-jdk11-temurin-focal
javaHome: /opt/java/openjdk
geoserverMinorVersion:
- minor: 24
patch: 0
downloadAllStableExtensions:
- 1
downloadAllCommunityExtensions:
- 1
stablePluginBaseURL:
- https://sourceforge.net/projects/geoserver/files/GeoServer
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build image for testing
id: docker_build_testing_image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: false
load: true
tags: kartoza/geoserver:manual-build
outputs: type=docker,dest=/tmp/geoserver.tar
build-args: |
IMAGE_VERSION=${{ matrix.imageVersion.image }}
JAVA_HOME=${{ matrix.imageVersion.javaHome }}
GS_VERSION=${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}
WAR_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}/geoserver-${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}-war.zip
DOWNLOAD_ALL_STABLE_EXTENSIONS=${{ matrix.downloadAllStableExtensions }}
DOWNLOAD_ALL_COMMUNITY_EXTENSIONS=${{ matrix.downloadAllCommunityExtensions }}
STABLE_PLUGIN_BASE_URL=${{ matrix.stablePluginBaseURL }}
cache-from: |
type=gha,scope=test
type=gha,scope=prod
cache-to: type=gha,scope=test
target: geoserver-test
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: kartoza-geoserver
path: /tmp/geoserver.tar
run-scenario-tests:
runs-on: ubuntu-latest
needs: [ build-docker-image, build-activemq-docker-image]
strategy:
matrix:
scenario:
- gwc
- login
- stores
- context
- disk-quota
- clustering
steps:
- uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: kartoza-geoserver
path: /tmp
- name: Load image
run: |
docker load --input /tmp/geoserver.tar
docker load --input /tmp/activemq.tar
- name: Run scenario test ${{ matrix.scenario }}
working-directory: scenario_tests/${{ matrix.scenario }}
env:
COMPOSE_INTERACTIVE_NO_CLI: 1
PRINT_TEST_LOGS: 1
run: |
# Use the built Docker image to run scenario tests
bash ./test.sh
push-internal-pr-images:
if: github.event_name == 'pull_request' && github.event.pull_request.base.repo.url == github.event.pull_request.head.repo.url
runs-on: ubuntu-latest
needs: [run-scenario-tests]
strategy:
matrix:
geoserverMajorVersion:
- 2
imageVersion:
- image: 9.0.73-jdk11-temurin-focal
javaHome: /opt/java/openjdk
geoserverMinorVersion:
- minor: 24
patch: 0
downloadAllStableExtensions:
- 1
downloadAllCommunityExtensions:
- 1
stablePluginBaseURL:
# empty because it often changes, so it's better
# to use the default one described in the Dockerfile
# to make it consistent. How-ever we keep this in GH Action
# to make it easy to pass overrides in the future.
- https://sourceforge.net/projects/geoserver/files/GeoServer
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v4
with:
images: ${{ secrets.DOCKERHUB_REPO}}/geoserver
tags: |
type=semver,pattern=\d.\d.\d
type=ref,event=branch
- name: Build image for testing
id: docker_build_testing_image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: false
tags: |
kartoza/geoserver:manual-build
build-args: |
IMAGE_VERSION=${{ matrix.imageVersion.image }}
JAVA_HOME=${{ matrix.imageVersion.javaHome }}
GS_VERSION=${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}
WAR_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}/geoserver-${{ matrix.geoserverMajorVersion }}.${{ matrix.geoserverMinorVersion.minor }}.${{ matrix.geoserverMinorVersion.patch }}-war.zip
DOWNLOAD_ALL_STABLE_EXTENSIONS=${{ matrix.downloadAllStableExtensions }}
DOWNLOAD_ALL_COMMUNITY_EXTENSIONS=${{ matrix.downloadAllCommunityExtensions }}
STABLE_PLUGIN_BASE_URL=${{ matrix.stablePluginBaseURL }}
cache-from: |
type=gha,scope=test
type=gha,scope=prod
cache-to: type=gha,scope=test
target: geoserver-test