92 lines
3.2 KiB
YAML
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 }}
|