Skip to content

Commit c6a8121

Browse files
committed
Add automatic beta release on master push
- Trigger release workflow on pushes to master branch and tags - Auto-generate beta versions with timestamp for master pushes - Publish tagged releases as 'latest' and master releases as 'beta' - Create GitHub releases with appropriate prerelease status - Maintain existing tag-based release functionality This enables automatic beta releases when PRs are merged while preserving manual stable releases via git tags.
1 parent b15aadf commit c6a8121

1 file changed

Lines changed: 33 additions & 4 deletions

File tree

.github/workflows/release.yml

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ name: Release
22

33
on:
44
push:
5+
branches:
6+
- master
57
tags:
68
- 'v*'
79

@@ -32,13 +34,35 @@ jobs:
3234
- name: Run tests
3335
run: npm run test:ci
3436

37+
- name: Determine release type and version
38+
id: release-info
39+
run: |
40+
if [[ $GITHUB_REF == refs/tags/* ]]; then
41+
# Tagged release
42+
echo "release_type=tagged" >> $GITHUB_OUTPUT
43+
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
44+
echo "npm_tag=latest" >> $GITHUB_OUTPUT
45+
echo "prerelease=false" >> $GITHUB_OUTPUT
46+
else
47+
# Auto release from master - use beta
48+
PACKAGE_VERSION=$(node -p "require('./package.json').version")
49+
BETA_VERSION="${PACKAGE_VERSION}-beta.$(date +%Y%m%d%H%M%S)"
50+
echo "release_type=auto" >> $GITHUB_OUTPUT
51+
echo "version=v${BETA_VERSION}" >> $GITHUB_OUTPUT
52+
echo "npm_tag=beta" >> $GITHUB_OUTPUT
53+
echo "prerelease=true" >> $GITHUB_OUTPUT
54+
55+
# Update package.json version for beta
56+
npm version $BETA_VERSION --no-git-tag-version
57+
fi
58+
3559
- name: Build package
3660
run: ./package.sh
3761

3862
- name: Publish to npm
3963
run: |
4064
cd package
41-
npm publish
65+
npm publish --tag ${{ steps.release-info.outputs.npm_tag }}
4266
env:
4367
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
4468

@@ -47,7 +71,12 @@ jobs:
4771
env:
4872
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4973
with:
50-
tag_name: ${{ github.ref }}
51-
release_name: Release ${{ github.ref }}
74+
tag_name: ${{ steps.release-info.outputs.version }}
75+
release_name: Release ${{ steps.release-info.outputs.version }}
76+
body: |
77+
${{ steps.release-info.outputs.release_type == 'auto' && '🧪 **Beta Release** - Automatically generated from latest master branch' || 'Stable release' }}
78+
79+
## Changes
80+
See the [full changelog](https://github.com/omar-dulaimi/prisma-class-validator-generator/compare/v5.0.0...${{ steps.release-info.outputs.version }}) for details.
5281
draft: false
53-
prerelease: false
82+
prerelease: ${{ steps.release-info.outputs.prerelease == 'true' }}

0 commit comments

Comments
 (0)