From 6c9aded52ebc65cfa8a8e13b611f3a4c243cc6cb Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Mon, 15 Apr 2024 02:15:40 +0000 Subject: [PATCH] (patch) Scala Version, docs, builds (#8) Reviewed-on: https://git.garrity.co/garrity-software/gs-uuid/pulls/8 --- .forgejo/workflows/pull_request.yaml | 24 +++++++++++--- .forgejo/workflows/release.yaml | 49 ++++++++++++++++++++-------- README.md | 14 ++++++-- build.sbt | 2 +- project/plugins.sbt | 4 +-- 5 files changed, 70 insertions(+), 23 deletions(-) diff --git a/.forgejo/workflows/pull_request.yaml b/.forgejo/workflows/pull_request.yaml index 700fa3d..bba274a 100644 --- a/.forgejo/workflows/pull_request.yaml +++ b/.forgejo/workflows/pull_request.yaml @@ -26,7 +26,7 @@ jobs: pre-commit run --all-files - name: 'Prepare Versioned Build' run: | - latest_git_tag="$(git describe --tags --abbrev=0)" + latest_git_tag="$(git describe --tags --abbrev=0 || echo 'No Tags')" latest_commit_message="$(git show -s --format=%s HEAD)" if [[ "$latest_commit_message" == *"(major)"* ]]; then export GS_RELEASE_TYPE="major" @@ -34,12 +34,21 @@ jobs: export GS_RELEASE_TYPE="minor" elif [[ "$latest_commit_message" == *"(patch)"* ]]; then export GS_RELEASE_TYPE="patch" + elif [[ "$latest_commit_message" == *"(docs)"* ]]; then + export GS_RELEASE_TYPE="norelease" + elif [[ "$latest_commit_message" == *"(norelease)"* ]]; then + export GS_RELEASE_TYPE="norelease" else - export GS_RELEASE_TYPE="patch" + export GS_RELEASE_TYPE="norelease" fi + echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV echo "Previous Git Tag: $latest_git_tag" echo "Latest Commit: $latest_commit_message ($GS_RELEASE_TYPE) (SNAPSHOT)" - sbtn -Dsnapshot=true -Drelease="$GS_RELEASE_TYPE" semVerInfo + if [ "$GS_RELEASE_TYPE" = "norelease" ]; then + sbtn -Dsnapshot=true -Drelease="patch" semVerInfo + else + sbtn -Dsnapshot=true -Drelease="$GS_RELEASE_TYPE" semVerInfo + fi - name: 'Unit Tests and Code Coverage' run: | sbtn clean @@ -48,5 +57,10 @@ jobs: sbtn coverageReport - name: 'Publish Snapshot' run: | - sbtn clean - sbtn publish + echo "Testing env var propagation = ${{ env.GS_RELEASE_TYPE }}" + if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then + echo "Skipping publish due to GS_RELEASE_TYPE=norelease" + else + sbtn clean + sbtn publish + fi diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index 9c76938..8351605 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -27,7 +27,7 @@ jobs: pre-commit run --all-files - name: 'Prepare Versioned Build' run: | - latest_git_tag="$(git describe --tags --abbrev=0)" + latest_git_tag="$(git describe --tags --abbrev=0 || echo 'No Tags')" latest_commit_message="$(git show -s --format=%s HEAD)" if [[ "$latest_commit_message" == *"(major)"* ]]; then export GS_RELEASE_TYPE="major" @@ -35,26 +35,49 @@ jobs: export GS_RELEASE_TYPE="minor" elif [[ "$latest_commit_message" == *"(patch)"* ]]; then export GS_RELEASE_TYPE="patch" + elif [[ "$latest_commit_message" == *"(docs)"* ]]; then + export GS_RELEASE_TYPE="norelease" + elif [[ "$latest_commit_message" == *"(norelease)"* ]]; then + export GS_RELEASE_TYPE="norelease" else - export GS_RELEASE_TYPE="patch" + export GS_RELEASE_TYPE="norelease" fi + + echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV echo "Previous Git Tag: $latest_git_tag" echo "Latest Commit: $latest_commit_message" echo "Selected Release Type: '$GS_RELEASE_TYPE'" - sbtn -Drelease="$GS_RELEASE_TYPE" semVerInfo + + if [ "$GS_RELEASE_TYPE" = "norelease" ]; then + echo "Skipping all versioning for 'norelease' commit." + else + sbtn -Drelease="$GS_RELEASE_TYPE" semVerInfo + fi - name: 'Unit Tests and Code Coverage' run: | - sbtn clean - sbtn coverage - sbtn test - sbtn coverageReport + if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then + echo "Skipping build/test for 'norelease' commit." + else + sbtn clean + sbtn coverage + sbtn test + sbtn coverageReport + fi - name: 'Publish Release' run: | - sbtn clean - sbtn semVerWriteVersionToFile - sbtn publish + if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then + echo "Skipping publish for 'norelease' commit." + else + sbtn clean + sbtn semVerWriteVersionToFile + sbtn publish + fi - name: 'Create Git Tag' run: | - selected_version="$(cat .version)" - git tag "$selected_version" - git push origin "$selected_version" + if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then + echo "Skipping Git tag for 'norelease' commit." + else + selected_version="$(cat .version)" + git tag "$selected_version" + git push origin "$selected_version" + fi diff --git a/README.md b/README.md index c71220e..45d861c 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,20 @@ # gs-uuid -[License (Apache 2.0)](./LICENSE) +[GS Open Source](https://garrity.co/oss.html) | +[License (MIT)](./LICENSE) UUID's for Scala 3 with generation based on JUG, and serialization based on code from Jackson Databind. The only dependency is JUG, whereas the relevant Jackson code is copied to this implementation (and slightly modified). - [Usage](#usage) + - [Dependency](#dependency) +- [Donate](#donate) ## Usage +### Dependency + This artifact is available in the Garrity Software Maven repository. ```scala @@ -17,5 +22,10 @@ externalResolvers += "Garrity Software Releases" at "https://maven.garrity.co/releases" val GsUuid: ModuleID = - "gs" %% "gs-uuid-v0" % "0.1.0" + "gs" %% "gs-uuid-v0" % "$VERSION" ``` + +## Donate + +Enjoy this project or want to help me achieve my [goals](https://garrity.co)? +Consider [Donating to Pat on Ko-fi](https://ko-fi.com/gspfm). diff --git a/build.sbt b/build.sbt index 2d2e233..5069659 100644 --- a/build.sbt +++ b/build.sbt @@ -1,4 +1,4 @@ -val scala3: String = "3.4.0" +val scala3: String = "3.4.1" ThisBuild / scalaVersion := scala3 ThisBuild / versionScheme := Some("semver-spec") diff --git a/project/plugins.sbt b/project/plugins.sbt index 78b59cb..e897854 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -29,5 +29,5 @@ externalResolvers := Seq( ) addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.11") -addSbtPlugin("gs" % "sbt-garrity-software" % "0.2.0") -addSbtPlugin("gs" % "sbt-gs-semver" % "0.2.2") +addSbtPlugin("gs" % "sbt-garrity-software" % "0.3.0") +addSbtPlugin("gs" % "sbt-gs-semver" % "0.3.0")