on master help sign in
Embed release version in VS Code extension
ceeee0aiko
.github/workflows/release.yml+21−10
@@ -6,6 +6,19 @@ on:
6 workflow_dispatch:
6 workflow_dispatch:
7
7
8jobs:
8jobs:
9+ version:
10+ name: Compute version
11+ runs-on: ubuntu-latest
12+ outputs:
13+ version: ${{ steps.version.outputs.version }}
14+ steps:
15+ - id: version
16+ run: |
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"
21+
9 build:
22 build:
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:
62 vscode:
75 vscode:
63 name: Build VS Code extension
76 name: Build VS Code extension
64 runs-on: ubuntu-latest
77 runs-on: ubuntu-latest
78+ needs: version
65 steps:
79 steps:
66 - uses: actions/checkout@v4
80 - uses: actions/checkout@v4
67
81
@@ -69,6 +83,10 @@ jobs:
69 with:
83 with:
70 node-version: 20
84 node-version: 20
71
85
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
89+
72 - name: Build extension
90 - name: Build extension
73 working-directory: editors/vscode
91 working-directory: editors/vscode
74 run: |
92 run: |
@@ -84,7 +102,7 @@ jobs:
84
102
85 release:
103 release:
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:
96 with:
114 with:
97 path: artifacts
115 path: artifacts
98
116
99− - name: Calculate version
100− id: version
101− run: |
102− VERSION=$(date -u +'%Y.%m.%d.%H%M%S')
103− echo "version=$VERSION" >> $GITHUB_OUTPUT
104− echo "Version: $VERSION"
105−
106 - name: Prepare release assets
117 - name: Prepare release assets
107 run: |
118 run: |
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
121 with:
132 with:
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