64 lines
2 KiB
YAML
64 lines
2 KiB
YAML
name: Deploy ESB
|
|
description: Deploy a service to an ESB docker host.
|
|
|
|
inputs:
|
|
docker-host:
|
|
description: Docker host to deploy to
|
|
required: true
|
|
maven-profile:
|
|
required: false
|
|
default: 'test'
|
|
description: 'Maven profile to use for the build'
|
|
maven-settings:
|
|
description: Secret containing the settings.xml content used for repository authentication
|
|
required: true
|
|
java-version:
|
|
description: Java version to use for the build
|
|
required: true
|
|
service:
|
|
description: Name of the service to deploy
|
|
required: true
|
|
stage:
|
|
description: Whether to deploy to stage environment (true) or production environment (false)
|
|
required: false
|
|
default: 'true'
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Create compose files
|
|
shell: bash
|
|
env:
|
|
BASE_COMPOSE: ${{ vars.DOCKER_COMPOSE }}
|
|
SU_COMPOSE: ${{ vars.DOCKER_COMPOSE_SU }}
|
|
run: |
|
|
printf '%s\n' "$BASE_COMPOSE" > compose.yml
|
|
printf '%s\n' "$SU_COMPOSE" > compose-su.yml
|
|
|
|
- uses: https://schmalz-git.git.onstackit.cloud/schmalz/shared-actions/maven-build@maven-build-v1
|
|
with:
|
|
phase: verify
|
|
maven-settings: ${{ inputs.maven-settings }}
|
|
verify-goals: clean package
|
|
java-version: ${{ inputs.java-version }}
|
|
maven-profile: ${{ inputs.maven-profile}}
|
|
|
|
- name: Compose stage
|
|
if: ${{ inputs.stage == 'true' }}
|
|
shell: bash
|
|
env:
|
|
SERVICE: ${{ inputs.service }}
|
|
run: |
|
|
echo "Deploying $SERVICE to stage environment"
|
|
export DOCKER_HOST="tcp://${{ inputs.docker-host }}:2375"
|
|
docker compose -f compose.yml -f compose-su.yml up -d --build --no-deps "$SERVICE"
|
|
|
|
- name: Compose prod
|
|
if: ${{ inputs.stage != 'true' }}
|
|
shell: bash
|
|
env:
|
|
SERVICE: ${{ inputs.service }}
|
|
run: |
|
|
echo "Deploying $SERVICE to production environment"
|
|
export DOCKER_HOST="tcp://${{ inputs.docker-host }}:2375"
|
|
docker compose -f compose.yml up -d --build --no-deps "$SERVICE"
|