Skip to content

Commit 21015e9

Browse files
committed
Merge branch 'release/swagger-1.6.0' into dev
2 parents 7541f04 + 625f23f commit 21015e9

File tree

2 files changed

+182
-78
lines changed

2 files changed

+182
-78
lines changed

.github/workflows/release-all.yaml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
name: Release NuGet
2+
3+
on:
4+
push:
5+
branches:
6+
- release/appsettings-*
7+
- release/configjson-*
8+
- release/di-*
9+
- release/swagger-*
10+
11+
jobs:
12+
build_test_package_release:
13+
name: Build, test, package and release
14+
strategy:
15+
matrix:
16+
os: [ 'windows-latest' ]
17+
dotnet: [ '3.1.301' ]
18+
19+
runs-on: ${{ matrix.os }}
20+
21+
steps:
22+
# - name: Check event payload
23+
# shell: pwsh
24+
# run: |
25+
# echo ${{ toJSON(github.event) }}
26+
27+
- name: Set release module and version
28+
id: release
29+
shell: pwsh
30+
run: |
31+
$branch = "${{ github.event.ref }}" -replace "refs/heads/release/", ""
32+
$segments = $branch -split "-"
33+
$module = $segments[0]
34+
$version = $segments[1]
35+
36+
# echo "::set-env name=RELEASE_MODULE::$module"
37+
# echo "::set-env name=RELEASE_VERSION::$version"
38+
39+
echo "::set-output name=module::$module"
40+
echo "::set-output name=version::$version"
41+
42+
- name: Check release module and version
43+
shell: pwsh
44+
run: |
45+
# echo "env: $env:RELEASE_MODULE"
46+
# echo "env: $env:RELEASE_VERSION"
47+
48+
echo "output: ${{ steps.release.outputs.module }}"
49+
echo "output: ${{ steps.release.outputs.version }}"
50+
51+
- name: Checkout the repository
52+
uses: actions/checkout@v2
53+
54+
- name: Setup .NET SDK
55+
uses: actions/setup-dotnet@v1
56+
with:
57+
dotnet-version: ${{ matrix.dotnet }}
58+
59+
- name: Add MSBuild to PATH
60+
uses: microsoft/[email protected]
61+
62+
- name: Restore NuGet packages
63+
shell: pwsh
64+
run: |
65+
dir
66+
dotnet restore .
67+
68+
- name: Build solution
69+
shell: pwsh
70+
run: |
71+
dir
72+
msbuild . /p:Configuration=Release /p:Version=${{ steps.release.outputs.version }} /p:Verbosity=minimal
73+
74+
- name: Test solution
75+
shell: pwsh
76+
run: |
77+
dir
78+
dotnet test . -c Release
79+
80+
- name: List Package for AppSettings
81+
if: steps.release.outputs.module == 'appsettings'
82+
shell: pwsh
83+
run: |
84+
$package = Get-ChildItem -Path ./src/*.AppSettings -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
85+
$path = $package[0].FullName
86+
$name = $package[0].Name
87+
88+
echo "::set-env name=PACKAGE_PATH::$path"
89+
echo "::set-env name=PACKAGE_NAME::$name"
90+
91+
- name: List Package for Configuration.Json
92+
if: steps.release.outputs.module == 'configjson'
93+
shell: pwsh
94+
run: |
95+
$package = Get-ChildItem -Path ./src/*.Json -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
96+
$path = $package[0].FullName
97+
$name = $package[0].Name
98+
99+
echo "::set-env name=PACKAGE_PATH::$path"
100+
echo "::set-env name=PACKAGE_NAME::$name"
101+
102+
- name: List Package for DependencyInjection
103+
if: steps.release.outputs.module == 'di'
104+
shell: pwsh
105+
run: |
106+
$package = Get-ChildItem -Path ./src/*.DependencyInjection -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
107+
$path = $package[0].FullName
108+
$name = $package[0].Name
109+
110+
echo "::set-env name=PACKAGE_PATH::$path"
111+
echo "::set-env name=PACKAGE_NAME::$name"
112+
113+
- name: List Package for OpenApi
114+
if: steps.release.outputs.module == 'swagger'
115+
shell: pwsh
116+
run: |
117+
$package = Get-ChildItem -Path ./src/*.OpenApi -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
118+
$path = $package[0].FullName
119+
$name = $package[0].Name
120+
121+
echo "::set-env name=PACKAGE_PATH::$path"
122+
echo "::set-env name=PACKAGE_NAME::$name"
123+
124+
- name: Check package path and name
125+
id: package
126+
shell: pwsh
127+
run: |
128+
echo "package-path: $env:PACKAGE_PATH"
129+
echo "package-name: $env:PACKAGE_NAME"
130+
131+
echo "::set-output name=path::$env:PACKAGE_PATH"
132+
echo "::set-output name=name::$env:PACKAGE_NAME"
133+
134+
- name: Create Release to GitHub
135+
id: ghrelease
136+
uses: actions/create-release@v1
137+
env:
138+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
139+
with:
140+
tag_name: "${{ steps.release.outputs.module }}-${{ steps.release.outputs.version }}"
141+
release_name: Release "${{ steps.release.outputs.module }}-v${{ steps.release.outputs.version }}"
142+
draft: false
143+
prerelease: false
144+
145+
- name: Upload NuGet package to GitHub
146+
uses: actions/upload-release-asset@v1
147+
env:
148+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
149+
with:
150+
upload_url: ${{ steps.ghrelease.outputs.upload_url }}
151+
asset_path: ${{ steps.package.outputs.path }}
152+
asset_name: ${{ steps.package.outputs.name }}
153+
asset_content_type: application/octet-stream
154+
155+
- name: Release to NuGet
156+
shell: pwsh
157+
run: |
158+
dotnet nuget push ${{ steps.package.outputs.path }} --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_API_KEY }}
Lines changed: 24 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
name: Release
1+
name: Release CLI
22

33
on:
44
push:
55
branches:
6-
- release/*
6+
- release/cli-*
77

88
jobs:
9-
build_test_package:
9+
build_test_package_release:
1010
name: Build, test, package and release
1111
strategy:
1212
matrix:
@@ -39,14 +39,14 @@ jobs:
3939
echo "::set-output name=module::$module"
4040
echo "::set-output name=version::$version"
4141
42-
# - name: Check release module and version
43-
# shell: pwsh
44-
# run: |
45-
# # echo "env: $env:RELEASE_MODULE"
46-
# # echo "env: $env:RELEASE_VERSION"
42+
- name: Check release module and version
43+
shell: pwsh
44+
run: |
45+
# echo "env: $env:RELEASE_MODULE"
46+
# echo "env: $env:RELEASE_VERSION"
4747
48-
# echo "output: ${{ steps.release.outputs.module }}"
49-
# echo "output: ${{ steps.release.outputs.version }}"
48+
echo "output: ${{ steps.release.outputs.module }}"
49+
echo "output: ${{ steps.release.outputs.version }}"
5050
5151
- name: Checkout the repository
5252
uses: actions/checkout@v2
@@ -57,91 +57,52 @@ jobs:
5757
# node-version: ${{ matrix.node }}
5858

5959
- name: Setup .NET SDK
60+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
6061
uses: actions/setup-dotnet@v1
6162
with:
6263
dotnet-version: ${{ matrix.dotnet }}
6364

6465
- name: Add MSBuild to PATH
66+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
6567
uses: microsoft/[email protected]
6668

6769
- name: Restore NuGet packages
70+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
6871
shell: pwsh
6972
run: |
7073
dir
7174
dotnet restore .
7275
7376
- name: Build solution
77+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
7478
shell: pwsh
7579
run: |
7680
dir
7781
msbuild . /p:Configuration=Release /p:Version=${{ steps.release.outputs.version }} /p:Verbosity=minimal
7882
7983
- name: Test solution
84+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
8085
shell: pwsh
8186
run: |
8287
dir
8388
dotnet test . -c Release
8489
8590
- name: Publish CLI for .NET Framework
86-
if: matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64'
91+
if: steps.release.outputs.module == 'cli' && matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64'
8792
shell: pwsh
8893
run: |
8994
dir
90-
dotnet publish ./src/Aliencube.AzureFunctions.Extensions.OpenApi.CLI -c Release -f ${{ matrix.targetFramework }} -r ${{ maxtrix.runtime }}
95+
dotnet publish ./src/Aliencube.AzureFunctions.Extensions.OpenApi.CLI -c Release -f ${{ matrix.targetFramework }} -r ${{ matrix.runtime }}
9196
9297
- name: Publish CLI for .NET Core
93-
if: matrix.targetFramework == 'netcoreapp3.1'
98+
if: steps.release.outputs.module == 'cli' && matrix.targetFramework == 'netcoreapp3.1'
9499
shell: pwsh
95100
run: |
96101
dir
97-
dotnet publish ./src/Aliencube.AzureFunctions.Extensions.OpenApi.CLI -c Release -f ${{ matrix.targetFramework }} -p:PublishSingleFile=true --self-contained true -r ${{ maxtrix.runtime }}
98-
99-
- name: List Package for AppSettings
100-
if: steps.release.outputs.module == 'appsettings'
101-
shell: pwsh
102-
run: |
103-
$package = Get-ChildItem -Path ./src/*.AppSettings -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
104-
$path = $package[0].FullName
105-
$name = $package[0].Name
106-
107-
echo "::set-env name=PACKAGE_PATH::$path"
108-
echo "::set-env name=PACKAGE_NAME::$name"
109-
110-
- name: List Package for Configuration.Json
111-
if: steps.release.outputs.module == 'configjson'
112-
shell: pwsh
113-
run: |
114-
$package = Get-ChildItem -Path ./src/*.Json -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
115-
$path = $package[0].FullName
116-
$name = $package[0].Name
117-
118-
echo "::set-env name=PACKAGE_PATH::$path"
119-
echo "::set-env name=PACKAGE_NAME::$name"
120-
121-
- name: List Package for DependencyInjection
122-
if: steps.release.outputs.module == 'di'
123-
shell: pwsh
124-
run: |
125-
$package = Get-ChildItem -Path ./src/*.DependencyInjection -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
126-
$path = $package[0].FullName
127-
$name = $package[0].Name
128-
129-
echo "::set-env name=PACKAGE_PATH::$path"
130-
echo "::set-env name=PACKAGE_NAME::$name"
131-
132-
- name: List Package for OpenApi
133-
if: steps.release.outputs.module == 'swagger'
134-
shell: pwsh
135-
run: |
136-
$package = Get-ChildItem -Path ./src/*.OpenApi -Include *.nupkg -Recurse | Where-Object { $_.FullName -like "*${{ steps.release.outputs.version }}*" }
137-
$path = $package[0].FullName
138-
$name = $package[0].Name
139-
140-
echo "::set-env name=PACKAGE_PATH::$path"
141-
echo "::set-env name=PACKAGE_NAME::$name"
102+
dotnet publish ./src/Aliencube.AzureFunctions.Extensions.OpenApi.CLI -c Release -f ${{ matrix.targetFramework }} -p:PublishSingleFile=true --self-contained true -r ${{ matrix.runtime }}
142103
143104
- name: List Package for OpenApi.CLI
144-
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime = 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
105+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
145106
shell: pwsh
146107
run: |
147108
$sourcepath = "./src/*.OpenApi.CLI/bin/Release/${{ matrix.targetFramework }}/${{ matrix.runtime }}/publish"
@@ -154,12 +115,14 @@ jobs:
154115
echo "::set-env name=PACKAGE_NAME::$name"
155116
156117
- name: Check release module and version
118+
if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
157119
shell: pwsh
158120
run: |
159121
echo "package-path: $env:PACKAGE_PATH"
160122
echo "package-name: $env:PACKAGE_NAME"
161123
162124
# - name: Create Release to GitHub
125+
# if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
163126
# id: release
164127
# uses: actions/create-release@v1
165128
# env:
@@ -170,19 +133,8 @@ jobs:
170133
# draft: false
171134
# prerelease: false
172135

173-
# - name: Upload NuGet package to GitHub
174-
# if: steps.release.outputs.module != 'cli'
175-
# uses: actions/upload-release-asset@v1
176-
# env:
177-
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
178-
# with:
179-
# upload_url: ${{ steps.release.outputs.upload_url }}
180-
# asset_path: ${{ $PACKAGE_PATH }}
181-
# asset_name: ${{ $PACKAGE_NAME }}
182-
# asset_content_type: application/octet-stream
183-
184136
# - name: Upload CLI to GitHub
185-
# if: steps.release.outputs.module == 'cli'
137+
# if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
186138
# uses: actions/upload-release-asset@v1
187139
# env:
188140
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -192,14 +144,8 @@ jobs:
192144
# asset_name: ${{ $PACKAGE_NAME }}
193145
# asset_content_type: application/zip
194146

195-
# - name: Release to NuGet
196-
# if: steps.release.outputs.module != 'cli'
197-
# shell: pwsh
198-
# run: |
199-
# dotnet nuget push $env:PACKAGE_PATH --source https://api.nuget.org/v3/index.json --apk-key ${{ secrets.NUGET_API_KEY }}
200-
201147
# - name: Release to npm
202-
# if: steps.release.outputs.module == 'cli'
148+
# if: steps.release.outputs.module == 'cli' && ((matrix.targetFramework == 'net461' && matrix.runtime == 'win-x64') || matrix.targetFramework == 'netcoreapp3.1')
203149
# uses: JS-DevTools/npm-publish@v1
204150
# with:
205151
# token: ${{ secrets.NPM_TOKEN }}

0 commit comments

Comments
 (0)