-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: 👷 using .nuspec for Template Nuget package (#24)
- Loading branch information
1 parent
bcc85cd
commit 174f342
Showing
21 changed files
with
309 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,55 +9,71 @@ on: | |
- v* # for publish package after each release to nuget | ||
branches: | ||
- main # for publish package and each commit to github | ||
paths-ignore: | ||
- "tests/**" | ||
|
||
env: | ||
FEED_SOURCE: https://api.nuget.org/v3/index.json | ||
GHC_SOURCE: ${{ vars.GHC_SOURCE }} | ||
FEED_API_KEY: ${{ secrets.FEED_API_KEY }} | ||
GHC_API_KEY: ${{ secrets.GHC_TOKEN }} | ||
NuGetDirectory: ${{ github.workspace}}/nuget | ||
DOTNET_VERSION: "8.0.*" | ||
|
||
jobs: | ||
# https://www.meziantou.net/publishing-a-nuget-package-following-best-practices-using-github.htm | ||
create-nuget: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/checkout@v4 | ||
with: | ||
# https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/cloudbuild.md#github-actions | ||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | ||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v3 | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: "8.0.x" | ||
dotnet-version: ${{ env.DOTNET_VERSION }} | ||
|
||
- name: Cache NuGet Packages | ||
uses: actions/cache@v3 | ||
- uses: nuget/setup-nuget@v2 | ||
name: Setup NuGet | ||
with: | ||
nuget-version: '6.x' | ||
|
||
- name: Cache NuGet packages | ||
uses: actions/cache@v4 | ||
with: | ||
key: vertical-template-nuget | ||
path: ~/.nuget/packages | ||
|
||
# https://github.com/joseftw/jos.enumeration/blob/main/.github/workflows/verify.yml | ||
# https://github.com/dotnet/Nerdbank.GitVersioning | ||
- uses: dotnet/[email protected] | ||
id: nbgv | ||
key: nuget-cache-${{ runner.os }}-${{ env.DOTNET_VERSION }}-publish | ||
|
||
# https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/nbgv-cli.md | ||
- name: Install Nerdbank.GitVersioning | ||
run: dotnet tool install -g nbgv | ||
|
||
- name: Get NuGetPackageVersion | ||
id: get_version | ||
run: | | ||
nugetVersion=$(nbgv get-version | grep "NuGetPackageVersion" | awk -F': ' '{print $2}' | xargs) | ||
echo "NuGetPackageVersion: $nugetVersion" | ||
echo "::set-output name=nuget_version::$nugetVersion" | ||
- name: Restore dependencies | ||
run: dotnet restore Vertical.Slice.Template.sln | ||
|
||
- name: Build Version ${{ steps.nbgv.outputs.SemVer2 }} | ||
- name: Build Version ${{ steps.get_version.outputs.nuget_version }} | ||
run: dotnet build Vertical.Slice.Template.sln -c Release --no-restore | ||
|
||
# https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-pack | ||
- name: Pack NuGet Package Version ${{ steps.nbgv.outputs.SemVer2 }} | ||
run: dotnet pack vertical-slice-template.csproj -c Release -o ${{ env.NuGetDirectory }} | ||
- name: Pack NuGet Package Version ${{ steps.get_version.outputs.nuget_version }} | ||
run: nuget pack vertical-slice-template.nuspec -OutputDirectory ${{ env.NuGetDirectory }} -Properties "version=${{ steps.get_version.outputs.nuget_version }}" -NoDefaultExcludes -c Release --no-restore --no-build | ||
|
||
# Publish the NuGet package as an artifact, so they can be used in the following jobs | ||
- uses: actions/upload-artifact@v4 | ||
# Publish the NuGet package as an artifact, so they can be used in the following jobs | ||
- name: Upload Package Version ${{ steps.get_version.outputs.nuget_version }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: nuget | ||
if-no-files-found: error | ||
retention-days: 7 | ||
retention-days: 1 | ||
path: ${{ env.NuGetDirectory }}/*.nupkg | ||
|
||
deploy-nuget: | ||
|
@@ -68,38 +84,46 @@ jobs: | |
# You can update this logic if you want to manage releases differently | ||
needs: [create-nuget] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/checkout@v4 | ||
with: | ||
# https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/cloudbuild.md#github-actions | ||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work. | ||
# Download the NuGet package created in the previous job | ||
|
||
# .nupkg should be in the same folder that we have `.template.config`, so we should put it in the root of source directory | ||
- uses: actions/download-artifact@v4 | ||
# Download the NuGet package created in the previous job and copy in the root | ||
- name: Download Nuget | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: nuget | ||
## Optional. Default is $GITHUB_WORKSPACE | ||
path: ${{ github.workspace}} | ||
|
||
# Install the .NET SDK indicated in the global.json file | ||
- name: Setup .NET Core | ||
uses: actions/setup-dotnet@v3 | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
dotnet-version: "8.0.x" | ||
dotnet-version: ${{ env.DOTNET_VERSION }} | ||
|
||
# https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/nbgv-cli.md | ||
- name: Install Nerdbank.GitVersioning | ||
run: dotnet tool install -g nbgv | ||
|
||
# https://github.com/joseftw/jos.enumeration/blob/main/.github/workflows/verify.yml | ||
# https://github.com/dotnet/Nerdbank.GitVersioning | ||
- uses: dotnet/[email protected] | ||
id: nbgv | ||
- name: Get NuGetPackageVersion | ||
id: get_version | ||
run: | | ||
nugetVersion=$(nbgv get-version | grep "NuGetPackageVersion" | awk -F': ' '{print $2}' | xargs) | ||
echo "NuGetPackageVersion: $nugetVersion" | ||
echo "::set-output name=nuget_version::$nugetVersion" | ||
# for publish package to github for each commit | ||
- name: Publish NuGet Package Version ${{ steps.nbgv.outputs.SemVer2 }} to GitHub | ||
- name: Publish NuGet Package Version ${{ steps.get_version.outputs.nuget_version }} to GitHub | ||
run: dotnet nuget push *.nupkg --skip-duplicate --api-key ${{ env.GHC_API_KEY }} --source ${{ env.GHC_SOURCE }} | ||
if: github.event_name == 'push' && (startswith(github.ref, 'refs/heads') || startswith(github.ref, 'refs/tags')) | ||
|
||
# Publish all NuGet packages to NuGet.org | ||
# Use --skip-duplicate to prevent errors if a package with the same version already exists. | ||
# If you retry a failed workflow, already published packages will be skipped without error. | ||
# https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-nuget-push | ||
- name: Publish NuGet Package Version ${{ steps.nbgv.outputs.SemVer2 }} to Nuget | ||
- name: Publish NuGet Package Version ${{ steps.get_version.outputs.nuget_version }} to Nuget | ||
run: dotnet nuget push *.nupkg --skip-duplicate --source ${{ env.FEED_SOURCE }} --api-key ${{ env.FEED_API_KEY }} | ||
if: github.event_name == 'push' && startswith(github.ref, 'refs/tags') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 7 additions & 7 deletions
14
src/App/Vertical.Slice.Template.Api/Vertical.Slice.Template.Api.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
<Project Sdk="Microsoft.NET.Sdk.Web"> | ||
|
||
<ItemGroup> | ||
<InternalsVisibleTo Include="Vertical.Slice.Template.DependencyTests" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<InternalsVisibleTo Include="Vertical.Slice.Template.DependencyTests"/> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\Vertical.Slice.Template\Vertical.Slice.Template.csproj"/> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\Vertical.Slice.Template\Vertical.Slice.Template.csproj" /> | ||
</ItemGroup> | ||
|
||
</Project> |
Oops, something went wrong.