@@ -6,6 +6,19 @@ on:
6 workflow_dispatch:
6 workflow_dispatch:
10+ name: Compute version
11+ runs-on: ubuntu-latest
13+ version: ${{ steps.version.outputs.version }}
17+ # Semver-compatible calver: YYYY.M.DHHMMSS (no leading zeros, always 3 parts)
18+ VERSION=$(date -u +'%Y.%-m.%-d%H%M%S')
19+ echo "version=$VERSION" >> $GITHUB_OUTPUT
20+ echo "Version: $VERSION"
10 name: Build ${{ matrix.target }}
23 name: Build ${{ matrix.target }}
11 runs-on: ${{ matrix.os }}
24 runs-on: ${{ matrix.os }}
@@ -62,6 +75,7 @@ jobs:
63 name: Build VS Code extension
76 name: Build VS Code extension
64 runs-on: ubuntu-latest
77 runs-on: ubuntu-latest
66 - uses: actions/checkout@v4
80 - uses: actions/checkout@v4
@@ -69,6 +83,10 @@ jobs:
70 node-version: 20
84 node-version: 20
86+ - name: Set extension version
87+ working-directory: editors/vscode
88+ run: npm version ${{ needs.version.outputs.version }} --no-git-tag-version --allow-same-version
72 - name: Build extension
90 - name: Build extension
73 working-directory: editors/vscode
91 working-directory: editors/vscode
@@ -84,7 +102,7 @@ jobs:
86 name: Create Release
104 name: Create Release
87− needs: [build, vscode]
105+ needs: [version, build, vscode]
88 runs-on: ubuntu-latest
106 runs-on: ubuntu-latest
89 permissions:
107 permissions:
90 contents: write
108 contents: write
@@ -96,13 +114,6 @@ jobs:
97 path: artifacts
115 path: artifacts
99− - name: Calculate version
102− VERSION=$(date -u +'%Y.%m.%d.%H%M%S')
103− echo "version=$VERSION" >> $GITHUB_OUTPUT
104− echo "Version: $VERSION"
106 - name: Prepare release assets
117 - name: Prepare release assets
108 mkdir -p release
119 mkdir -p release
@@ -119,8 +130,8 @@ jobs:
119 - name: Create Release
130 - name: Create Release
120 uses: softprops/action-gh-release@v1
131 uses: softprops/action-gh-release@v1
122− tag_name: v${{ steps.version.outputs.version }}
133+ tag_name: v${{ needs.version.outputs.version }}
123− name: Release ${{ steps.version.outputs.version }}
134+ name: Release ${{ needs.version.outputs.version }}
124 files: release/*
135 files: release/*
125 draft: false
136 draft: false
126 prerelease: false
137 prerelease: false