Skip to content

Commit 7ddecb8

Browse files
committed
ci: nuget publishing
chore: release-internal, until open-source chore: rename internal release workflow name ci: remove unneeded internal nuget repository (LEGO#86) ci: setup nuget publishing (LEGO#87) Update release-package.yml Create CHANGELOG.md chore: update CHANGELOG.md Update release-package.yml reset changelog chore: update CHANGELOG.md Update release-package.yml reset changelog chore: update CHANGELOG.md Update LEGO.AsyncAPI.csproj Update LEGO.AsyncAPI.Readers.csproj reset changelog chore: update CHANGELOG.md Update release-package.yml reset changelog chore: update CHANGELOG.md reset changelog
1 parent 04e8af8 commit 7ddecb8

File tree

7 files changed

+94
-41
lines changed

7 files changed

+94
-41
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ jobs:
2525
with:
2626
dotnet-version: '6.0.x'
2727
include-prerelease: true
28-
- name: Add Nuget source Lego
29-
run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/lego/index.json"
3028
- name: Restore dependencies
3129
run: dotnet restore
3230
- name: Build
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Publish internal NuGet package
2+
on:
3+
push:
4+
branches: [ main ]
5+
paths:
6+
- 'src/LEGO.AsyncAPI/**'
7+
- 'src/LEGO.AsyncAPI.Readers/**'
8+
- 'src/LEGO.AsyncAPI.Writers/**'
9+
- ".github/workflows/release-package.yml"
10+
- '!**/*.md'
11+
workflow_dispatch:
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
name: Publish NuGet packages
17+
strategy:
18+
matrix:
19+
package-name: [ "LEGO.AsyncAPI", "LEGO.AsyncAPI.Readers"]
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v1
23+
24+
- name: Setup .NET Core @ Latest
25+
uses: actions/setup-dotnet@v1
26+
with:
27+
source-url: https://nuget.pkg.github.com/LEGO/index.json
28+
env:
29+
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
30+
31+
- name: Build ${{ matrix.package-name }} project and pack NuGet package
32+
run: dotnet pack src/${{ matrix.package-name }}/${{ matrix.package-name }}.csproj -c Release -o out-${{ matrix.package-name }} -p:PackageVersion=0.2.$GITHUB_RUN_NUMBER.0-prerelease
33+
34+
- name: Push generated package to GitHub Packages registry
35+
run: dotnet nuget push out-${{ matrix.package-name }}/*.nupkg --skip-duplicate -n --api-key ${{secrets.GITHUB_TOKEN}}
Lines changed: 55 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,74 @@
1-
name: Publish a NuGet package
1+
name: Publish NuGet package
22
on:
3-
# push:
4-
# branches: [ main ]
5-
# paths:
6-
# - 'src/LEGO.AsyncAPI/**'
7-
# - 'src/LEGO.AsyncAPI.Readers/**'
8-
# - ".github/workflows/release-package.yml"
9-
# - '!**/*.md'
103
workflow_dispatch:
114

125
jobs:
6+
prereleaseCheck:
7+
runs-on: ubuntu-latest
8+
environment: AsyncAPI
9+
name: Check release
10+
steps:
11+
- name: Checkout repository
12+
uses: actions/checkout@v1
13+
14+
- name: Semantic Release
15+
uses: cycjimmy/semantic-release-action@v3
16+
id: semantic
17+
with:
18+
extra_plugins: |
19+
conventional-changelog-conventionalcommits
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22+
23+
- name: Get token
24+
if: steps.semantic.outputs.new_release_published == 'true'
25+
id: get_token
26+
uses: peter-murray/[email protected]
27+
with:
28+
application_id: ${{ secrets.APPLICATION_ID }}
29+
application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
30+
31+
- name: Commit changes
32+
if: steps.semantic.outputs.new_release_published == 'true'
33+
env:
34+
GITHUB_TOKEN: ${{ steps.get_token.outputs.token }}
35+
FILE_TO_COMMIT: CHANGELOG.md
36+
DESTINATION_BRANCH: ${{ github.ref }}
37+
run: |
38+
export MESSAGE="chore: update $FILE_TO_COMMIT"
39+
export SHA=$( git rev-parse $DESTINATION_BRANCH:$FILE_TO_COMMIT )
40+
export CONTENT=$( base64 -i $FILE_TO_COMMIT )
41+
gh api --method PUT /repos/:owner/:repo/contents/$FILE_TO_COMMIT \
42+
--field message="$MESSAGE" \
43+
--field content="$CONTENT" \
44+
--field encoding="base64" \
45+
--field branch="$DESTINATION_BRANCH" \
46+
--field sha="$SHA"
47+
48+
outputs:
49+
trigger_release: ${{ steps.semantic.outputs.new_release_published }}
50+
version: ${{ steps.semantic.outputs.new_release_published == 'true' && steps.semantic.outputs.new_release_version }}
51+
1352
release:
1453
runs-on: ubuntu-latest
1554
name: Publish NuGet packages
55+
needs: prereleaseCheck
56+
environment: AsyncAPI
1657
strategy:
1758
matrix:
18-
package-name: [ "LEGO.AsyncAPI", "LEGO.AsyncAPI.Readers"]
59+
package-name: [ "LEGO.AsyncAPI", "LEGO.AsyncAPI.Readers" ]
1960
steps:
2061
- name: Checkout repository
2162
uses: actions/checkout@v1
2263

23-
- name: Semantic Release
24-
uses: cycjimmy/semantic-release-action@v3
25-
id: semantic # Need an `id` for output variables
26-
with:
27-
extra_plugins: |
28-
conventional-changelog-conventionalcommits
29-
env:
30-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31-
3264
- name: Setup .NET Core @ Latest
65+
if: needs.prereleaseCheck.outputs.trigger_release == 'true'
3366
uses: actions/setup-dotnet@v1
34-
with:
35-
source-url: https://nuget.pkg.github.com/LEGO/index.json
36-
env:
37-
NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
3867

3968
- name: Build ${{ matrix.package-name }} project and pack NuGet package
40-
if: steps.semantic.outputs.new_release_published == 'true'
41-
run: dotnet pack src/${{ matrix.package-name }}/${{ matrix.package-name }}.csproj -c Release -o out-${{ matrix.package-name }} -p:PackageVersion=${{ steps.semantic.outputs.new_release_version }}-prerelease
69+
if: needs.prereleaseCheck.outputs.trigger_release == 'true'
70+
run: dotnet pack src/${{ matrix.package-name }}/${{ matrix.package-name }}.csproj -c Release -o out-${{ matrix.package-name }} -p:PackageVersion=${{ needs.prereleaseCheck.outputs.version }}
4271

4372
- name: Push generated package to GitHub Packages registry
44-
if: steps.semantic.outputs.new_release_published == 'true'
45-
run: dotnet nuget push out-${{ matrix.package-name }}/*.nupkg --skip-duplicate -n --api-key ${{secrets.GITHUB_TOKEN}}
46-
47-
- name: Create Pull Request
48-
if: steps.semantic.outputs.new_release_published == 'true'
49-
id: pr
50-
uses: peter-evans/create-pull-request@v4
51-
with:
52-
token: ${{ secrets.GITHUB_TOKEN }}
53-
title: 'chore: update Changelog'
54-
base: main
55-
add-paths: |
56-
CHANGELOG.md
73+
if: needs.prereleaseCheck.outputs.trigger_release == 'true'
74+
run: dotnet nuget push out-${{ matrix.package-name }}/*.nupkg -s https://api.nuget.org/v3/index.json --skip-duplicate -n --api-key ${{secrets.NUGET}}

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @VisualBean

src/LEGO.AsyncAPI.Readers/LEGO.AsyncAPI.Readers.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
<TargetFramework>net6.0</TargetFramework>
55
<ImplicitUsings>disable</ImplicitUsings>
66
<Nullable>disable</Nullable>
7+
<Company>The LEGO Group</Company>
78
<PackageProjectUrl>https://github.com/LEGO/AsyncAPI.NET</PackageProjectUrl>
89
<Description>AsyncAPI.NET Readers for JSON and YAML documents</Description>
910
<PackageTags>AsyncAPI .NET</PackageTags>
1011
<PackageId>LEGO.AsyncAPI.Readers</PackageId>
11-
<Version>1.0.0</Version>
1212
<AssemblyName>LEGO.AsyncAPI.Readers</AssemblyName>
1313
<RootNamespace>LEGO.AsyncAPI.Readers</RootNamespace>
1414
<RepositoryUrl>https://github.com/LEGO/AsyncAPI.NET</RepositoryUrl>

src/LEGO.AsyncAPI/LEGO.AsyncAPI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
<PropertyGroup>
44
<TargetFramework>net6.0</TargetFramework>
55
<ImplicitUsings>disable</ImplicitUsings>
6+
<Company>The LEGO Group</Company>
67
<PackageProjectUrl>https://github.com/LEGO/AsyncAPI.NET</PackageProjectUrl>
78
<Description>AsyncAPI.NET models</Description>
89
<PackageTags>AsyncAPI .NET</PackageTags>
910
<PackageId>LEGO.AsyncAPI</PackageId>
10-
<Version>1.0.0</Version>
1111
<AssemblyName>LEGO.AsyncAPI</AssemblyName>
1212
<RootNamespace>LEGO.AsyncAPI</RootNamespace>
1313
<RepositoryUrl>https://github.com/LEGO/AsyncAPI.NET</RepositoryUrl>

0 commit comments

Comments
 (0)