You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- name: GitHub-Release-Entwurf erstellen oder wiederverwenden
100
100
id: release
101
-
shell: bash
101
+
uses: actions/github-script@v9
102
102
env:
103
-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
104
-
run: |
105
-
cat > release-intro.md <<EOF
106
-
## Code Deck ${RELEASE_TAG}
107
-
108
-
Lokales Desktop-Dashboard zum Organisieren, Öffnen und Starten von Entwicklungsprojekten.
109
-
110
-
### Download
111
-
- **Windows:** `.msi` oder `-setup.exe`
112
-
- **macOS:** `.dmg` (Universal-Build für Intel und Apple Silicon)
113
-
- **Linux:** `.AppImage` oder `.deb`
114
-
115
-
> Hinweis: Die Builds sind derzeit nicht mit einem kostenpflichtigen Plattform-Zertifikat signiert. Windows SmartScreen oder macOS Gatekeeper können deshalb beim ersten Start nachfragen.
116
-
EOF
117
-
118
-
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
119
-
draft=$(gh api "repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.draft')
120
-
if [[ "$draft" != "true" ]]; then
121
-
echo "::error::Für ${RELEASE_TAG} existiert bereits ein veröffentlichter Release. Bitte verwende einen neuen Tag."
122
-
exit 1
123
-
fi
124
-
echo "Vorhandener Release-Entwurf wird wiederverwendet."
125
-
else
126
-
prerelease_args=()
127
-
if [[ "$RELEASE_TAG" == *-* ]]; then
128
-
prerelease_args+=(--prerelease)
129
-
fi
130
-
131
-
gh release create "$RELEASE_TAG" \
132
-
--draft \
133
-
--verify-tag \
134
-
--title "Code Deck ${RELEASE_TAG}" \
135
-
--generate-notes \
136
-
--notes-file release-intro.md \
137
-
"${prerelease_args[@]}"
138
-
fi
139
-
140
-
release_id=$(gh api "repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')
141
-
release_url=$(gh api "repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.html_url')
'Lokales Desktop-Dashboard zum Organisieren, Öffnen und Starten von Entwicklungsprojekten.',
116
+
'',
117
+
'### Downloads',
118
+
'- **Windows:** MSI oder Setup-EXE',
119
+
'- **macOS:** DMG als Universal-Build für Intel und Apple Silicon',
120
+
'- **Linux:** AppImage oder DEB',
121
+
'',
122
+
'### Installation',
123
+
'Lade unter Assets das passende Installationspaket herunter und starte es.',
124
+
'',
125
+
'> Die Builds sind aktuell nicht mit einem kostenpflichtigen Plattform-Zertifikat signiert. Windows SmartScreen oder macOS Gatekeeper können deshalb beim ersten Start eine Warnung anzeigen.'
126
+
].join('\n');
127
+
128
+
const releases = await github.paginate(
129
+
github.rest.repos.listReleases,
130
+
{ owner, repo, per_page: 100 }
131
+
);
132
+
133
+
let release = releases.find(item => item.tag_name === tag);
134
+
135
+
if (release && !release.draft) {
136
+
core.setFailed(`Für ${tag} existiert bereits ein veröffentlichter Release. Verwende einen neuen Tag.`);
0 commit comments