diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 3e1aeda..9aeb0f7 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -76,14 +76,11 @@ jobs: shell: bash run: | set -e - # Extract the first "## ..." section (newest section) from CHANGELOG.md - # Includes the "## ..." heading and everything until the next "## ..." heading. awk ' /^## / { if (seen) exit; seen=1 } seen { print } ' CHANGELOG.md > RELEASE_NOTES.md - # Clean trailing whitespace/newlines a bit sed -i 's/[[:space:]]*$//' RELEASE_NOTES.md test -s RELEASE_NOTES.md @@ -142,6 +139,23 @@ jobs: echo "Release name: $RELEASE_NAME" echo "Release URL: $RELEASE_URL" + - name: Derive semver package version from tag + shell: bash + run: | + set -e + + # Convert: + # v25.03.21a -> 25.3.21-a + PACKAGE_VERSION="$(echo "$TAG" | sed -E 's/^v([0-9]{2})\.0?([0-9]{1,2})\.0?([0-9]{1,2})([a-z])$/\1.\2.\3-\4/')" + + if [ -z "$PACKAGE_VERSION" ]; then + echo "❌ Failed to derive PACKAGE_VERSION from TAG=$TAG" + exit 1 + fi + + echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> "$GITHUB_ENV" + echo "Using package version: $PACKAGE_VERSION" + - name: Generate version file for Astro footer shell: bash run: | @@ -160,7 +174,7 @@ jobs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 25 cache: npm - name: Install dependencies @@ -169,6 +183,18 @@ jobs: set -e npm ci + - name: Update package.json and package-lock.json version + shell: bash + run: | + set -e + npm version "$PACKAGE_VERSION" --no-git-tag-version + + echo "package.json version:" + node -p "require('./package.json').version" + + echo "package-lock.json version:" + node -p "require('./package-lock.json').version" + - name: Build Astro site shell: bash run: | @@ -280,4 +306,34 @@ jobs: -F "attachment=@${ZIP_PATH}" \ >/dev/null - echo "✅ Release created: ${RELEASE_NAME} (tag: ${TAG}) with asset uploaded" \ No newline at end of file + echo "✅ Release created: ${RELEASE_NAME} (tag: ${TAG}) with asset uploaded" + + - name: Commit and push version bump (CHANGELOG_PAT) + shell: bash + env: + CHANGELOG_PAT: ${{ secrets.CHANGELOG_PAT }} + run: | + set -e + + if git diff --quiet -- package.json package-lock.json; then + echo "No version changes to commit." + else + git config user.name "release-bot" + git config user.email "release-bot@users.noreply.local" + + git add package.json package-lock.json + git commit -m "chore(release): bump version to ${PACKAGE_VERSION} [skip ci]" + + origin_url="$(git remote get-url origin)" + + # Convert SSH → HTTPS if needed + if echo "$origin_url" | grep -q "^git@"; then + host="$(echo "$origin_url" | sed -E 's#git@([^:]+):.*#\1#')" + path="$(echo "$origin_url" | sed -E 's#git@[^:]+:(.*)#\1#')" + origin_url="https://$host/$path" + fi + + authed_url="$(echo "$origin_url" | sed -E "s#^https://#https://oauth2:${CHANGELOG_PAT}@#")" + + git push "$authed_url" HEAD:main + fi \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3a34e7c..efce945 100644 --- a/package-lock.json +++ b/package-lock.json @@ -680,6 +680,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -696,6 +699,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -712,6 +718,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -728,6 +737,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -744,6 +756,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -760,6 +775,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -776,6 +794,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -792,6 +813,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -808,6 +832,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -830,6 +857,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -852,6 +882,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -874,6 +907,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -896,6 +932,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -918,6 +957,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -940,6 +982,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -962,6 +1007,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1172,6 +1220,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1185,6 +1236,9 @@ "cpu": [ "arm" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1198,6 +1252,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1211,6 +1268,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1224,6 +1284,9 @@ "cpu": [ "loong64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1237,6 +1300,9 @@ "cpu": [ "loong64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1250,6 +1316,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1263,6 +1332,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1276,6 +1348,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1289,6 +1364,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1302,6 +1380,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1315,6 +1396,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1328,6 +1412,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [