You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.5 KiB
88 lines
3.5 KiB
name: Build |
|
description: 'Builds the project, optionally publishing it to a local deployment repository' |
|
inputs: |
|
commercial-release-repository-url: |
|
description: 'URL of the release repository' |
|
required: false |
|
commercial-repository-password: |
|
description: 'Password for authentication with the commercial repository' |
|
required: false |
|
commercial-repository-username: |
|
description: 'Username for authentication with the commercial repository' |
|
required: false |
|
commercial-snapshot-repository-url: |
|
description: 'URL of the snapshot repository' |
|
required: false |
|
develocity-access-key: |
|
description: 'Access key for authentication with ge.spring.io' |
|
required: false |
|
gradle-cache-read-only: |
|
description: 'Whether Gradle''s cache should be read only' |
|
required: false |
|
default: 'true' |
|
java-distribution: |
|
description: 'Java distribution to use' |
|
required: false |
|
default: 'liberica' |
|
java-early-access: |
|
description: 'Whether the Java version is in early access' |
|
required: false |
|
default: 'false' |
|
java-toolchain: |
|
description: 'Whether a Java toolchain should be used' |
|
required: false |
|
default: 'false' |
|
java-version: |
|
description: 'Java version to compile and test with' |
|
required: false |
|
default: '17' |
|
publish: |
|
description: 'Whether to publish artifacts ready for deployment to Artifactory' |
|
required: false |
|
default: 'false' |
|
outputs: |
|
build-scan-url: |
|
description: 'URL, if any, of the build scan produced by the build' |
|
value: ${{ (inputs.publish == 'true' && steps.publish.outputs.build-scan-url) || steps.build.outputs.build-scan-url }} |
|
version: |
|
description: 'Version that was built' |
|
value: ${{ steps.read-version.outputs.version }} |
|
runs: |
|
using: composite |
|
steps: |
|
- name: Prepare Gradle Build |
|
uses: ./.github/actions/prepare-gradle-build |
|
with: |
|
cache-read-only: ${{ inputs.gradle-cache-read-only }} |
|
develocity-access-key: ${{ inputs.develocity-access-key }} |
|
java-distribution: ${{ inputs.java-distribution }} |
|
java-early-access: ${{ inputs.java-early-access }} |
|
java-toolchain: ${{ inputs.java-toolchain }} |
|
java-version: ${{ inputs.java-version }} |
|
- name: Build |
|
id: build |
|
if: ${{ inputs.publish == 'false' }} |
|
shell: bash |
|
env: |
|
COMMERCIAL_RELEASE_REPO_URL: ${{ inputs.commercial-release-repository-url }} |
|
COMMERCIAL_REPO_PASSWORD: ${{ inputs.commercial-repository-password }} |
|
COMMERCIAL_REPO_USERNAME: ${{ inputs.commercial-repository-username }} |
|
COMMERCIAL_SNAPSHOT_REPO_URL: ${{ inputs.commercial-snapshot-repository-url }} |
|
run: ./gradlew build |
|
- name: Publish |
|
id: publish |
|
if: ${{ inputs.publish == 'true' }} |
|
shell: bash |
|
env: |
|
COMMERCIAL_RELEASE_REPO_URL: ${{ inputs.commercial-release-repository-url }} |
|
COMMERCIAL_REPO_PASSWORD: ${{ inputs.commercial-repository-password }} |
|
COMMERCIAL_REPO_USERNAME: ${{ inputs.commercial-repository-username }} |
|
COMMERCIAL_SNAPSHOT_REPO_URL: ${{ inputs.commercial-snapshot-repository-url }} |
|
run: ./gradlew -PdeploymentRepository=$(pwd)/deployment-repository ${{ !startsWith(github.event.head_commit.message, 'Next development version') && 'build' || '' }} publishAllPublicationsToDeploymentRepository |
|
- name: Read Version From gradle.properties |
|
id: read-version |
|
shell: bash |
|
run: | |
|
version=$(sed -n 's/version=\(.*\)/\1/p' gradle.properties) |
|
echo "Version is $version" |
|
echo "version=$version" >> $GITHUB_OUTPUT
|
|
|