diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bae6a79..e60da85 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ on: [push, pull_request] jobs: build: name: Build - if: "!contains(github.event.head_commit.message, '[maven-release-plugin]')" + if: "github.repository == 'finos/legend-shared'" runs-on: ubuntu-latest steps: - name: Checkout repo diff --git a/.github/workflows/clean-after-failed-release.yml b/.github/workflows/clean-after-failed-release.yml index c45b80d..6ca3198 100644 --- a/.github/workflows/clean-after-failed-release.yml +++ b/.github/workflows/clean-after-failed-release.yml @@ -13,9 +13,8 @@ # limitations under the License. -# This action deletes the last two commits made on the master branch and the latest tag -# This should only be run if a release failed and the remote staging repo has been dropped: -# [ERROR] * Dropping failed staging repository with ID "orgfinoslegend-..." ... +# This action deletes the latest tag after a failed release. +# With CI-friendly versions, there are no release commits to clean up — only the tag. name: Clean repo after failed release on: [workflow_dispatch] @@ -39,5 +38,3 @@ jobs: run: | LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) git push --delete origin $LATEST_TAG - git reset --hard HEAD~2 - git push --force diff --git a/.github/workflows/legend-stack-release.yml b/.github/workflows/legend-stack-release.yml index 128bdcc..be79bd7 100644 --- a/.github/workflows/legend-stack-release.yml +++ b/.github/workflows/legend-stack-release.yml @@ -52,22 +52,29 @@ jobs: gpg-private-key: ${{ secrets.CI_GPG_PRIVATE_KEY }} gpg-passphrase: CI_GPG_PASSPHRASE - - name: Compute next development version - run: | - releaseVersion=${{ github.event.client_payload.releaseVersion }} - n=${releaseVersion//[!0-9]/ } - a=(${n//\./ }) - nextPatch=$((${a[2]} + 1)) - developmentVersion="${a[0]}.${a[1]}.${nextPatch}-SNAPSHOT" - echo "DEVELOPMENT_VERSION=${developmentVersion}" >> $GITHUB_ENV - - name: Collect Workflow Telemetry uses: runforesight/workflow-telemetry-action@v1 with: theme: dark - - name: Prepare release - run: mvn -B -DpreparationGoals=clean release:prepare -DreleaseVersion=${{ github.event.client_payload.releaseVersion }} -DdevelopmentVersion=${{ env.DEVELOPMENT_VERSION }} -P release + - name: Build and deploy release + run: | + mvn -B -e -Drevision=${{ github.event.client_payload.releaseVersion }} \ + deploy -P release,docker + + - name: Create and push git tag + run: | + git tag ${{ github.event.repository.name }}-${{ github.event.client_payload.releaseVersion }} + git push origin ${{ github.event.repository.name }}-${{ github.event.client_payload.releaseVersion }} - - name: Perform release - run: mvn -B release:perform -P release,docker + - name: Compute and set next SNAPSHOT + run: | + releaseVersion=${{ github.event.client_payload.releaseVersion }} + n=${releaseVersion//[!0-9]/ } + a=(${n//\./ }) + nextPatch=$((${a[2]} + 1)) + nextSnapshot="${a[0]}.${a[1]}.${nextPatch}-SNAPSHOT" + sed -i "s|.*|${nextSnapshot}|" pom.xml + git add pom.xml + git commit -m "Bump version to ${nextSnapshot}" + git push origin master diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1b5e478..09f9a89 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,42 +54,27 @@ jobs: gpg-private-key: ${{ secrets.CI_GPG_PRIVATE_KEY }} gpg-passphrase: CI_GPG_PASSPHRASE - - name: Compute next development version - run: | - releaseVersion=${{ github.event.inputs.releaseVersion }} - n=${releaseVersion//[!0-9]/ } - a=(${n//\./ }) - nextPatch=$((${a[2]} + 1)) - developmentVersion="${a[0]}.${a[1]}.${nextPatch}-SNAPSHOT" - echo "DEVELOPMENT_VERSION=${developmentVersion}" >> $GITHUB_ENV - - name: Collect Workflow Telemetry uses: runforesight/workflow-telemetry-action@v1 with: theme: dark - - name: Prepare release - run: mvn -B -DpreparationGoals=clean release:prepare -DreleaseVersion=${{ github.event.inputs.releaseVersion }} -DdevelopmentVersion=${{ env.DEVELOPMENT_VERSION }} -P release - - - name: Checkout the latest tag - run: | - mkdir -p target/checkout - git clone --depth 1 --branch ${{ github.event.repository.name }}-${{ github.event.inputs.releaseVersion }} https://github.com/${{ github.repository }}.git target/checkout - - - name: Build the latest tag - working-directory: target/checkout - run: mvn -B -e -T2 -DskipTests install -P release,docker + - name: Build release + run: mvn -B -e -T2 -DskipTests -Drevision=${{ github.event.inputs.releaseVersion }} install -P release,docker env: MAVEN_OPTS: -Xmx14g - - name: Test the latest tag - working-directory: target/checkout - run: mvn -B -e -T2 -DargLine="-Xmx6g" surefire:test -P release,docker + - name: Test release + run: mvn -B -e -T2 -DargLine="-Xmx6g" -Drevision=${{ github.event.inputs.releaseVersion }} surefire:test -P release,docker env: MAVEN_OPTS: -Xmx2g + - name: Create and push git tag + run: | + git tag ${{ github.event.repository.name }}-${{ github.event.inputs.releaseVersion }} + git push origin ${{ github.event.repository.name }}-${{ github.event.inputs.releaseVersion }} + - name: Create bundle to publish - working-directory: target/checkout run: | mkdir -p central-staging/org/finos/legend cp -R ~/.m2/repository/org/finos/legend/shared central-staging/org/finos/legend @@ -100,12 +85,12 @@ jobs: sha256sum "$file" | awk '{print $1}' > "$file.sha256" sha512sum "$file" | awk '{print $1}' > "$file.sha512" done - + mkdir central-publishing cd central-staging && zip -r ../central-publishing/central-bundle.zip org - name: Publish bundle - working-directory: target/checkout/central-publishing + working-directory: central-publishing run: | token=$(printf "$CI_DEPLOY_USERNAME:$CI_DEPLOY_PASSWORD" | base64) httpCode=$(curl -s -o response.json -w "%{http_code}" -X POST -H "Authorization: Bearer $token" --form bundle=@central-bundle.zip https://central.sonatype.com/api/v1/publisher/upload?publishingType=AUTOMATIC) @@ -140,3 +125,15 @@ jobs: exit 1 fi done + + - name: Compute and set next SNAPSHOT + run: | + releaseVersion=${{ github.event.inputs.releaseVersion }} + n=${releaseVersion//[!0-9]/ } + a=(${n//\./ }) + nextPatch=$((${a[2]} + 1)) + nextSnapshot="${a[0]}.${a[1]}.${nextPatch}-SNAPSHOT" + sed -i "s|.*|${nextSnapshot}|" pom.xml + git add pom.xml + git commit -m "Bump version to ${nextSnapshot}" + git push origin master diff --git a/.gitignore b/.gitignore index 55316d0..8a58813 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ **/target **/surefire-reports-aggregate **/dependency-reduced-pom.xml +**/.flattened-pom.xml .vscode .settings .project diff --git a/legend-shared-opentracing-base/pom.xml b/legend-shared-opentracing-base/pom.xml index ca415d1..7e57a90 100644 --- a/legend-shared-opentracing-base/pom.xml +++ b/legend-shared-opentracing-base/pom.xml @@ -21,7 +21,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-opentracing-base diff --git a/legend-shared-opentracing-jersey/pom.xml b/legend-shared-opentracing-jersey/pom.xml index ef6ac5a..0fb2534 100644 --- a/legend-shared-opentracing-jersey/pom.xml +++ b/legend-shared-opentracing-jersey/pom.xml @@ -21,7 +21,7 @@ legend-shared org.finos.legend.shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-opentracing-jersey diff --git a/legend-shared-opentracing-servlet-filter/pom.xml b/legend-shared-opentracing-servlet-filter/pom.xml index 2bc591b..8598fd3 100644 --- a/legend-shared-opentracing-servlet-filter/pom.xml +++ b/legend-shared-opentracing-servlet-filter/pom.xml @@ -21,7 +21,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-opentracing-servlet-filter diff --git a/legend-shared-opentracing-test/pom.xml b/legend-shared-opentracing-test/pom.xml index cdb8eb8..526f9f4 100644 --- a/legend-shared-opentracing-test/pom.xml +++ b/legend-shared-opentracing-test/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-opentracing-test diff --git a/legend-shared-pac4j-gitlab/pom.xml b/legend-shared-pac4j-gitlab/pom.xml index eae568c..775dfd8 100644 --- a/legend-shared-pac4j-gitlab/pom.xml +++ b/legend-shared-pac4j-gitlab/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-pac4j-gitlab diff --git a/legend-shared-pac4j-kerberos/pom.xml b/legend-shared-pac4j-kerberos/pom.xml index 5f6cdf8..ca76fed 100644 --- a/legend-shared-pac4j-kerberos/pom.xml +++ b/legend-shared-pac4j-kerberos/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-pac4j-kerberos diff --git a/legend-shared-pac4j-ping/pom.xml b/legend-shared-pac4j-ping/pom.xml index d7a2245..b0e66d7 100644 --- a/legend-shared-pac4j-ping/pom.xml +++ b/legend-shared-pac4j-ping/pom.xml @@ -20,7 +20,7 @@ legend-shared org.finos.legend.shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-pac4j-ping diff --git a/legend-shared-pac4j/pom.xml b/legend-shared-pac4j/pom.xml index 2247c52..ec0554c 100644 --- a/legend-shared-pac4j/pom.xml +++ b/legend-shared-pac4j/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-pac4j diff --git a/legend-shared-server/pom.xml b/legend-shared-server/pom.xml index 72bb778..d1fd46f 100644 --- a/legend-shared-server/pom.xml +++ b/legend-shared-server/pom.xml @@ -21,7 +21,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-server diff --git a/legend-shared-test-reports/pom.xml b/legend-shared-test-reports/pom.xml index c94576a..d8cd74b 100644 --- a/legend-shared-test-reports/pom.xml +++ b/legend-shared-test-reports/pom.xml @@ -21,7 +21,7 @@ org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} legend-shared-test-reports diff --git a/pom.xml b/pom.xml index d06a838..81a06b5 100644 --- a/pom.xml +++ b/pom.xml @@ -27,10 +27,13 @@ Legend Shared org.finos.legend.shared legend-shared - 0.34.1-SNAPSHOT + ${revision} pom + + 0.34.1-SNAPSHOT + legend-shared ${project.groupId}:${project.artifactId} @@ -209,6 +212,31 @@ + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + org.sonatype.central central-publishing-maven-plugin