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"