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 }}