mirror of
https://github.com/antebudimir/eslint-plugin-vanilla-extract.git
synced 2025-12-31 08:53:33 +00:00
chore 🔧: improve GitHub Actions workflow for release creation
- Fix workflow triggers to support both manual runs and tag pushes - Add conditional logic to handle different event types - Skip already existing releases to prevent errors - Add completion messages for better feedback - Improve error handling for the release creation process
This commit is contained in:
parent
1092b47f1c
commit
d2b62d3995
4 changed files with 45 additions and 8 deletions
43
.github/workflows/create-releases.yml
vendored
43
.github/workflows/create-releases.yml
vendored
|
|
@ -2,6 +2,9 @@ name: Create Releases from Tags
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
create-releases:
|
create-releases:
|
||||||
|
|
@ -15,10 +18,9 @@ jobs:
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
# Get all tags sorted by version
|
if [[ "${{ github.event_name }}" == "push" && "${{ github.ref_type }}" == "tag" ]]; then
|
||||||
TAGS=$(git tag -l | sort -V)
|
# For tag push events, only create release for the pushed tag
|
||||||
|
TAG="${{ github.ref_name }}"
|
||||||
for TAG in $TAGS; do
|
|
||||||
VERSION=${TAG#v} # Remove 'v' prefix
|
VERSION=${TAG#v} # Remove 'v' prefix
|
||||||
|
|
||||||
# Extract changelog entry for this version
|
# Extract changelog entry for this version
|
||||||
|
|
@ -29,4 +31,35 @@ jobs:
|
||||||
--title "Release $TAG" \
|
--title "Release $TAG" \
|
||||||
--notes "$BODY" \
|
--notes "$BODY" \
|
||||||
--repo ${{ github.repository }}
|
--repo ${{ github.repository }}
|
||||||
done
|
|
||||||
|
echo "✅ Successfully created release for $TAG"
|
||||||
|
else
|
||||||
|
# For manual workflow runs, check each tag
|
||||||
|
# Get all tags sorted by version
|
||||||
|
TAGS=$(git tag -l | sort -V)
|
||||||
|
|
||||||
|
for TAG in $TAGS; do
|
||||||
|
VERSION=${TAG#v} # Remove 'v' prefix
|
||||||
|
|
||||||
|
# Check if release already exists
|
||||||
|
if ! gh release view $TAG --repo ${{ github.repository }} &>/dev/null; then
|
||||||
|
# Extract changelog entry for this version
|
||||||
|
BODY=$(sed -n "/## \[$VERSION\]/,/## \[/p" CHANGELOG.md | sed '$d')
|
||||||
|
|
||||||
|
# Create GitHub release
|
||||||
|
gh release create $TAG \
|
||||||
|
--title "Release $TAG" \
|
||||||
|
--notes "$BODY" \
|
||||||
|
--repo ${{ github.repository }}
|
||||||
|
|
||||||
|
echo "Created release for $TAG"
|
||||||
|
else
|
||||||
|
echo "Release for $TAG already exists, skipping"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "🎉 Workflow completed successfully! All releases have been processed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Completion Message
|
||||||
|
run: echo "🚀 Release creation process has finished!"
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,13 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.4.4] - 2025-03-10
|
||||||
|
|
||||||
|
- Improve GitHub Actions workflow for release creation ()
|
||||||
|
|
||||||
## [1.4.3] - 2025-03-10
|
## [1.4.3] - 2025-03-10
|
||||||
|
|
||||||
- Add coverage for shared utility functions ()
|
- Add coverage for shared utility functions (1092b47)
|
||||||
|
|
||||||
## [1.4.2] - 2025-03-09
|
## [1.4.2] - 2025-03-09
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@antebudimir/eslint-plugin-vanilla-extract",
|
"name": "@antebudimir/eslint-plugin-vanilla-extract",
|
||||||
"version": "1.4.3",
|
"version": "1.4.4",
|
||||||
"description": "ESLint plugin for enforcing best practices in vanilla-extract CSS styles, including CSS property ordering and additional linting rules.",
|
"description": "ESLint plugin for enforcing best practices in vanilla-extract CSS styles, including CSS property ordering and additional linting rules.",
|
||||||
"author": "Ante Budimir",
|
"author": "Ante Budimir",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import customOrderRule from './css-rules/custom-order/rule-definition.js';
|
||||||
export const vanillaExtract = {
|
export const vanillaExtract = {
|
||||||
meta: {
|
meta: {
|
||||||
name: '@antebudimir/eslint-plugin-vanilla-extract',
|
name: '@antebudimir/eslint-plugin-vanilla-extract',
|
||||||
version: '1.4.3',
|
version: '1.4.4',
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
'alphabetical-order': alphabeticalOrderRule,
|
'alphabetical-order': alphabeticalOrderRule,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue