fix: setup script removed
Some checks failed
Release / release (push) Failing after 13s

This commit is contained in:
2025-05-28 16:25:48 +02:00
parent 6dff476e3c
commit c0648c7fc6

View File

@ -1,166 +0,0 @@
#!/bin/bash
set -e
echo "📦 Starte interaktive Einrichtung für semantic-release + Gitea (mit Gitea Workflow)"
# 1. Benutzer-Eingaben
read -p "🔗 Gitea API URL (z.B. https://gitea.example.com): " GITEA_API
read -p "👤 Gitea Benutzername: " GITEA_USER
read -p "📁 Repository-Name (z.B. meinprojekt): " GITEA_REPO
read -p "🔀 Hauptbranch (Standard: main): " BRANCH
BRANCH=${BRANCH:-main}
echo ""
echo "📁 Initialisiere npm-Projekt..."
npm init -y
echo "📥 Installiere Dev-Dependencies..."
npm install --save-dev \
commitizen \
cz-conventional-changelog \
semantic-release \
@semantic-release/git \
@semantic-release/changelog \
@semantic-release/commit-analyzer \
@semantic-release/release-notes-generator \
json
echo "🧠 Erstelle .czrc (wird ignoriert)"
cat > .czrc <<EOF
{
"path": "cz-conventional-changelog"
}
EOF
echo "🧠 Erstelle .releaserc.json (wird ignoriert)"
cat > .releaserc.json <<EOF
{
"branches": ["$BRANCH"],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@semantic-release/changelog",
{
"changelogFile": "CHANGELOG.md"
}
],
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md"],
"message": "chore(release): \${nextRelease.version} [skip ci]\\n\\n\${nextRelease.notes}"
}
]
]
}
EOF
echo "📄 Erweitere package.json (wird ignoriert)"
npx json -I -f package.json -e 'this.scripts={"commit":"git-cz","release":"semantic-release"}'
npx json -I -f package.json -e 'this.version="0.0.0"'
echo "📄 Erstelle CHANGELOG.md (wird ignoriert)"
touch CHANGELOG.md
echo "🧹 Erstelle .gitignore"
cat > .gitignore <<EOF
# Node & npm
node_modules/
package-lock.json
# Config & meta
.czrc
.releaserc.json
CHANGELOG.md
create-gitea-release.sh
package.json
package-lock.json
# IDEs / Editor
.vscode/
.idea/
.DS_Store
# Logs / system
npm-debug.log*
yarn-debug.log*
yarn-error.log*
EOF
echo "📤 Erstelle Gitea Release Script im Workflow-Ordner"
mkdir -p .gitea/workflows
cat > .gitea/workflows/create-gitea-release.sh <<EOF
#!/bin/bash
VERSION=\$(node -p "require('./package.json').version")
API="$GITEA_API/api/v1"
REPO="$GITEA_USER/$GITEA_REPO"
TOKEN="\${GITEA_TOKEN}"
CHANGELOG_BODY=\$(awk '/^## /{exit} {print}' CHANGELOG.md | sed ':a;N;\$!ba;s/\\n/\\\\n/g')
curl -X POST "\$API/repos/\$REPO/releases" \\
-H "Authorization: token \$TOKEN" \\
-H "Content-Type: application/json" \\
-d "{
\\\"tag_name\\\": \\\"v\$VERSION\\\",
\\\"name\\\": \\\"v\$VERSION\\\",
\\\"body\\\": \\\"\$CHANGELOG_BODY\\\",
\\\"draft\\\": false,
\\\"prerelease\\\": false
}"
EOF
chmod +x .gitea/workflows/create-gitea-release.sh
echo "📂 Erstelle Gitea Workflow (.gitea/workflows/release.yml)"
cat > .gitea/workflows/release.yml <<EOF
name: Release
on:
push:
branches:
- $BRANCH
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run semantic-release
run: npx semantic-release
- name: Create Gitea release
run: .gitea/workflows/create-gitea-release.sh
env:
GITEA_TOKEN: \${{ secrets.GITEA_TOKEN }}
EOF
echo ""
echo "✅ Einrichtung abgeschlossen. Nur Workflow-Dateien sind für Git relevant."
echo ""
echo "📦 Nächste Schritte:"
echo " - Commit mit: npm run commit"
echo " - Push auf '$BRANCH'"
echo " - In Gitea unter Settings → Secrets → Repository Secrets den GITEA_TOKEN anlegen"
echo " - Nach Push läuft der Workflow automatisch und erstellt Release + Tag"
echo ""
echo "💡 Zum manuellen Testen:"
echo " export GITEA_TOKEN=dein_api_token"
echo " npx semantic-release"
echo " .gitea/workflows/create-gitea-release.sh"