-
Notifications
You must be signed in to change notification settings - Fork 2
138 lines (119 loc) · 4.88 KB
/
bump-version.yml
File metadata and controls
138 lines (119 loc) · 4.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
on:
pull_request:
branches: [ master ]
push:
branches: [ master ]
name: Create Release
jobs:
build:
name: Create Release
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
should-release: ${{ steps.confirm-release.outputs.test }}
branch: ${{ steps.get-branch.outputs.branch }}
version: ${{ steps.get-version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7
- name: Get version
id: get-version
run: echo "version=$(cat version)" >> $GITHUB_OUTPUT
- name: Get branch
id: get-branch
run: echo "branch=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_OUTPUT
- name: Confirm release
id: confirm-release
run: echo "test=$(git tag --list 'v${{ steps.get-version.outputs.version }}' | wc -l | sed s/\ //g)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: dotnet restore
- name: Build for publish
run: dotnet build --configuration Release --no-restore -p:PackageVersion=${{ steps.get-version.outputs.version }} -p:FileVersion=${{ steps.get-version.outputs.version }} -p:InformationalVersion=${{ steps.get-version.outputs.version }}
- name: Dotnet pack
run: dotnet pack -c release -p:PackageVersion=${{ steps.get-version.outputs.version }} -p:FileVersion=${{ steps.get-version.outputs.version }} -p:InformationalVersion=${{ steps.get-version.outputs.version }} --no-build --output nuget-packages
- name: Package will be released
if: ${{ steps.confirm-release.outputs.test == 0 }}
run: echo "Will release nuget package"
- name: Upload nuget packages
uses: actions/upload-artifact@v4
if: ${{ steps.get-branch.outputs.branch == 'master' && steps.confirm-release.outputs.test == 0 }}
with:
name: nuget-packages
path: nuget-packages/
retention-days: 1
- name: Install docfx
run: dotnet tool update -g docfx
- name: Build documentation
run: docfx docfx_project/docfx.json
- name: Deploy documentation to github pages
uses: JamesIves/github-pages-deploy-action@releases/v3
if: ${{ steps.get-branch.outputs.branch == 'master' && steps.confirm-release.outputs.test == 0 }}
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: docfx_project/_site
COMMIT_MESSAGE: Release ${{ github.ref }}
publish:
name: Create Release
runs-on: windows-latest
environment: CD
if: ${{ needs.build.outputs.branch == 'master' && needs.build.outputs.should-release == 0 }}
needs:
- build
steps:
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7
- name: Download nuget packages
uses: actions/download-artifact@v4
with:
name: nuget-packages
path: nuget-packages/
- name: Sign nuget packages
env:
CERTIFICATE_HOST: ${{ secrets.CODE_SIGNING_CERT_HOST }}
CERTIFICATE_HOST_API_KEY: ${{ secrets.CODE_SIGNING_CERT_HOST_API_KEY }}
CERTIFICATE_SHA1_HASH: ${{ secrets.CODE_SIGNING_CERT_SHA1_HASH }}
CLIENT_CERTIFICATE: ${{ secrets.CODE_SIGNING_CLIENT_CERT }}
CLIENT_CERTIFICATE_PASSWORD: ${{ secrets.CODE_SIGNING_CLIENT_CERT_PASSWORD }}
uses: cognitedata/code-sign-action/@v2
with:
path-to-binary: 'nuget-packages/'
- name: Build service manager
run: dotnet publish .\ServiceManager\ServiceManager.csproj -c Release
- name: Sign service manager
env:
CERTIFICATE_HOST: ${{ secrets.CODE_SIGNING_CERT_HOST }}
CERTIFICATE_HOST_API_KEY: ${{ secrets.CODE_SIGNING_CERT_HOST_API_KEY }}
CERTIFICATE_SHA1_HASH: ${{ secrets.CODE_SIGNING_CERT_SHA1_HASH }}
CLIENT_CERTIFICATE: ${{ secrets.CODE_SIGNING_CLIENT_CERT }}
CLIENT_CERTIFICATE_PASSWORD: ${{ secrets.CODE_SIGNING_CLIENT_CERT_PASSWORD }}
uses: cognitedata/code-sign-action@v2
with:
path-to-binary: .\ServiceManager\bin\Release\net4.8\win-x64\publish\ServiceManager.exe
- name: Push nuget packages
run: dotnet nuget push .\nuget-packages\*.nupkg -s https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate
continue-on-error: false
- name: Create tag
uses: rickstaa/action-create-tag@v1
id: "tag_create"
with:
tag: v${{ needs.build.outputs.version }}
tag_exists_error: true
message: Release v${{ needs.build.outputs.version }}
- name: Upload to github releases
uses: softprops/action-gh-release@v1
with:
files: |
ServiceManager/bin/Release/net4.8/win-x64/publish/ServiceManager.exe
tag_name: v${{ needs.build.outputs.version }}
name: Release v${{ needs.build.outputs.version }}
draft: false
prerelease: false