Skip to content

Update build-migration-dev.yml #6

Update build-migration-dev.yml

Update build-migration-dev.yml #6

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.xxxx
- name: Distribute CI
run:
echo "Distribute ci"
- name: Distribute Excel
run:
echo "Distribute Excel"
# Excel distribution
# DeployExcel:
# stage: 'build'
# title: Excel deploy
# fail_fast: false
# image: maven:3.8.2-jdk-11
# working_directory: ./rosetta-source/
# shell: bash
# commands:
# - bash -c "${{GPG_IMPORT_COMMAND}}"
# - cd src/generated/excel
# - mv model.xlsx encoded.model.xlsx
# - base64 -d encoded.model.xlsx > cdm-excel-${{RELEASE_NAME}}.xlsx
# - rm encoded.model.xlsx
# - ${{GEN_DEPLOY_POM_SCRIPT}} cdm-excel ${{RELEASE_NAME}} xlsx
# - mvn org.apache.maven.plugins:maven-gpg-plugin:3.1.0:sign-and-deploy-file ${{MVN_DEPLOY_FILE_FLAGS}} -Dfile=cdm-excel-${{RELEASE_NAME}}.xlsx -DgroupId=org.finos.cdm -DartifactId=cdm-excel -Dversion=${{RELEASE_NAME}} -DpomFile=cdm-excel-${{RELEASE_NAME}}.pom
finalise:
needs: distribute
runs-on: ubuntu-latest
steps:
# Steps for finalizing the process if needed
- name: Finalize CI
run:
echo "Finalize ci"