1+ name : Release Workflow
2+
3+ on :
4+ push :
5+ branches :
6+ - ' release_test'
7+
8+ jobs :
9+ create-release :
10+ name : Create release
11+ runs-on : ubuntu-latest
12+ outputs :
13+ determined_version : ${{ steps.version_step.outputs.majorMinorPatch }}
14+ steps :
15+ - name : Checkout
16+ uses : actions/checkout@v4
17+ with :
18+ fetch-depth : 0
19+ - name : Setup GitVersion
20+ uses : gittools/actions/gitversion/setup@v3.0.0
21+ with :
22+ versionSpec : ' 5.12.0'
23+ - name : Determine Version
24+ id : version_step
25+ uses : gittools/actions/gitversion/execute@v3.0.0
26+ with :
27+ useConfigFile : true
28+ - name : Setup GitReleaseManager
29+ uses : gittools/actions/gitreleasemanager/setup@v3.0.0
30+ with :
31+ versionSpec : ' 0.18.x'
32+ - name : Create release with GitReleaseManager
33+ uses : gittools/actions/gitreleasemanager/create@v3.0.0
34+ with :
35+ token : ${{ secrets.GITHUB_TOKEN }}
36+ owner : ' Stepami'
37+ repository : ' hydrascript'
38+ milestone : ' v${{ steps.version_step.outputs.majorMinorPatch }}'
39+ name : ' v${{ steps.version_step.outputs.majorMinorPatch }}'
40+
41+ upload-release-assets :
42+ name : Upload release assets
43+ needs : create-release
44+ outputs :
45+ determined_version : ${{ needs.create-release.outputs.determined_version }}
46+ strategy :
47+ matrix :
48+ config :
49+ - os : ubuntu-latest
50+ rid : linux-x64
51+ - os : macos-12
52+ rid : osx-x64
53+ - os : macos-14
54+ rid : osx-arm64
55+ - os : windows-latest
56+ rid : win-x64
57+ runs-on : ${{ matrix.config.os }}
58+ steps :
59+ - name : Checkout
60+ uses : actions/checkout@v4
61+ - name : Setup .NET
62+ uses : actions/setup-dotnet@v4
63+ with :
64+ dotnet-version : 8.0.x
65+ - name : Setup GitReleaseManager
66+ uses : gittools/actions/gitreleasemanager/setup@v3.0.0
67+ with :
68+ versionSpec : ' 0.18.x'
69+ - name : Publish
70+ run : |
71+ mkdir output
72+ dotnet publish ./src/HydraScript/HydraScript.csproj -c Release -r ${{ matrix.config.rid }} -p:PublishSingleFile=true -p:DebugType=embedded -p:Version=${{ needs.create-release.outputs.determined_version }} --self-contained false -o ./output
73+ - name : Rename Executable
74+ run : mv ./output/HydraScript${{ matrix.config.rid == 'win-x64' && '.exe' || '' }} ./output/hydrascript_${{ matrix.config.rid }}${{ matrix.config.rid == 'win-x64' && '.exe' || '' }}
75+ - name : Add asset to a release with GitReleaseManager
76+ uses : gittools/actions/gitreleasemanager/addasset@v3.0.0
77+ with :
78+ token : ${{ secrets.GITHUB_TOKEN }}
79+ owner : ' Stepami'
80+ repository : ' hydrascript'
81+ milestone : ' v${{ needs.create-release.outputs.determined_version }}'
82+ assets : ./output/hydrascript_${{ matrix.config.rid }}${{ matrix.config.rid == 'win-x64' && '.exe' || '' }}
83+
84+ publish-release :
85+ name : Publish release
86+ runs-on : ubuntu-latest
87+ needs : upload-release-assets
88+ steps :
89+ - name : Setup GitReleaseManager
90+ uses : gittools/actions/gitreleasemanager/setup@v3.0.0
91+ with :
92+ versionSpec : ' 0.18.x'
93+ - name : Publish release with GitReleaseManager
94+ uses : gittools/actions/gitreleasemanager/publish@v3.0.0
95+ with :
96+ token : ${{ secrets.GITHUB_TOKEN }}
97+ owner : ' Stepami'
98+ repository : ' hydrascript'
99+ milestone : ' v${{ needs.upload-release-assets.outputs.determined_version }}'
100+ - name : Close release with GitReleaseManager
101+ uses : gittools/actions/gitreleasemanager/close@v3.0.0
102+ with :
103+ token : ${{ secrets.GITHUB_TOKEN }}
104+ owner : ' Stepami'
105+ repository : ' hydrascript'
106+ milestone : ' v${{ needs.upload-release-assets.outputs.determined_version }}'
0 commit comments