Skip to content

Merge branch 'rosetta-models:master' into master #2

Merge branch 'rosetta-models:master' into master

Merge branch 'rosetta-models:master' into master #2

name: Java CI with Maven
on:
push:
branches: [ "master", "develop" ]
pull_request:
branches: [ "master", "develop" ]
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
# GPG config demo - TBD: proposal using secrets
REPO_PATH: "$GITHUB_WORKSPACE" # Not required
MVN_DEPLOY_FLAGS: "-s $GITHUB_WORKSPACE/settings.xml -Dmaven.repo.local=$GITHUB_WORKSPACE/.m2 -Denv.CI_DEPLOY_PASSWORD=$GITHUB_TOKEN -Denv.CI_DEPLOY_USERNAME=$GITHUB_USER -Denv.GPG_KEYNAME=${{secrets.GPG_KEYNAME}} -Denv.GPG_PASSPHRASE=${{secrets.GPG_PASSPHRASE}}"
MVN_BUILD_FLAGS: "-Dmaven.repo.local=$GITHUB_WORKSPACE/.m2"
# GPG_IMPORT_COMMAND: "cat <(echo -e '${{secrets.GPG_PRIVATE_KEY}}') | gpg --batch --import" - can be used if GPG is handled through secrets.
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:
REPO_PATH: ${{env.REPO_PATH}}
MVN_DEPLOY_FLAGS: ${{env.MVN_DEPLOY_FLAGS}}
MVN_BUILD_FLAGS: ${{env.MVN_BUILD_FLAGS}}
GPG_IMPORT_COMMAND: ${{steps.set_props.outputs.GPG_IMPORT_COMMAND}}
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@v2
- name: SetProperties
id: set_props
shell: bash
run: echo "GPG_IMPORT_COMMAND=${{env.GPG_IMPORT_COMMAND}}" >> "$GITHUB_OUTPUT"
env:
GPG_IMPORT_COMMAND: "cat <(echo -e '${{secrets.GPG_PRIVATE_KEY}}') | gpg --batch --import"
- name: ReleaseProperties
id: release_props
if: "contains(github.ref, 'master')"
shell: bash
run: |
echo "=== Global variable resolution ==="
echo "REPO_PATH: ${{env.REPO_PATH}}"
echo "=== Local variable resolution ==="
echo "RELEASE_NAME=${{env.RELEASE_NAME}}" >> "$GITHUB_OUTPUT"
echo "MAVEN_BUILD_PROFILES=${{env.MAVEN_BUILD_PROFILES}}" >> "$GITHUB_OUTPUT"
echo "MVN_DEPLOY_FILE_FLAGS=${{env.MVN_DEPLOY_FILE_FLAGS}}" >> "$GITHUB_OUTPUT"
env:
RELEASE_NAME: "${{github.ref_name}}" # not resoled hot to define release name (e.g. $github.tag)
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 -Dgpg.passphrase=${{env.GPG_PASSPHRASE}}"
- name: SnapshotProperties
id: snapshot_props
if: "contains(github.ref, 'develop')"
shell: bash
run: |
echo "=== Global variable resolution ==="
echo "REPO_PATH: ${{env.REPO_PATH}}"
echo "=== Local variable resolution ==="
echo "RELEASE_NAME=${{env.RELEASE_NAME}}" >> "$GITHUB_OUTPUT"
echo "MAVEN_BUILD_PROFILES=${{env.MAVEN_BUILD_PROFILES}}" >> "$GITHUB_OUTPUT"
echo "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 -Dgpg.passphrase=${{env.GPG_PASSPHRASE}}"
build:
needs: setup
runs-on: ubuntu-latest # Not resolved - Maven image required
steps:
- name: Build Release CI
if: "contains(github.ref, 'master')"
run: |
echo "MVN_DEPLOY_FILE_FLAGS: ${{needs.setup.outputs.RELEASE_MVN_DEPLOY_FILE_FLAGS}}"
echo "RELEASE_NAME: ${{needs.setup.outputs.RELEASE_NAME}}"
- name: Build Snapshot CI
if: "contains(github.ref, 'develop')"
run: |
echo "MVN_DEPLOY_FILE_FLAGS: ${{needs.setup.outputs.SNAPSHOT_MVN_DEPLOY_FILE_FLAGS}}"
echo "RELEASE_NAME: ${{needs.setup.outputs.SNAPSHOT_NAME}}"
distribute:
needs: build
runs-on: ubuntu-latest
steps:
# Steps for distribution if needed
- name: Distribute CI
run:
echo "Testing distribute ci"
finalise:
needs: distribute
runs-on: ubuntu-latest
steps:
# Steps for finalizing the process if needed
- name: Finalize CI
run:
echo "Testing finalize ci"