diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 2ea7b5869..9c14ee073 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -19,12 +19,8 @@ name: CI on: push: branches: - - master - main - pull_request: - branches: - master - - main jobs: windows-latest: @@ -32,16 +28,36 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v3 - - name: Cache .nuke/temp, ~/.nuget/packages + - name: 'Cache: .nuke/temp, ~/.nuget/packages' + uses: actions/cache@v3 + with: + path: | + .nuke/temp + ~/.nuget/packages + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Run: Clean, Compile, Pack' + run: ./build.cmd Clean Compile Pack + - name: 'Publish: artifacts' + uses: actions/upload-artifact@v3 + with: + name: artifacts + path: artifacts + ubuntu-latest: + name: ubuntu-latest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: 'Cache: .nuke/temp, ~/.nuget/packages' uses: actions/cache@v3 with: path: | .nuke/temp ~/.nuget/packages - key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }} - - name: Run './build.cmd Clean Compile Test Pack' - run: ./build.cmd Clean Compile Test Pack - - uses: actions/upload-artifact@v3 + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Run: Clean, Compile, Pack' + run: ./build.cmd Clean Compile Pack + - name: 'Publish: artifacts' + uses: actions/upload-artifact@v3 with: name: artifacts path: artifacts diff --git a/.github/workflows/PR.yml b/.github/workflows/PR.yml new file mode 100644 index 000000000..9f1a87c92 --- /dev/null +++ b/.github/workflows/PR.yml @@ -0,0 +1,59 @@ +# ------------------------------------------------------------------------------ +# +# +# This code was generated. +# +# - To turn off auto-generation set: +# +# [GitHubActions (AutoGenerate = false)] +# +# - To trigger manual generation invoke: +# +# nuke --generate-configuration GitHubActions_PR --host GitHubActions +# +# +# ------------------------------------------------------------------------------ + +name: PR + +on: [pull_request] + +jobs: + windows-latest: + name: windows-latest + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: 'Cache: .nuke/temp, ~/.nuget/packages' + uses: actions/cache@v3 + with: + path: | + .nuke/temp + ~/.nuget/packages + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Run: Clean, Compile, Pack' + run: ./build.cmd Clean Compile Pack + - name: 'Publish: artifacts' + uses: actions/upload-artifact@v3 + with: + name: artifacts + path: artifacts + ubuntu-latest: + name: ubuntu-latest + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: 'Cache: .nuke/temp, ~/.nuget/packages' + uses: actions/cache@v3 + with: + path: | + .nuke/temp + ~/.nuget/packages + key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} + - name: 'Run: Clean, Compile, Pack' + run: ./build.cmd Clean Compile Pack + - name: 'Publish: artifacts' + uses: actions/upload-artifact@v3 + with: + name: artifacts + path: artifacts diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 2424dbda5..b02030e15 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Build Schema", "$ref": "#/definitions/build", + "title": "Build Schema", "definitions": { "build": { "type": "object", @@ -116,4 +116,4 @@ } } } -} \ No newline at end of file +} diff --git a/build.ps1 b/build.ps1 index 8c52d631c..c0c0e6123 100644 --- a/build.ps1 +++ b/build.ps1 @@ -18,7 +18,7 @@ $TempDirectory = "$PSScriptRoot\\.nuke\temp" $DotNetGlobalFile = "$PSScriptRoot\\global.json" $DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" -$DotNetChannel = "Current" +$DotNetChannel = "STS" $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1 $env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 @@ -65,5 +65,10 @@ else { Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)" +if (Test-Path env:NUKE_ENTERPRISE_TOKEN) { + & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null + & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null +} + ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh index 1f3ba09e2..d4a7e51ec 100755 --- a/build.sh +++ b/build.sh @@ -14,7 +14,7 @@ TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" -DOTNET_CHANNEL="Current" +DOTNET_CHANNEL="STS" export DOTNET_CLI_TELEMETRY_OPTOUT=1 export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 @@ -58,5 +58,10 @@ fi echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)" +if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "NUKE_ENTERPRISE_TOKEN" != "" ]]; then + "$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true + "$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true +fi + "$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet "$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" diff --git a/build/Build.GitHubAction.cs b/build/Build.GitHubAction.cs index cdf442330..53723136d 100644 --- a/build/Build.GitHubAction.cs +++ b/build/Build.GitHubAction.cs @@ -2,9 +2,15 @@ [GitHubActions("CI", GitHubActionsImage.WindowsLatest, - OnPushBranches = new [] { "master", "main" }, - OnPullRequestBranches = new [] { "master", "main" }, - InvokedTargets = new[] { nameof(Clean), nameof(Compile), nameof(Test), nameof(Pack) } + GitHubActionsImage.UbuntuLatest, + OnPushBranches = new[] { "main", "master" }, + InvokedTargets = new[] { nameof(Clean), nameof(Compile), nameof(Pack) } +)] +[GitHubActions("PR", + GitHubActionsImage.WindowsLatest, + GitHubActionsImage.UbuntuLatest, + On = new [] { GitHubActionsTrigger.PullRequest }, + InvokedTargets = new[] { nameof(Clean), nameof(Compile), nameof(Pack) } )] partial class Build { diff --git a/build/Build.cs b/build/Build.cs index 834c7061f..05f645d1c 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -3,7 +3,6 @@ using Nuke.Common.ProjectModel; using Nuke.Common.Tools.DotNet; using Nuke.Common.Utilities.Collections; -using static Nuke.Common.IO.FileSystemTasks; using static Nuke.Common.Tools.DotNet.DotNetTasks; partial class Build : NukeBuild @@ -43,7 +42,7 @@ protected override void OnBuildInitialized() .Before(Restore) .Executes(() => { - SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(DeleteDirectory); + SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(x => x.DeleteDirectory()); }); Target Restore => _ => _ @@ -64,6 +63,7 @@ protected override void OnBuildInitialized() .SetDeterministic(IsServerBuild) .SetContinuousIntegrationBuild(IsServerBuild) .SetVerbosity(DotNetVerbosity.Minimal) + .AddNoWarns(1591) // missing XML documentation comment .SetProjectFile(Solution) ); }); diff --git a/build/_build.csproj b/build/_build.csproj index 644bc72ca..104cf021f 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -11,7 +11,7 @@ - + diff --git a/solution/NPOI.Core.Test.sln b/solution/NPOI.Core.Test.sln index 5f488f67c..e4b0206b3 100644 --- a/solution/NPOI.Core.Test.sln +++ b/solution/NPOI.Core.Test.sln @@ -59,9 +59,7 @@ Global {DA2CA3BD-1CAC-470C-9FA2-611A5768A76A}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA2CA3BD-1CAC-470C-9FA2-611A5768A76A}.Release|Any CPU.Build.0 = Release|Any CPU {94B18BCF-84E8-401F-BAAB-0496AA136628}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {94B18BCF-84E8-401F-BAAB-0496AA136628}.Debug|Any CPU.Build.0 = Debug|Any CPU {94B18BCF-84E8-401F-BAAB-0496AA136628}.Release|Any CPU.ActiveCfg = Release|Any CPU - {94B18BCF-84E8-401F-BAAB-0496AA136628}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/testcases/main/NPOI.TestCases.Core.csproj b/testcases/main/NPOI.TestCases.Core.csproj index c52728f82..2519cdf98 100644 --- a/testcases/main/NPOI.TestCases.Core.csproj +++ b/testcases/main/NPOI.TestCases.Core.csproj @@ -26,7 +26,7 @@ - + diff --git a/testcases/ooxml/NPOI.OOXML.TestCases.Core.csproj b/testcases/ooxml/NPOI.OOXML.TestCases.Core.csproj index 570757121..b5fcb2530 100644 --- a/testcases/ooxml/NPOI.OOXML.TestCases.Core.csproj +++ b/testcases/ooxml/NPOI.OOXML.TestCases.Core.csproj @@ -37,7 +37,7 @@ - + diff --git a/testcases/openxml4net/NPOI.OOXML4Net.TestCases.Core.csproj b/testcases/openxml4net/NPOI.OOXML4Net.TestCases.Core.csproj index 26eeba3d8..a1d847a11 100644 --- a/testcases/openxml4net/NPOI.OOXML4Net.TestCases.Core.csproj +++ b/testcases/openxml4net/NPOI.OOXML4Net.TestCases.Core.csproj @@ -25,7 +25,7 @@ - +