@@ -3,7 +3,8 @@ name: CI/CD
33on :
44 push :
55 branches :
6- - ' **'
6+ - " **"
7+ pull_request :
78
89permissions :
910 contents : write
@@ -29,10 +30,11 @@ jobs:
2930 runs-on : windows-latest
3031
3132 outputs :
32- semver : ${{ steps.version.outputs.semver }}
33- tag : ${{ steps.version.outputs.tag }}
33+ semver : ${{ steps.version.outputs.semver }}
34+ assembly_ver : ${{ steps.version.outputs.assembly_ver }}
35+ tag : ${{ steps.version.outputs.tag }}
3436 is_prerelease : ${{ steps.version.outputs.is_prerelease }}
35- zip_name : ${{ steps.version.outputs.zip_name }}
37+ zip_name : ${{ steps.version.outputs.zip_name }}
3638
3739 steps :
3840 - name : Checkout
4446 if : github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development'
4547 uses : gittools/actions/gitversion/setup@v3.0.0
4648 with :
47- versionSpec : ' 5.x'
49+ versionSpec : " 5.x"
4850
4951 - name : Execute GitVersion
5052 if : github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development'
@@ -57,24 +59,28 @@ jobs:
5759 run : |
5860 if [ "$GITHUB_REF" = "refs/heads/master" ]; then
5961 SEMVER="${{ steps.gitversion.outputs.semVer }}"
62+ ASSEMBLY_VER="${{ steps.gitversion.outputs.assemblySemVer }}"
6063 TAG="v$SEMVER"
6164 IS_PRERELEASE="false"
6265 elif [ "$GITHUB_REF" = "refs/heads/development" ]; then
6366 MMP="${{ steps.gitversion.outputs.majorMinorPatch }}"
6467 SHORT_SHA="${{ steps.gitversion.outputs.shortSha }}"
65- SEMVER="${MMP}-dev-${SHORT_SHA}"
68+ SEMVER="${MMP}-dev-${{ github.run_number }}-${SHORT_SHA}"
69+ ASSEMBLY_VER="${{ steps.gitversion.outputs.assemblySemVer }}"
6670 TAG="dev-v${SEMVER}"
6771 IS_PRERELEASE="true"
6872 else
6973 SEMVER=""
74+ ASSEMBLY_VER=""
7075 TAG=""
7176 IS_PRERELEASE="false"
7277 fi
7378 ZIP_NAME="vMenu-${SEMVER:-dev-${{ github.run_number }}}.zip"
74- echo "semver=$SEMVER" >> "$GITHUB_OUTPUT"
75- echo "tag=$TAG" >> "$GITHUB_OUTPUT"
79+ echo "semver=$SEMVER" >> "$GITHUB_OUTPUT"
80+ echo "assembly_ver=$ASSEMBLY_VER" >> "$GITHUB_OUTPUT"
81+ echo "tag=$TAG" >> "$GITHUB_OUTPUT"
7682 echo "is_prerelease=$IS_PRERELEASE" >> "$GITHUB_OUTPUT"
77- echo "zip_name=$ZIP_NAME" >> "$GITHUB_OUTPUT"
83+ echo "zip_name=$ZIP_NAME" >> "$GITHUB_OUTPUT"
7884
7985 # ============================================================
8086 # BUILD — runs on every branch
@@ -94,12 +100,22 @@ jobs:
94100 run : dotnet restore vMenu.sln
95101
96102 - name : Build
97- run : dotnet build vMenu.sln -c Release --no-restore
103+ shell : bash
104+ run : |
105+ SEMVER="${{ needs.version.outputs.semver }}"
106+ ASSEMBLY_VER="${{ needs.version.outputs.assembly_ver }}"
107+ if [ -n "$SEMVER" ] && [ -n "$ASSEMBLY_VER" ]; then
108+ dotnet build vMenu.sln -c Release --no-restore \
109+ -p:Version="$SEMVER" \
110+ -p:AssemblyVersion="$ASSEMBLY_VER" \
111+ -p:FileVersion="$ASSEMBLY_VER"
112+ else
113+ dotnet build vMenu.sln -c Release --no-restore
114+ fi
98115
99- - name : Download fxmanifest.lua
116+ - name : Copy fxmanifest.lua
100117 shell : pwsh
101- run : |
102- Invoke-WebRequest -OutFile 'build/vMenu/fxmanifest.lua' 'https://vespura.com/vmenu/fxmanifest.lua'
118+ run : Copy-Item 'assets/fxmanifest.lua' 'build/vMenu/fxmanifest.lua' -Force
103119
104120 - name : Inject version into fxmanifest.lua
105121 shell : pwsh
@@ -157,9 +173,9 @@ jobs:
157173 run : |
158174 LAST_TAG=$(git tag --sort=-version:refname | grep -v '^dev-' | head -n 1)
159175 if [ -n "$LAST_TAG" ]; then
160- git log "$LAST_TAG..HEAD" --pretty=format:"- %s" --no-merges > changelog.txt
176+ git log "$LAST_TAG..HEAD" --pretty=format:'- `%h` (%an) %s' > changelog.txt
161177 else
162- git log --pretty=format:"- %s" --no-merges > changelog.txt
178+ git log --pretty=format:'- `%h` (%an) %s' > changelog.txt
163179 fi
164180 echo "Changelog since: ${LAST_TAG:-<beginning>}"
165181 cat changelog.txt
@@ -184,22 +200,34 @@ jobs:
184200 TAG="${{ needs.version.outputs.tag }}"
185201 IS_PRERELEASE="${{ needs.version.outputs.is_prerelease }}"
186202
187- {
188- echo "vMenu release v${VERSION}."
189- echo ""
190- echo "## Changes"
191- cat changelog.txt
192- } > release_notes.md
203+ if [ "$IS_PRERELEASE" = "true" ]; then
204+ {
205+ echo "vMenu pre-release v${VERSION}."
206+ echo ""
207+ echo "<details><summary>Changes since last full version release</summary>"
208+ echo ""
209+ cat changelog.txt
210+ echo ""
211+ echo "</details>"
212+ } > release_notes.md
213+ else
214+ {
215+ echo "vMenu release v${VERSION}."
216+ echo ""
217+ echo "## Changes"
218+ cat changelog.txt
219+ } > release_notes.md
220+ fi
193221
194- PRERELEASE_FLAG =""
222+ EXTRA_FLAGS =""
195223 if [ "$IS_PRERELEASE" = "true" ]; then
196- PRERELEASE_FLAG ="--prerelease"
224+ EXTRA_FLAGS ="--prerelease --draft "
197225 fi
198226
199227 RELEASE_URL=$(gh release create "$TAG" \
200228 --title "vMenu $VERSION" \
201229 --notes-file release_notes.md \
202- $PRERELEASE_FLAG \
230+ $EXTRA_FLAGS \
203231 "release-assets/${{ needs.version.outputs.zip_name }}")
204232
205233 echo "release_url=$RELEASE_URL" >> "$GITHUB_OUTPUT"
0 commit comments