Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit d5f8d4e

Browse files
committed
feat: update workflows to use Node.js tags and improve release process (v0.4.2)
1 parent 473cf9a commit d5f8d4e

5 files changed

Lines changed: 52 additions & 13 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
strategy:
1212
matrix:
1313
os: [macos-latest, ubuntu-latest, windows-latest]
14-
node-version: [18.x, 20.x]
14+
node-version: ['lts/*', 'latest']
1515
runs-on: ${{ matrix.os }}
1616

1717
steps:
@@ -52,7 +52,7 @@ jobs:
5252
- name: Setup Node.js
5353
uses: actions/setup-node@v5
5454
with:
55-
node-version: '20.x'
55+
node-version: 'latest'
5656
cache: 'npm'
5757

5858
- name: Install dependencies

.github/workflows/code-quality.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup Node.js
1818
uses: actions/setup-node@v5
1919
with:
20-
node-version: '20.x'
20+
node-version: 'latest'
2121
cache: 'npm'
2222

2323
- name: Install dependencies
@@ -39,7 +39,7 @@ jobs:
3939
- name: Setup Node.js
4040
uses: actions/setup-node@v5
4141
with:
42-
node-version: '20.x'
42+
node-version: 'latest'
4343
cache: 'npm'
4444

4545
- name: Install dependencies

.github/workflows/release.yml

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Setup Node.js
1717
uses: actions/setup-node@v5
1818
with:
19-
node-version: '20.x'
19+
node-version: 'lts/*'
2020
cache: 'npm'
2121

2222
- name: Install dependencies
@@ -33,22 +33,38 @@ jobs:
3333
3434
- name: Get version from tag
3535
id: get_version
36-
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
36+
run: |
37+
VERSION=${GITHUB_REF#refs/tags/v}
38+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
39+
echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
40+
41+
- name: Extract changelog for version
42+
id: changelog
43+
run: |
44+
VERSION=${GITHUB_REF#refs/tags/v}
45+
# Extract changelog section for this version
46+
sed -n "/## \[$VERSION\]/,/## \[/p" CHANGELOG.md | sed '$d' > release_notes.md
47+
if [ ! -s release_notes.md ]; then
48+
echo "No changelog found for version $VERSION"
49+
echo "# Release $VERSION" > release_notes.md
50+
echo "See CHANGELOG.md for details." >> release_notes.md
51+
fi
3752
3853
- name: Create GitHub Release
39-
uses: softprops/action-gh-release@v2
54+
uses: ncipollo/release-action@v1
4055
with:
41-
files: '*.vsix'
42-
generate_release_notes: true
56+
artifacts: '*.vsix'
57+
bodyFile: 'release_notes.md'
4358
draft: false
4459
prerelease: false
45-
env:
46-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60+
name: 'Release ${{ steps.get_version.outputs.TAG }}'
61+
tag: ${{ steps.get_version.outputs.TAG }}
62+
token: ${{ secrets.GITHUB_TOKEN }}
4763

4864
# Publishing to marketplaces requires secrets to be configured
4965
# VSCE_PAT and OVSX_PAT need to be added as repository secrets
5066
# Uncomment and configure these steps when ready to publish
51-
67+
5268
# - name: Publish to VS Code Marketplace
5369
# run: npx @vscode/vsce publish --pat ${{ secrets.VSCE_PAT }}
5470
# if: secrets.VSCE_PAT != null

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.4.2] - 2025-10-01
11+
12+
### Changed
13+
14+
- **GitHub Actions**: Updated workflows to use dynamic Node.js version tags
15+
- CI tests now use `lts/*` and `latest` instead of specific versions (20.x, 22.x)
16+
- Release workflow uses `lts/*` for stability instead of latest
17+
- Automatic adaptation to new Node.js versions without manual updates
18+
19+
### Improved
20+
21+
- **Release Process**: Enhanced GitHub release workflow with custom changelog extraction
22+
- Automatic extraction of version-specific changelog content for releases
23+
- Improved version handling and release naming
24+
- Better integration with repository changelog structure
25+
26+
### Technical Details
27+
28+
- Node.js version management now future-proof with semantic tags
29+
- Release workflow only triggers on tag pushes (v*.*.*) for precise control
30+
- Custom changelog parsing for meaningful release notes
31+
- Maintained compatibility across all supported platforms (macOS, Ubuntu, Windows)
32+
1033
## [0.4.1] - 2025-10-01
1134

1235
### Added

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-ddev-phpstan",
33
"displayName": "DDEV PHPStan",
44
"description": "PHP static analysis with PHPStan in DDEV containers for VS Code",
5-
"version": "0.4.1",
5+
"version": "0.4.2",
66
"publisher": "OpenForgeProject",
77
"license": "GPL-3.0",
88
"icon": "assets/icon.png",

0 commit comments

Comments
 (0)