1+ name : Continuous Deployment
2+
3+ on :
4+ push :
5+ tags :
6+ - " *"
7+
8+ jobs :
9+ calculate-version :
10+ name : Calculate Version
11+ runs-on : ubuntu-latest
12+ outputs :
13+ semVer : ${{ steps.gitversion.outputs.semVer }}
14+ assemblySemVer : ${{ steps.gitversion.outputs.assemblySemVer }}
15+
16+ steps :
17+ 18+ with :
19+ fetch-depth : 0
20+
21+ - name : Install GitVersion
22+ uses :
gittools/actions/gitversion/[email protected] 23+ with :
24+ versionSpec : " 5.x"
25+
26+ - name : Determine Version
27+ id : gitversion
28+ uses :
gittools/actions/gitversion/[email protected] 29+ with :
30+ useConfigFile : true
31+ configFilePath : ./.github/version.yml
32+
33+ build :
34+ name : Build and Release
35+ runs-on : ubuntu-latest
36+ needs : calculate-version
37+ env :
38+ SEMVER : ${{ needs.calculate-version.outputs.semVer }}
39+ ZipName : SimpleLiveMap-${{ needs.calculate-version.outputs.semVer }}.zip
40+ ASSEMBLYSEMVER : ${{ needs.calculate-version.outputs.assemblySemVer }}
41+
42+ steps :
43+ 44+
45+ - name : Restore dependencies
46+ run : dotnet restore src/LiveMap.sln
47+
48+ - name : Build the solution
49+ run : dotnet build -c Release -o build/slm/server /p:Version=${{env.ASSEMBLYSEMVER}} src/LiveMap.sln
50+
51+ - uses : pnpm/action-setup@v4
52+ name : Install pnpm
53+ with :
54+ version : 9.5.0
55+ run_install : false
56+
57+ - name : Install Node.js
58+ uses : actions/setup-node@v4
59+ with :
60+ node-version : 20
61+ cache : ' pnpm'
62+ cache-dependency-path : ' src/web/pnpm-lock.yaml'
63+
64+ - name : Install dependencies
65+ run : pnpm install
66+ working-directory : src/web
67+
68+ - name : Build web
69+ run : pnpm run build
70+ working-directory : src/web
71+
72+ - name : Copy web files to build dir
73+ run : mkdir build/slm/wwwroot && cp -a src/web/dist/. build/slm/wwwroot
74+
75+ - name : Copy config files to build dir
76+ run : cp -a config/. build/slm/
77+
78+ - name : Copy assets to build dir
79+ run : unzip -o assets/assets.zip -d build/slm/wwwroot/
80+
81+ 82+ with :
83+ files : build/
84+ dest : ${{ env.ZipName }}
85+
86+ - name : Create release
87+ id : create_release
88+ 89+ env :
90+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
91+ with :
92+ tag_name : ${{ env.SEMVER }}
93+ release_name : ${{ env.SEMVER }}
94+ draft : false
95+ prerelease : false
96+
97+ - name : Update release asset
98+ id : upload-release-asset
99+ 100+ env :
101+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
102+ with :
103+ upload_url : ${{ steps.create_release.outputs.upload_url }}
104+ asset_path : ${{ env.ZipName }}
105+ asset_name : ${{ env.ZipName }}
106+ asset_content_type : application/zip
0 commit comments