Skip to content

Commit

Permalink
Updated to the latest nuke packages (#1955)
Browse files Browse the repository at this point in the history
  • Loading branch information
david-driscoll authored Dec 18, 2024
1 parent 4789f92 commit f199a37
Show file tree
Hide file tree
Showing 10 changed files with 334 additions and 31 deletions.
12 changes: 7 additions & 5 deletions .build/Build.CI.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Nuke.Common.CI.GitHubActions;
using Rocket.Surgery.Nuke.ContinuousIntegration;
using Rocket.Surgery.Nuke.DotNetCore;
using Rocket.Surgery.Nuke.GithubActions;
using Rocket.Surgery.Nuke.Jobs;

#pragma warning disable CA1050

Expand Down Expand Up @@ -33,20 +33,23 @@
OnPullRequestTargetBranches = ["master", "main", "next",],
Enhancements = [nameof(LintStagedMiddleware),]
)]
[PrintBuildVersion]
[CloseMilestoneJob]
[DraftReleaseJob]
[UpdateMilestoneJob]
[PublishNugetPackagesJob("RSG_NUGET_API_KEY", "ci")]
[PrintCIEnvironment]
[UploadLogs]
[TitleEvents]
[ContinuousIntegrationConventions]
[System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
public partial class Pipeline
internal partial class Pipeline
{
[System.Diagnostics.DebuggerBrowsable(System.Diagnostics.DebuggerBrowsableState.Never)]
private string DebuggerDisplay => ToString();

Check warning on line 48 in .build/Build.CI.cs

View workflow job for this annotation

GitHub Actions / build

Possible null reference return.

Check warning on line 48 in .build/Build.CI.cs

View workflow job for this annotation

GitHub Actions / build

Possible null reference return.

public static RocketSurgeonGitHubActionsConfiguration CiIgnoreMiddleware(RocketSurgeonGitHubActionsConfiguration configuration)
{
((RocketSurgeonsGithubActionsJob)configuration.Jobs[0]).Steps =
( (RocketSurgeonsGithubActionsJob)configuration.Jobs[0] ).Steps =
[
new RunStep("N/A")
{
Expand All @@ -61,7 +64,6 @@ public static RocketSurgeonGitHubActionsConfiguration CiMiddleware(RocketSurgeon
{
_ = configuration
.ExcludeRepositoryConfigurationFiles()
.AddNugetPublish()
.Jobs.OfType<RocketSurgeonsGithubActionsJob>()
.First(z => z.Name.Equals("build", StringComparison.OrdinalIgnoreCase))
.UseDotNetSdks("8.0", "9.0")
Expand Down
2 changes: 1 addition & 1 deletion .build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
[NuGetVerbosityMapping]
[ShutdownDotNetAfterServerBuild]
[LocalBuildConventions]
public partial class Pipeline : NukeBuild,
internal partial class Pipeline : NukeBuild,
ICanRestoreWithDotNetCore,
ICanBuildWithDotNetCore,
ICanTestWithDotNetCore,
Expand Down
5 changes: 5 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@
"version": "0.7.2",
"commands": ["husky"],
"rollForward": false
},
"gitreleasemanager.tool": {
"version": "0.18.0",
"commands": ["dotnet-gitreleasemanager"],
"rollForward": false
}
}
}
7 changes: 0 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,3 @@ jobs:
with:
name: 'docs'
path: 'artifacts/docs/'
Publish:
needs:
- Build
uses: RocketSurgeonsGuild/actions/.github/workflows/publish-nuget.yml@v0.3.15
secrets:
RSG_NUGET_API_KEY: '${{ secrets.RSG_NUGET_API_KEY }}'
RSG_AZURE_DEVOPS: '${{ secrets.RSG_AZURE_DEVOPS }}'
98 changes: 93 additions & 5 deletions .github/workflows/close-milestone.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,98 @@
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [CloseMilestoneJob (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_close-milestone --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------

name: Close Milestone

on:
workflow_call:
secrets:
RSG_BOT_TOKEN:
required: true
release:
types:
- released
permissions:
actions: read
checks: read
contents: read
deployments: read
id-token: none
issues: write
discussions: none
packages: none
pages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: write

jobs:
close_milestone:
uses: RocketSurgeonsGuild/actions/.github/workflows/close-milestone6.yml@v0.3.15
secrets:
RSG_BOT_TOKEN: ${{ secrets.RSG_BOT_TOKEN }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
clean: 'false'
fetch-depth: '0'
- name: Fetch all history for all tags and branches
run: |
git fetch --prune
- name: 📲 Install DotNet
uses: actions/setup-dotnet@v4
- name: ⚒️ dotnet tool restore
run: |
dotnet tool restore
- name: 🔨 Use GitVersion
id: gitversion
shell: pwsh
run: |
$data = dotnet gitversion | ConvertFrom-Json
foreach ($item in $data.PSObject.Properties) {
$key = $item.Name
$value = $item.Value
echo "$($key.Substring(0,1).ToLower() + $key.Substring(1))=$value" >> $env:GITHUB_OUTPUT
}
- name: Create Milestone
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
uses: WyriHaximus/github-action-create-milestone@v1
with:
title: 'v${{ steps.gitversion.outputs.majorMinorPatch }}'
- name: sync milestones
uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15
with:
default-label: ':sparkles: mysterious'
github-token: '${{ secrets.GITHUB_TOKEN }}'
- name: 📲 Install GitReleaseManager
uses: gittools/actions/gitreleasemanager/setup@v3.1.1
with:
versionSpec: '0.18.0'
- name: Get Repo and Owner
id: repository
if: ${{ !github.event.release.prerelease && steps.gitversion.outputs.preReleaseTag == '' }}
shell: pwsh
run: |
$parts = $ENV:GITHUB_REPOSITORY.Split('/')
echo "::set-output name=owner::$($parts[0])"
echo "::set-output name=repository::$($parts[1])"
- name: Close Milestone
if: ${{ !github.event.release.prerelease && steps.gitversion.outputs.preReleaseTag == '' }}
shell: pwsh
run: |
dotnet gitreleasemanager close `
-o "${{ steps.repository.outputs.owner }}" `
-r "${{ steps.repository.outputs.repository }}" `
--token "${{ secrets.GITHUB_TOKEN }}" `
-m "v${{ steps.gitversion.outputs.majorMinorPatch }}"
95 changes: 89 additions & 6 deletions .github/workflows/draft-release.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,97 @@
name: Create Milestone and Draft Release
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [DraftReleaseJob (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_draft-release --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------

name: Draft Release and Create Milestone

on:
workflow_call:
secrets:
RSG_BOT_TOKEN:
required: true
push:
branches:
- master
- 'master'
paths-ignore:
- '**/*.md'
schedule:
- cron: '0 0 * * 4'
permissions:
actions: read
checks: read
contents: read
deployments: read
id-token: none
issues: write
discussions: none
packages: none
pages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: write

jobs:
create_milestone_and_draft_release:
uses: RocketSurgeonsGuild/actions/.github/workflows/draft-release6.yml@v0.3.15
secrets:
RSG_BOT_TOKEN: ${{ secrets.RSG_BOT_TOKEN }}
draft_release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
clean: 'false'
fetch-depth: '0'
- name: Fetch all history for all tags and branches
run: |
git fetch --prune
- name: 📲 Install DotNet
uses: actions/setup-dotnet@v4
- name: ⚒️ dotnet tool restore
run: |
dotnet tool restore
- name: 🔨 Use GitVersion
id: gitversion
shell: pwsh
run: |
$data = dotnet gitversion | ConvertFrom-Json
foreach ($item in $data.PSObject.Properties) {
$key = $item.Name
$value = $item.Value
echo "$($key.Substring(0,1).ToLower() + $key.Substring(1))=$value" >> $env:GITHUB_OUTPUT
}
- name: Create Milestone
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
uses: WyriHaximus/github-action-create-milestone@v1
with:
title: 'v${{ steps.gitversion.outputs.majorMinorPatch }}'
- name: sync milestones
uses: RocketSurgeonsGuild/actions/sync-milestone@v0.3.15
with:
default-label: ':sparkles: mysterious'
github-token: '${{ secrets.GITHUB_TOKEN }}'
- name: Create Release
uses: ncipollo/release-action@v1
with:
allowUpdates: 'true'
generateReleaseNotes: 'true'
updateOnlyUnreleased: 'true'
draft: 'true'
omitBodyDuringUpdate: 'true'
omitNameDuringUpdate: 'true'
omitDraftDuringUpdate: 'true'
name: 'v${{ steps.gitversion.outputs.majorMinorPatch }}'
tag: 'v${{ steps.gitversion.outputs.majorMinorPatch }}'
token: '${{ secrets.RSG_BOT_TOKEN }}'
commit: '${{ github.base_ref }}'
64 changes: 64 additions & 0 deletions .github/workflows/publish-nuget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [PublishNugetPackagesJob (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_publish-nuget --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------

name: Publish Nuget Packages

on:
workflow_run:
workflows:
- 'ci'
types:
- 'completed'
permissions:
actions: read
checks: read
contents: read
deployments: read
id-token: none
issues: write
discussions: none
packages: none
pages: none
pull-requests: write
repository-projects: none
security-events: none
statuses: write

jobs:
publish_nuget:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: '${{ toJson(github) }}'
shell: pwsh
run: |
echo "$GITHUB_CONTEXT"
- name: 🚀 NuGet
uses: actions/download-artifact@v4
with:
name: 'nuget'
github-token: '${{ secrets.GITHUB_TOKEN }}'
run-id: '${{ github.event.workflow_run.id }}'
- name: nuget.org
env:
ApiKey: '${{ secrets.RSG_NUGET_API_KEY }}'
if: startsWith(github.event.workflow_run.head_branch, 'v') && contains(github.event.workflow_run.head_branch, '.') && !contains(github.event.workflow_run.head_branch, '/')
shell: pwsh
run: |
dotnet nuget push **/*.nupkg --skip-duplicate -s nuget.org --api-key $ENV:ApiKey
dotnet nuget push **/*.snupkg --skip-duplicate -s nuget.org --api-key $ENV:ApiKey
Loading

0 comments on commit f199a37

Please sign in to comment.