Files

92 lines
3.2 KiB
YAML

name: 'Build Sample App'
description: 'Builds a sample app and optionally publishes to Artifactory and pushes to a Docker registry'
inputs:
app-dir:
description: 'relative path to the app directory'
required: true
mvn-build-commands:
description: 'commands passed to \"mvnw" to build the app'
required: false
default: '-B clean verify'
artifactory-publish:
description: 'whether or not to publish to artifactory'
required: false
default: 'false'
jf-artifactory-spring:
description: 'encoded JFrog server id configuration'
required: false
jf-mvn-build-commands:
description: 'commands passed to \"jfrog rt mvn\" to publish the app'
required: false
default: '-B clean install -DskipTests'
artifactory-repo-deploy-snapshots:
description: 'which Artifactory repo to publish snapshot versions to (the \"--repo-deploy-snapshots\" arg passed to \"jfrog rt mvn\")'
required: false
default: 'libs-snapshot-local'
artifactory-repo-deploy-releases:
description: 'which Artifactory repo to publish non-snapshot versions to (the \"--repo-deploy-releases\" arg passed to \"jfrog rt mvn\")'
required: false
default: 'libs-release-local'
docker-push:
description: 'whether or not to push docker image to docker hub'
required: false
default: 'false'
docker-registry:
description: 'docker registry'
required: false
docker-username:
description: 'docker username'
required: false
docker-password:
description: 'docker password'
required: false
docker-images:
description: 'csv of docker images to push'
required: false
docker-images-override:
description: 'csv of docker image tags to use when pushing (parallel array to docker-images)'
required: false
java-version:
description: 'Java Version. Default is 8'
required: false
default: '8'
runs:
using: "composite"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v3
with:
distribution: 'liberica'
java-version: '${{ inputs.java-version }}'
cache: maven
- uses: jvalkeal/setup-maven@v1
with:
maven-version: 3.8.8
maven-mirror: 'https://dlcdn.apache.org/maven/maven-3/'
- name: Maven build
shell: bash
run: ./mvnw ${{ inputs.mvn-build-commands }}
working-directory: ${{ inputs.app-dir }}
- uses: ./.github/actions/build-sample-app/artifactory-publish
if: ${{ inputs.artifactory-publish == 'true' }}
with:
app-dir: ${{ inputs.app-dir }}
jf-artifactory-spring: ${{ inputs.jf-artifactory-spring }}
jf-mvn-build-commands: ${{ inputs.jf-mvn-build-commands }}
artifactory-repo-deploy-snapshots: ${{ inputs.artifactory-repo-deploy-snapshots }}
artifactory-repo-deploy-releases: ${{ inputs.artifactory-repo-deploy-releases }}
- uses: ./.github/actions/build-sample-app/docker-push
if: ${{ inputs.docker-push == 'true' }}
with:
app-dir: ${{ inputs.app-dir }}
docker-registry: ${{ inputs.docker-registry }}
docker-username: ${{ inputs.docker-username }}
docker-password: ${{ inputs.docker-password }}
docker-images: ${{ inputs.docker-images }}
docker-images-override: ${{ inputs.docker-images-override }}