on: push: branches: - main 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 }} 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: | latest_commit_message="$(git show -s --format=%s HEAD)" case "$latest_commit_message" in *patch*) export GS_RELEASE_TYPE="patch" ;; *minor*) export GS_RELEASE_TYPE="minor" ;; *major*) export GS_RELEASE_TYPE="major" ;; *) export GS_RELEASE_TYPE="patch" ;; esac echo "Latest Commit: $latest_commit_message" echo "Selected Release Type: '$GS_RELEASE_TYPE'" 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"