-
Notifications
You must be signed in to change notification settings - Fork 3
84 lines (73 loc) · 3.14 KB
/
Copy pathrelease.yml
File metadata and controls
84 lines (73 loc) · 3.14 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
name: Release To NuGet
run-name: Publishing Package Version ${{ github.event.inputs.Version }}
on:
workflow_dispatch:
inputs:
Version:
description: "This input field requires version in format: x.y.z, where x => major version, y => minor version and z => patch version"
required: true
PrereleaseSuffix:
description: "Optional prerelease suffix (e.g. dev1, dev2, dev3). Leave blank for none."
required: false
jobs:
create-release:
if: github.ref == 'refs/heads/main'
name: Creating release version ${{ github.event.inputs.Version }}
runs-on: ubuntu-22.04
environment: Production
steps:
- uses: actions/checkout@v3
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Pack as NuPkg
run: dotnet pack ./APIMatic.Core/APIMatic.Core.csproj -c release -p:PackageVersion=${{ github.event.inputs.Version }}
- name: Push To NuGet
run: dotnet nuget push ./APIMatic.Core/bin/release/APIMatic.Core.${{ github.event.inputs.Version }}.nupkg -k ${{ secrets.NUGET_API_KEY }} -s nuget.org
- name: Create Tag
id: tag_version
uses: mathieudutour/github-tag-action@v6.0
with:
github_token: ${{ secrets.TAGS_TOKEN }}
custom_tag: ${{ github.event.inputs.Version }}
tag_prefix: ""
- name: Create Release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.tag_version.outputs.new_tag }}
name: Release Version ${{ github.event.inputs.Version }}
body: ${{ steps.tag_version.outputs.changelog }}
- name: Send slack notification
id: slack
uses: slackapi/slack-github-action@v1.25.0
with:
channel-id: 'C012YFE3D6D'
slack-message: "core-lib-csharp release has been triggered!"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
prerelease:
if: github.ref != 'refs/heads/main'
name: Creating prerelease version ${{ github.event.inputs.Version }}-prelease${{ github.event.inputs.PrereleaseSuffix && format('-{0}', github.event.inputs.PrereleaseSuffix) || '' }}
runs-on: ubuntu-22.04
environment: Production
steps:
- uses: actions/checkout@v3
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Check Prerelease Suffix
run: |
if [ -z "${{ github.event.inputs.PrereleaseSuffix }}" ]; then
echo "Error: PrereleaseSuffix is required for prerelease job."
exit 1
fi
- name: Pack as NuPkg
run: |
SUFFIX="${{ github.event.inputs.PrereleaseSuffix }}"
dotnet pack ./APIMatic.Core/APIMatic.Core.csproj -c release -p:PackageVersion=${{ github.event.inputs.Version }}-prelease-$SUFFIX
- name: Push To NuGet
run: |
SUFFIX="${{ github.event.inputs.PrereleaseSuffix }}"
dotnet nuget push ./APIMatic.Core/bin/release/APIMatic.Core.${{ github.event.inputs.Version }}-prelease-$SUFFIX.nupkg -k ${{ secrets.NUGET_API_KEY }} -s nuget.org