From 1c7861705dfaf89935c1dc3890e7e2d1c2778d58 Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Thu, 21 Mar 2024 02:57:21 +0000 Subject: [PATCH] Added release build support with an updated SemVer plugin. (#3) Reviewed-on: https://git.garrity.co/garrity-software/gs-uuid/pulls/3 --- .forgejo/workflows/pull_request.yaml | 10 ++++-- .forgejo/workflows/release.yaml | 47 ++++++++++++++++++++++++++++ .gitignore | 1 + project/plugins.sbt | 2 +- 4 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 .forgejo/workflows/release.yaml diff --git a/.forgejo/workflows/pull_request.yaml b/.forgejo/workflows/pull_request.yaml index 867e08e..084102b 100644 --- a/.forgejo/workflows/pull_request.yaml +++ b/.forgejo/workflows/pull_request.yaml @@ -19,6 +19,12 @@ jobs: pre-commit install pre-commit run --all-files - name: 'Unit Tests and Code Coverage' - run: sbt clean coverage test coverageReport + run: | + sbtn clean + sbtn coverage + sbtn test + sbtn coverageReport - name: 'Publish Snapshot' - run: sbt clean publish + run: | + sbtn clean + sbtn publish diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml new file mode 100644 index 0000000..edab4af --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,47 @@ +on: + workflow_dispatch: + inputs: + releaseType: + description: 'Release Type' + required: true + default: 'patch' + type: choice + options: + - major + - minor + - patch + +jobs: + library_release: + runs-on: docker + container: + image: registry.garrity.co:8443/gs/ci-scala:latest + name: 'Build and Release Library' + env: + GS_MAVEN_USER: ${{ vars.GS_MAVEN_USER }} + GS_MAVEN_TOKEN: ${{ secrets.GS_MAVEN_TOKEN }} + GS_RELEASE_TYPE: ${{ inputs.releaseType }} + steps: + - uses: actions/checkout@v4 + name: 'Checkout Repository' + - name: 'Pre-Commit' + run: | + pre-commit install + pre-commit run --all-files + - name: 'Unit Tests and Code Coverage' + run: | + sbtn clean + sbtn coverage + sbtn test + sbtn coverageReport + - name: 'Publish Release' + run: | + sbtn clean + sbtn "-Drelease=$GS_RELEASE_TYPE" semVerInfo + sbtn "-Drelease=$GS_RELEASE_TYPE" semVerWriteVersionToFile + sbtn "-Drelease=$GS_RELEASE_TYPE" publish + - name: 'Create Git Tag' + run: | + selected_version="$(cat .version)" + git tag "$selected_version" + git push origin "$selected_version" diff --git a/.gitignore b/.gitignore index 89fee26..7af9867 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ target/ project/target/ project/project/ modules/core/target/ +.version diff --git a/project/plugins.sbt b/project/plugins.sbt index 49f95ef..5a7d19d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -30,4 +30,4 @@ 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.0") +addSbtPlugin("gs" % "sbt-gs-semver" % "0.2.1")