PR test 7 - master prerelease #40
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Java CI with Maven | |
on: | |
push: #triggers on tag push event | |
tags: | |
- '**' | |
pull_request: #triggers on PR merge event into develop branch | |
types: | |
- closed | |
jobs: | |
setup: # defines the variables used across all job's steps and output variables to be used across jobs. | |
runs-on: ubuntu-latest | |
env: # environment variables used across the setup job | |
MVN_BUILD_FLAGS: "-Dmaven.repo.local=$GITHUB_WORKSPACE/.m2" | |
MVN_DEPLOY_FLAGS: "-s $GITHUB_WORKSPACE/settings.xml" | |
GEN_DEPLOY_POM_SCRIPT: "$GITHUB_WORKSPACE/rosetta-source/src/main/resources/build-resources/create-deploy-pom.sh" | |
GEN_DEPLOY_POM_PY: "$GITHUB_WORKSPACE/rosetta-source/src/main/resources/build-resources/create-deploy-pom.py" | |
outputs: | |
MVN_BUILD_FLAGS: ${{env.MVN_BUILD_FLAGS}} | |
MVN_DEPLOY_FLAGS: ${{env.MVN_DEPLOY_FLAGS}} | |
RELEASE_NAME: ${{steps.release_props.outputs.RELEASE_NAME}} | |
RELEASE_MAVEN_BUILD_PROFILES: ${{steps.release_props.outputs.MAVEN_BUILD_PROFILES}} | |
RELEASE_MVN_DEPLOY_FILE_FLAGS: ${{steps.release_props.outputs.MVN_DEPLOY_FILE_FLAGS}} | |
SNAPSHOT_NAME: ${{steps.snapshot_props.outputs.RELEASE_NAME}} | |
SNAPSHOT_MAVEN_BUILD_PROFILES: ${{steps.snapshot_props.outputs.MAVEN_BUILD_PROFILES}} | |
SNAPSHOT_MVN_DEPLOY_FILE_FLAGS: ${{steps.snapshot_props.outputs.MVN_DEPLOY_FILE_FLAGS}} | |
steps: | |
- name: main_clone | |
uses: actions/checkout@v4 | |
- name: ReleaseProperties | |
id: release_props | |
if: startsWith(github.ref, 'refs/tags') | |
shell: bash | |
run: | | |
echo "RELEASE_NAME=${{env.RELEASE_NAME}}" >> "$GITHUB_OUTPUT" | |
echo "RELEASE_MAVEN_BUILD_PROFILES=${{env.MAVEN_BUILD_PROFILES}}" >> "$GITHUB_OUTPUT" | |
echo "RELEASE_MVN_DEPLOY_FILE_FLAGS=${{env.MVN_DEPLOY_FILE_FLAGS}}" >> "$GITHUB_OUTPUT" | |
env: | |
RELEASE_NAME: "${{github.event.release.tag_name}}" | |
MAVEN_BUILD_PROFILES: "daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,full,gpg,excel" | |
MVN_DEPLOY_FILE_FLAGS: "${{env.MVN_BUILD_FLAGS}} ${{env.MVN_DEPLOY_FLAGS}} -Durl=https://oss.sonatype.org/service/local/staging/deploy/maven2 -DrepositoryId=ossrh-distro" | |
- name: SnapshotProperties | |
id: snapshot_props | |
if: github.ref == 'refs/heads/develop' && github.event.pull_request.merged == true | |
shell: bash | |
run: | | |
echo "SNAPSHOT_NAME=${{env.RELEASE_NAME}}" >> "$GITHUB_OUTPUT" | |
echo "SNAPSHOT_MAVEN_BUILD_PROFILES=${{env.MAVEN_BUILD_PROFILES}}" >> "$GITHUB_OUTPUT" | |
echo "SNAPSHOT_MVN_DEPLOY_FILE_FLAGS=${{env.MVN_DEPLOY_FILE_FLAGS}}" >> "$GITHUB_OUTPUT" | |
env: | |
RELEASE_NAME: "${{github.ref_name}}-SNAPSHOT" # not resolved how to define snapshot name | |
MAVEN_BUILD_PROFILES: "daml,scala,typescript,golang,csharp8,csharp9,kotlin,python,gpg,excel" | |
MVN_DEPLOY_FILE_FLAGS: "${{env.MVN_BUILD_FLAGS}} ${{env.MVN_DEPLOY_FLAGS}} -Durl=https://oss.sonatype.org/content/repositories/snapshots -DrepositoryId=ossrh" | |
build: | |
needs: setup | |
runs-on: ubuntu-latest # Not resolved - Maven image required | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build Release CI | |
if: startsWith(github.event.ref, 'refs/tags') | |
uses: ./.github/actions/build-migration | |
with: | |
build-command: install | |
release-name: ${{needs.setup.outputs.RELEASE_NAME}} | |
build-flags: ${{needs.setup.outputs.MVN_BUILD_FLAGS}} | |
build-profiles: ${{needs.setup.outputs.RELEASE_MVN_DEPLOY_FILE_FLAGS}} | |
maven-settings: $GITHUB_WORKSPACE/settings.xml | |
env: | |
GPG_KEYNAME: ${{secrets.GPG_KEYNAME}} | |
GPG_PRIVATE_KEY: ${{secrets.GPG_PRIVATE_KEY}} | |
GPG_PASSPHRASE: ${{secrets.GPG_PASSPHRASE}} | |
CI_DEPLOY_USERNAME: ${{secrets.CI_DEPLOY_USERNAME}} | |
CI_DEPLOY_PASSWORD: ${{secrets.CI_DEPLOY_PASSWORD}} | |
- name: Build Snapshot CI | |
if: github.ref == 'refs/heads/develop' && github.event.pull_request.merged == true | |
uses: ./.github/actions/build-migration | |
with: | |
build-command: verify | |
release-name: ${{needs.setup.outputs.SNAPSHOT_NAME}} | |
build-flags: ${{needs.setup.outputs.MVN_BUILD_FLAGS}} | |
build-profiles: ${{needs.setup.outputs.SNAPSHOT_MVN_DEPLOY_FILE_FLAGS}} | |
maven-settings: $GITHUB_WORKSPACE/settings.xml | |
env: | |
GPG_KEYNAME: ${{secrets.GPG_KEYNAME}} | |
GPG_PRIVATE_KEY: ${{secrets.GPG_PRIVATE_KEY}} | |
GPG_PASSPHRASE: ${{secrets.GPG_PASSPHRASE}} | |
CI_DEPLOY_USERNAME: ${{secrets.CI_DEPLOY_USERNAME}} | |
CI_DEPLOY_PASSWORD: ${{secrets.CI_DEPLOY_PASSWORD}} | |
distribute: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
# Steps for distribution if needed | |
- name: Distribute CI | |
run: | |
echo "Distribute ci" | |
finalise: | |
needs: distribute | |
runs-on: ubuntu-latest | |
steps: | |
# Steps for finalizing the process if needed | |
- name: Finalize CI | |
run: | |
echo "Finalize ci" |