diff --git a/.appveyor.yml b/.appveyor.yml index 070aa296..a84619a4 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -2,7 +2,7 @@ image: Visual Studio 2019 init: - git config --global core.autocrlf input build_script: - - cmd: choco install dotnetcore-sdk --version=3.0.100 + - cmd: choco install dotnetcore-sdk --version=3.1.102 - ps: .\build.ps1 test: off after_build: diff --git a/.build/Build.cs b/.build/Build.cs index 03c10af0..560185ab 100644 --- a/.build/Build.cs +++ b/.build/Build.cs @@ -7,6 +7,12 @@ [PublicAPI] [CheckBuildProjectConfigurations] [UnsetVisualStudioEnvironmentVariables] +[AzurePipelinesSteps( + InvokedTargets = new[] { nameof(Restore), nameof(Build), nameof(Test), nameof(Pack) }, + NonEntryTargets = new[] { nameof(BuildVersion), nameof(Generate_Code_Coverage_Reports) }, + ExcludedTargets = new[] { nameof(Clean), nameof(Restore), nameof(DotnetToolRestore) }, + Parameters = new[] { nameof(CoverageDirectory), nameof(ArtifactsDirectory), nameof(Verbosity), nameof(Configuration) } +)] [PackageIcon("https://raw.githubusercontent.com/RocketSurgeonsGuild/graphics/master/png/social-square-thrust-rounded.png")] [EnsurePackageSourceHasCredentials("RocketSurgeonsGuild")] [EnsureGitHooks(GitHook.PreCommit)] diff --git a/.prettierrc b/.prettierrc index 51b66678..acd09948 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,5 +5,16 @@ "singleQuote": true, "arrowParens": "avoid", "bracketSpacing": true, - "printWidth": 120 + "printWidth": 120, + "overrides": [ + { + "files": [ + "*.yml", + "*.yaml" + ], + "options": { + "tabWidth": 2 + } + } + ] } \ No newline at end of file diff --git a/Packages.props b/Packages.props index 9459dc77..1df10622 100644 --- a/Packages.props +++ b/Packages.props @@ -9,21 +9,21 @@ - - + + - + - + - + - - + + diff --git a/azure-pipelines.nuke.yml b/azure-pipelines.nuke.yml new file mode 100644 index 00000000..7e1ffafe --- /dev/null +++ b/azure-pipelines.nuke.yml @@ -0,0 +1,29 @@ +# ------------------------------------------------------------------------------ +# +# +# This code was generated. +# +# - To turn off auto-generation set: +# +# [AzurePipelinesSteps (AutoGenerate = false)] +# +# - To trigger manual generation invoke: +# +# nuke --configure-build-server --host AzurePipelines +# +# +# ------------------------------------------------------------------------------ + +# +parameters: + Configuration: 'Release' + Artifacts: '' + Coverage: '' + Verbosity: 'Normal' +steps: + - pwsh: ./build.ps1 BuildVersion Build --skip --configuration '${{ parameters.Configuration }}' --artifacts '${{ parameters.Artifacts }}' --coverage '${{ parameters.Coverage }}' --verbosity '${{ parameters.Verbosity }}' + displayName: '⚙ Build' + - pwsh: ./build.ps1 Generate_Code_Coverage_Reports Test --skip --configuration '${{ parameters.Configuration }}' --artifacts '${{ parameters.Artifacts }}' --coverage '${{ parameters.Coverage }}' --verbosity '${{ parameters.Verbosity }}' + displayName: '🚦 Test' + - pwsh: ./build.ps1 Pack --skip --configuration '${{ parameters.Configuration }}' --artifacts '${{ parameters.Artifacts }}' --coverage '${{ parameters.Coverage }}' --verbosity '${{ parameters.Verbosity }}' + displayName: '📦 Pack' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 818ce5d9..ea731ca8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,66 +1,131 @@ trigger: - batch: true - branches: - include: - - master - - refs/tags/* - paths: - exclude: - - '**/*.md' - - '.appveyor.yml' - - '.codecov.yml' - - 'GitVersion.yml' - - 'GitReleaseManager.yaml' - - .vscode/* - - .git* - - .editorconfig - - .nuke - - LICENSE + batch: true + branches: + include: + - master + - refs/tags/* + paths: + exclude: + - '**/*.md' + - '.appveyor.yml' + - '.codecov.yml' + - 'GitVersion.yml' + - 'GitReleaseManager.yaml' + - .vscode/* + - .git* + - .editorconfig + - .nuke + - LICENSE pr: - autoCancel: true - branches: - include: - - master + autoCancel: true + branches: + include: + - master resources: - repositories: - - repository: rsg - type: github - name: RocketSurgeonsGuild/AzureDevopsTemplates - ref: refs/tags/v0.11.8 - endpoint: github + repositories: + - repository: rsg + type: github + name: RocketSurgeonsGuild/AzureDevopsTemplates + ref: refs/tags/v0.12.0 + endpoint: github variables: - - name: CONFIGURATION - value: Release - - name: VERBOSITY - value: Normal - - name: COVERAGE - value: '$(Agent.BuildDirectory)/c' - - name: ARTIFACTS - value: $(Build.ArtifactStagingDirectory) - - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE - value: 'true' - - name: CodeCovToken - value: 'c93f6719-da50-4d00-ba2b-b73fd95239e0' - - group: rsg-bot + - name: CONFIGURATION + value: Release + - name: VERBOSITY + value: Normal + - name: COVERAGE + value: '$(Agent.BuildDirectory)/c' + - name: ARTIFACTS + value: $(Build.ArtifactStagingDirectory) + - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE + value: 'true' + - name: CodeCovToken + value: 'c93f6719-da50-4d00-ba2b-b73fd95239e0' + - group: rsg-bot + # Fixes the github package repo warnings on restore + - name: EmitAssetsLogMessages + value: false + - name: HideWarningsAndErrors + value: true jobs: - - template: pipeline/nuke.yml@rsg - parameters: + - template: jobs/gitversion.yml@rsg + - template: jobs/publish-release.yml@rsg + parameters: + EnableReleaseNotes: true + GitHub: true + GitHubPackages: true + GitHubAuthVariableGroup: rsg-bot + PublishNuGetPackagesFromArtifact: 'NuGet - Windows' + AuthNuGetFeeds: + - name: RocketSurgeonsGuild + source: https://nuget.pkg.github.com/RocketSurgeonsGuild/index.json + username: $(GitHub.UserName) + password: $(GitHub.Token) + + - job: Build + dependsOn: + - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/tags/v') }}: + - GitHub_Draft_Release + variables: + - group: rsg-bot + strategy: + matrix: + Windows: + BuildName: 'Windows' + ImageName: 'windows-latest' + Linux: + BuildName: 'Linux' + ImageName: 'ubuntu-latest' + macOS: + BuildName: 'macOS' + ImageName: 'macOS-latest' + pool: + vmImage: $(ImageName) + steps: + - template: support/mono.yml@rsg + - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/tags/v') }}: + - template: support/download-release-notes.yml@rsg + - template: support/install-dotnet.yml@rsg + parameters: + DotNetSdk: + - '2.x' + - '3.x' AuthNuGetFeeds: - - name: RocketSurgeonsGuild - source: https://nuget.pkg.github.com/RocketSurgeonsGuild/index.json - username: $(GitHub.UserName) - password: $(GitHub.Token) + - name: RocketSurgeonsGuild + source: https://nuget.pkg.github.com/RocketSurgeonsGuild/index.json + username: $(GitHub.UserName) + password: $(GitHub.Token) + - template: support/gitversion-hack.yml@rsg + + - task: DotNetCoreCLI@2 + displayName: 'dotnet tool restore' + inputs: + command: custom + custom: tool + arguments: 'restore' + + - task: DotNetCoreCLI@2 + displayName: 'dotnet restore' + inputs: + command: restore + feedsToUse: config + nugetConfigPath: NuGet.config + verbosityRestore: Minimal + + - template: ./azure-pipelines.nuke.yml + parameters: + Artifacts: $(Artifacts) Configuration: $(Configuration) - Verbosity: $(Verbosity) - GitHub: true - GitHubAuthVariableGroup: rsg-bot - GitHubPackages: true - MyGetPackages: false - DotNetSdk: - - '2.x' - - '3.x' - NuGetVersion: '5.4.0' + Coverage: $(Coverage) + + - template: support/publish-artifacts.yml@rsg + parameters: + Artifacts: $(Artifacts) + Configuration: $(Configuration) + Coverage: $(Coverage) + Postfix: ' - $(BuildName)' + PublishVSTest: true diff --git a/src/CI/build/Rocket.Surgery.MSBuild.CI.props b/src/CI/build/Rocket.Surgery.MSBuild.CI.props index 774e29e2..e041fbc0 100644 --- a/src/CI/build/Rocket.Surgery.MSBuild.CI.props +++ b/src/CI/build/Rocket.Surgery.MSBuild.CI.props @@ -1,4 +1,7 @@  + + false +