Skip to content

feat: Platform4Sync v0.1.0 — skills marketplace for multi-tenant SaaS #1

feat: Platform4Sync v0.1.0 — skills marketplace for multi-tenant SaaS

feat: Platform4Sync v0.1.0 — skills marketplace for multi-tenant SaaS #1

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate semver tag
run: |
TAG="${GITHUB_REF#refs/tags/}"
if ! echo "$TAG" | grep -qE '^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$'; then
echo "ERROR: Tag '$TAG' is not valid semver (expected vX.Y.Z or vX.Y.Z-prerelease)"
exit 1
fi
echo "TAG=$TAG" >> "$GITHUB_ENV"
echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- name: Check for private data
run: |
PATTERNS=(
"your-neon-project-id"
"br-xxx-xxx-xxxxxxxx"
"br-xxx-xxx-xxxxxxxx"
"br-xxx-xxx-xxxxxxxx"
"br-xxx-xxx-xxxxxxxx"
"your-cloudflare-account-id"
"your-kv-namespace-id"
"your-hyperdrive-config-id"
"habitusnet"
"HabitusNet"
)
FOUND=0
for PATTERN in "${PATTERNS[@]}"; do
if grep -rn "$PATTERN" --include="*.md" --include="*.ts" --include="*.sql" --include="*.json" --include="*.yml" --include="*.yaml" . 2>/dev/null; then
echo "FOUND: $PATTERN"
FOUND=1
fi
done
if [ "$FOUND" -eq 1 ]; then
echo "ERROR: Private data detected. Cannot release."
exit 1
fi
- name: Extract changelog for version
id: changelog
run: |
VERSION="${VERSION}"
# Extract section for this version from CHANGELOG.md
if [ -f CHANGELOG.md ]; then
NOTES=$(awk "/^## \\[${VERSION}\\]/{found=1; next} /^## \\[/{if(found) exit} found{print}" CHANGELOG.md)
fi
if [ -z "$NOTES" ]; then
NOTES="Release ${TAG}"
fi
# Write to file for gh release
echo "$NOTES" > /tmp/release-notes.md
- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "$TAG" \
--title "$TAG" \
--notes-file /tmp/release-notes.md