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