@@ -26,12 +26,48 @@ jobs:
2626 - name : Checkout repository
2727 uses : actions/checkout@v4
2828
29+ - name : Get version from tag
30+ id : version
31+ shell : bash
32+ run : |
33+ VERSION=${GITHUB_REF#refs/tags/v}
34+ echo "version=$VERSION" >> $GITHUB_OUTPUT
35+ echo "Building version: $VERSION"
36+
2937 - name : Setup Node.js
3038 uses : actions/setup-node@v4
3139 with :
3240 node-version : 20
3341 cache : ' npm'
3442
43+ # Update version in package.json files
44+ - name : Update version in package.json (Unix)
45+ if : runner.os != 'Windows'
46+ run : |
47+ VERSION=${{ steps.version.outputs.version }}
48+ # Update root package.json
49+ sed -i.bak "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" package.json
50+ # Update server package.json
51+ sed -i.bak "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" server/package.json
52+ # Update protocol package.json
53+ sed -i.bak "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" packages/protocol/package.json
54+ # Update desktop executor package.json
55+ sed -i.bak "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" executors/desktop/package.json
56+ # Cleanup backup files
57+ find . -name "*.bak" -delete
58+
59+ - name : Update version in package.json (Windows)
60+ if : runner.os == 'Windows'
61+ shell : pwsh
62+ run : |
63+ $version = "${{ steps.version.outputs.version }}"
64+ $files = @("package.json", "server/package.json", "packages/protocol/package.json", "executors/desktop/package.json")
65+ foreach ($file in $files) {
66+ $content = Get-Content $file -Raw
67+ $content = $content -replace '"version": ".*?"', "`"version`": `"$version`""
68+ Set-Content $file $content -NoNewline
69+ }
70+
3571 # Linux dependencies for robotjs
3672 - name : Install Linux dependencies
3773 if : runner.os == 'Linux'
@@ -47,13 +83,15 @@ jobs:
4783
4884 # Package server
4985 - name : Package server
86+ shell : bash
5087 run : |
5188 mkdir -p dist/server
5289 cp -r server/dist dist/server/
5390 cp server/package.json dist/server/
5491
5592 # Package desktop executor
5693 - name : Package desktop executor
94+ shell : bash
5795 run : |
5896 mkdir -p dist/desktop
5997 cp -r executors/desktop/dist dist/desktop/
@@ -63,20 +101,22 @@ jobs:
63101 - name : Create archive (Unix)
64102 if : runner.os != 'Windows'
65103 run : |
104+ VERSION=${{ steps.version.outputs.version }}
66105 cd dist
67- tar -czvf wire-agent-${{ matrix.platform }}.tar.gz server desktop
106+ tar -czvf wire-agent-${VERSION}-${ { matrix.platform }}.tar.gz server desktop
68107
69108 - name : Create archive (Windows)
70109 if : runner.os == 'Windows'
71110 run : |
111+ $version = "${{ steps.version.outputs.version }}"
72112 cd dist
73- Compress-Archive -Path server, desktop -DestinationPath wire-agent-${{ matrix.platform }}.zip
113+ Compress-Archive -Path server, desktop -DestinationPath " wire-agent-${version}-${{ matrix.platform }}.zip"
74114
75115 # Upload artifacts
76116 - name : Upload artifacts
77117 uses : actions/upload-artifact@v4
78118 with :
79- name : wire-agent-${{ matrix.platform }}
119+ name : wire-agent-${{ steps.version.outputs.version }}-${{ matrix.platform }}
80120 path : |
81121 dist/wire-agent-*.tar.gz
82122 dist/wire-agent-*.zip
0 commit comments