1+ name : Release
2+
3+ on :
4+ push :
5+ branches :
6+ - dev
7+ - main
8+
9+ jobs :
10+ release :
11+ name : Releasing
12+ runs-on : windows-latest
13+ steps :
14+ - name : Checkout repo
15+ uses : actions/checkout@v2
16+
17+ - uses : actions/setup-dotnet@v1
18+ with :
19+ dotnet-version : ' 6.0.x'
20+
21+ - uses : actions/setup-node@v2
22+ with :
23+ node-version : ' 16'
24+
25+ - name : Add plugin for conventional commits
26+ run : npm install conventional-changelog-conventionalcommits
27+ working-directory : ./.github/workflows
28+
29+ - name : Add plugin for executing bash commands
30+ run : npm install @semantic-release/exec -D
31+ working-directory : ./.github/workflows
32+
33+ - name : Dry Run Semantic to get next Version nummber
34+ working-directory : ./.github/workflows
35+ env :
36+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
37+ GIT_AUTHOR_NAME : pksorensen
38+ GIT_AUTHOR_EMAIL :
[email protected] 39+ run : |
40+ echo "RELEASE_VERSION=$((npx semantic-release --dry-run).Where({ $_ -like '*Release note*' }) | Out-String | Select-String '[0-9]+\.[0-9]+\.[0-9]+([-][a-zA-z]+[.][0-9]*)?' | % { $_.Matches } | % { $_.Value })" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
41+ - name : Print release verison
42+ run : echo ${env:RELEASE_VERSION}
43+
44+ - name : Cleaning
45+ run : dotnet clean --configuration Release
46+
47+ - name : Restore NuGet packages
48+ run : dotnet restore EAVFW.Extensions.Manifest.ManifestEnricherTool.sln
49+
50+ - name : Package Parser
51+ run : dotnet pack -c Release -p:PackageVersion=${env:RELEASE_VERSION} -o ./artifacts
52+ if : ${{ env.RELEASE_VERSION }}
53+
54+ - name : Release to GitHub and NuGet
55+ working-directory : .\\.github\\workflows
56+ env :
57+ CI_NUGET_API_KEY : ${{ secrets.CI_NUGET_API_KEY }}
58+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
59+ GIT_AUTHOR_NAME : pksorensen
60+ GIT_AUTHOR_EMAIL :
[email protected] 61+ run : npx semantic-release
0 commit comments