(patch) Scala Version, docs, builds (#8)
All checks were successful
/ Build and Release Library (push) Successful in 1m19s

Reviewed-on: #8
This commit is contained in:
Pat Garrity 2024-04-15 02:15:40 +00:00
parent 20fb91a62b
commit 6c9aded52e
5 changed files with 70 additions and 23 deletions

View file

@ -26,7 +26,7 @@ jobs:
pre-commit run --all-files pre-commit run --all-files
- name: 'Prepare Versioned Build' - name: 'Prepare Versioned Build'
run: | 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)" latest_commit_message="$(git show -s --format=%s HEAD)"
if [[ "$latest_commit_message" == *"(major)"* ]]; then if [[ "$latest_commit_message" == *"(major)"* ]]; then
export GS_RELEASE_TYPE="major" export GS_RELEASE_TYPE="major"
@ -34,12 +34,21 @@ jobs:
export GS_RELEASE_TYPE="minor" export GS_RELEASE_TYPE="minor"
elif [[ "$latest_commit_message" == *"(patch)"* ]]; then elif [[ "$latest_commit_message" == *"(patch)"* ]]; then
export GS_RELEASE_TYPE="patch" 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 else
export GS_RELEASE_TYPE="patch" export GS_RELEASE_TYPE="norelease"
fi fi
echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV
echo "Previous Git Tag: $latest_git_tag" echo "Previous Git Tag: $latest_git_tag"
echo "Latest Commit: $latest_commit_message ($GS_RELEASE_TYPE) (SNAPSHOT)" echo "Latest Commit: $latest_commit_message ($GS_RELEASE_TYPE) (SNAPSHOT)"
if [ "$GS_RELEASE_TYPE" = "norelease" ]; then
sbtn -Dsnapshot=true -Drelease="patch" semVerInfo
else
sbtn -Dsnapshot=true -Drelease="$GS_RELEASE_TYPE" semVerInfo sbtn -Dsnapshot=true -Drelease="$GS_RELEASE_TYPE" semVerInfo
fi
- name: 'Unit Tests and Code Coverage' - name: 'Unit Tests and Code Coverage'
run: | run: |
sbtn clean sbtn clean
@ -48,5 +57,10 @@ jobs:
sbtn coverageReport sbtn coverageReport
- name: 'Publish Snapshot' - name: 'Publish Snapshot'
run: | run: |
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 clean
sbtn publish sbtn publish
fi

View file

@ -27,7 +27,7 @@ jobs:
pre-commit run --all-files pre-commit run --all-files
- name: 'Prepare Versioned Build' - name: 'Prepare Versioned Build'
run: | 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)" latest_commit_message="$(git show -s --format=%s HEAD)"
if [[ "$latest_commit_message" == *"(major)"* ]]; then if [[ "$latest_commit_message" == *"(major)"* ]]; then
export GS_RELEASE_TYPE="major" export GS_RELEASE_TYPE="major"
@ -35,26 +35,49 @@ jobs:
export GS_RELEASE_TYPE="minor" export GS_RELEASE_TYPE="minor"
elif [[ "$latest_commit_message" == *"(patch)"* ]]; then elif [[ "$latest_commit_message" == *"(patch)"* ]]; then
export GS_RELEASE_TYPE="patch" 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 else
export GS_RELEASE_TYPE="patch" export GS_RELEASE_TYPE="norelease"
fi fi
echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV
echo "Previous Git Tag: $latest_git_tag" echo "Previous Git Tag: $latest_git_tag"
echo "Latest Commit: $latest_commit_message" echo "Latest Commit: $latest_commit_message"
echo "Selected Release Type: '$GS_RELEASE_TYPE'" echo "Selected Release Type: '$GS_RELEASE_TYPE'"
if [ "$GS_RELEASE_TYPE" = "norelease" ]; then
echo "Skipping all versioning for 'norelease' commit."
else
sbtn -Drelease="$GS_RELEASE_TYPE" semVerInfo sbtn -Drelease="$GS_RELEASE_TYPE" semVerInfo
fi
- name: 'Unit Tests and Code Coverage' - name: 'Unit Tests and Code Coverage'
run: | run: |
if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then
echo "Skipping build/test for 'norelease' commit."
else
sbtn clean sbtn clean
sbtn coverage sbtn coverage
sbtn test sbtn test
sbtn coverageReport sbtn coverageReport
fi
- name: 'Publish Release' - name: 'Publish Release'
run: | run: |
if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then
echo "Skipping publish for 'norelease' commit."
else
sbtn clean sbtn clean
sbtn semVerWriteVersionToFile sbtn semVerWriteVersionToFile
sbtn publish sbtn publish
fi
- name: 'Create Git Tag' - name: 'Create Git Tag'
run: | run: |
if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then
echo "Skipping Git tag for 'norelease' commit."
else
selected_version="$(cat .version)" selected_version="$(cat .version)"
git tag "$selected_version" git tag "$selected_version"
git push origin "$selected_version" git push origin "$selected_version"
fi

View file

@ -1,15 +1,20 @@
# gs-uuid # 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 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 from Jackson Databind. The only dependency is JUG, whereas the relevant Jackson
code is copied to this implementation (and slightly modified). code is copied to this implementation (and slightly modified).
- [Usage](#usage) - [Usage](#usage)
- [Dependency](#dependency)
- [Donate](#donate)
## Usage ## Usage
### Dependency
This artifact is available in the Garrity Software Maven repository. This artifact is available in the Garrity Software Maven repository.
```scala ```scala
@ -17,5 +22,10 @@ externalResolvers +=
"Garrity Software Releases" at "https://maven.garrity.co/releases" "Garrity Software Releases" at "https://maven.garrity.co/releases"
val GsUuid: ModuleID = 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).

View file

@ -1,4 +1,4 @@
val scala3: String = "3.4.0" val scala3: String = "3.4.1"
ThisBuild / scalaVersion := scala3 ThisBuild / scalaVersion := scala3
ThisBuild / versionScheme := Some("semver-spec") ThisBuild / versionScheme := Some("semver-spec")

View file

@ -29,5 +29,5 @@ externalResolvers := Seq(
) )
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.11") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.11")
addSbtPlugin("gs" % "sbt-garrity-software" % "0.2.0") addSbtPlugin("gs" % "sbt-garrity-software" % "0.3.0")
addSbtPlugin("gs" % "sbt-gs-semver" % "0.2.2") addSbtPlugin("gs" % "sbt-gs-semver" % "0.3.0")