From 2ae7ae03a63dfbaa88d3833b8769224a74b910e6 Mon Sep 17 00:00:00 2001 From: Kazik Pogoda Date: Mon, 9 Dec 2024 18:25:17 +0100 Subject: [PATCH] Release process update --- .github/scripts/update-readme-version.sh | 74 ++++++++++++++++++++++++ .github/workflows/build-release.yml | 32 ++++------ gradle.properties | 1 - settings.gradle.kts | 8 ++- 4 files changed, 92 insertions(+), 23 deletions(-) create mode 100755 .github/scripts/update-readme-version.sh diff --git a/.github/scripts/update-readme-version.sh b/.github/scripts/update-readme-version.sh new file mode 100755 index 0000000..864e525 --- /dev/null +++ b/.github/scripts/update-readme-version.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +# +# Copyright 2024 Kazimierz Pogoda / Xemantic +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Ensure VERSION environment variable is set +if [ -z "$VERSION" ]; then + echo "Error: VERSION environment variable is not set" + exit 1 +fi + +# Check if settings.gradle.kts exists +if [ ! -f "settings.gradle.kts" ]; then + echo "Error: settings.gradle.kts not found" + exit 1 +fi + +# Extract groupId and name from settings.gradle.kts +GROUP_ID=$(grep "val groupId = " settings.gradle.kts | sed -n 's/.*groupId = "\(.*\)".*/\1/p') +ARTIFACT_ID=$(grep "val name = " settings.gradle.kts | sed -n 's/.*name = "\(.*\)".*/\1/p') + +if [ -z "$GROUP_ID" ] || [ -z "$ARTIFACT_ID" ]; then + echo "Error: Could not extract groupId or name from settings.gradle.kts" + exit 1 +fi + +# Check if README.md exists +if [ ! -f "README.md" ]; then + echo "Error: README.md not found" + exit 1 +fi + +# Escape special characters in the group ID for sed +ESCAPED_GROUP_ID=$(echo "$GROUP_ID" | sed 's/\./\\./g') + +# Create the pattern to match +PATTERN="\"$ESCAPED_GROUP_ID:$ARTIFACT_ID:[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\"" + +# Create the replacement string +REPLACEMENT="\"$GROUP_ID:$ARTIFACT_ID:$VERSION\"" + +# Check if the pattern exists in the file +if ! grep -q "$GROUP_ID:$ARTIFACT_ID:[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*" README.md; then + echo "Error: Dependency pattern not found in README.md" + exit 1 +fi + +# Perform the replacement and save to a temporary file +sed "s|$PATTERN|$REPLACEMENT|g" README.md > README.md.tmp + +# Check if sed made any changes +if cmp -s README.md README.md.tmp; then + echo "No version updates were needed" + rm README.md.tmp + exit 0 +fi + +# Move the temporary file back to the original +mv README.md.tmp README.md + +echo "Successfully updated version to $VERSION in README.md" \ No newline at end of file diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 3a3f9a0..2ca6ae2 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -19,6 +19,7 @@ jobs: - name: Checkout sources uses: actions/checkout@v4.2.2 with: + ref: ${{ github.head_ref }} fetch-depth: 0 - name: Setup Java @@ -41,28 +42,17 @@ jobs: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: ./gradlew -Pversion=$VERSION build sourcesJar dokkaGeneratePublicationHtml publishToSonatype closeAndReleaseSonatypeStagingRepository - - name: Find branch from tag - id: find-branch - env: - TAG_NAME: ${{ github.event.release.tag_name }} - run: | - BRANCH=$(git branch -r --contains $TAG_NAME | grep -v '\->' | sed 's/origin\///' | head -n 1) - if [ -z "$BRANCH" ]; then - echo "Branch not found for tag $TAG" - exit 1 - fi - echo Branch: $BRANCH - echo "BRANCH=$BRANCH" >> $GITHUB_ENV - - - name: Checkout branch HEAD - run: git checkout ${BRANCH} + - name: Checkout main branch + uses: actions/checkout@v4.2.2 + with: + ref: main + fetch-depth: 0 -# - name: Update README -# run: sed -i "s/com\.xemantic\.anthropic:anthropic-sdk-kotlin:[0-9]\+\(\.[0-9]\+\)*\>/com.xemantic.anthropic:anthropic-sdk-kotlin:$VERSION/g" README.md + - name: Update README + run: sh .github/scripts/update-readme-version.sh - name: Create Pull Request - uses: peter-evans/create-pull-request@v7.0.5 + uses: stefanzweifel/git-auto-commit-action@v5.0.1 with: - token: ${{ secrets.WORKFLOW_SECRET }} - commit-message: README.md gradle dependencies update to ${{ env.VERSION }} - title: PR Action - README.md gradle dependencies update to ${{ env.VERSION }} + commit_message: Dependency version in README.md updated to ${{ env.VERSION }} + file_pattern: 'README.md' diff --git a/gradle.properties b/gradle.properties index 68c124c..859f4fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,5 +6,4 @@ kotlin.native.enableKlibsCrossCompilation=true kotlin.incremental.wasm=true org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true -group=com.xemantic.ai version=0.1-SNAPSHOT diff --git a/settings.gradle.kts b/settings.gradle.kts index 8dee74e..c104d4b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,7 @@ -rootProject.name = "xemantic-ai-money" +val groupId = "com.xemantic.ai" +val name = "xemantic-ai-money" + +rootProject.name = name +gradle.beforeProject { + group = groupId +}