diff --git a/.azure-devops/archives/build-efadapter.yml b/.azure-devops/archives/build-efadapter.yml deleted file mode 100644 index 3a73a0d958..0000000000 --- a/.azure-devops/archives/build-efadapter.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Build microsoft.fast.components.fluentui.datagrid.entityframeworkadapter - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: '**/Microsoft.Fast.Components.FluentUI.DataGrid.EntityFrameworkAdapter.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.407 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.202 - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Restore packages - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Build - inputs: - command: 'build' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - -- task: EsrpCodeSigning@3 - displayName: Code Signing Assemblies (Authenticode Signing) - inputs: - ConnectedServiceName: 'FAST-NuGet-Publishing-SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: | - **/*.nupkg - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - - -- task: NuGetCommand@2 - displayName: Publish to NuGet - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)\*.nupkg;' - nuGetFeedType: 'external' - publishFeedCredentials: 'NugetServiceConnect' \ No newline at end of file diff --git a/.azure-devops/archives/build-templates.yml b/.azure-devops/archives/build-templates.yml deleted file mode 100644 index 66d05e46a0..0000000000 --- a/.azure-devops/archives/build-templates.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Build microsoft.fast.templates.fluentui - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: 'templates/Microsoft.Fast.Templates.FluentUI.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.408 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.203 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Install dependencies - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - -- task: EsrpCodeSigning@3 - displayName: Code Signing Assemblies (Authenticode Signing) - inputs: - ConnectedServiceName: 'FAST-NuGet-Publishing-SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: | - **/*.nupkg - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - -- task: NuGetCommand@2 - displayName: Publish to NuGet - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)\*.nupkg;' - nuGetFeedType: 'external' - publishFeedCredentials: 'NugetServiceConnect' \ No newline at end of file diff --git a/.azure-devops/archives/build.yml b/.azure-devops/archives/build.yml deleted file mode 100644 index e4774013b3..0000000000 --- a/.azure-devops/archives/build.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Build Microsoft.Fast.Components.FluentUI package - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: '**/Microsoft.Fast.Components.FluentUI.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.408 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.203 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Restore packages - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: 'dotnet build $(buildConfiguration)' - inputs: - command: 'build' - projects: $(project) - arguments: '--configuration $(buildConfiguration)' - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - nobuild: true - verbosityPack: 'Normal' - feedsToUse: 'config' - nugetConfigPath: - -- task: EsrpCodeSigning@3 - inputs: - ConnectedServiceName: 'ESRP Code Signing SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: '**/*.nupkg' - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - -- task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)' \ No newline at end of file diff --git a/.azure-devops/archives/cd-publish-efadapter.yml b/.azure-devops/archives/cd-publish-efadapter.yml deleted file mode 100644 index 509b6e2e34..0000000000 --- a/.azure-devops/archives/cd-publish-efadapter.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Publish Microsoft FluentUI-Blazor DataGid EF Adapter - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: '**/Microsoft.Fast.Components.FluentUI.DataGrid.EntityFrameworkAdapter.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.408 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.203 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Restore packages - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Build - inputs: - command: 'build' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - -- task: EsrpCodeSigning@3 - displayName: Code Signing Assemblies (Authenticode Signing) - inputs: - ConnectedServiceName: 'FAST-NuGet-Publishing-SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: | - **/*.nupkg - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - - -- task: NuGetCommand@2 - displayName: Publish to NuGet - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)\*.nupkg;' - nuGetFeedType: 'external' - publishFeedCredentials: 'NugetServiceConnect' \ No newline at end of file diff --git a/.azure-devops/archives/cd-publish-templates.yml b/.azure-devops/archives/cd-publish-templates.yml deleted file mode 100644 index 17562bc256..0000000000 --- a/.azure-devops/archives/cd-publish-templates.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Publish Microsoft FluentUI-Blazor Templates - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: 'templates/Microsoft.Fast.Templates.FluentUI.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.408 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.203 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Install dependencies - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - -- task: EsrpCodeSigning@3 - displayName: Code Signing Assemblies (Authenticode Signing) - inputs: - ConnectedServiceName: 'FAST-NuGet-Publishing-SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: | - **/*.nupkg - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - -- task: NuGetCommand@2 - displayName: Publish to NuGet - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)\*.nupkg;' - nuGetFeedType: 'external' - publishFeedCredentials: 'NugetServiceConnect' \ No newline at end of file diff --git a/.azure-devops/archives/cd-publish.yml b/.azure-devops/archives/cd-publish.yml deleted file mode 100644 index 6a45fbe108..0000000000 --- a/.azure-devops/archives/cd-publish.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Publish Microsoft FluentUI-Blazor - -pr: none -trigger: none - -pool: - vmImage: 'windows-2022' - -variables: - project: '**/Microsoft.Fast.Components.FluentUI.csproj' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - displayName: Install NuGet tools - -- task: UseDotNet@2 - displayName: 'Install .NET 6.0' - inputs: - version: 6.0.408 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 7.0' - inputs: - version: 7.0.203 - includePreviewVersions: true - -- task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - -- task: DotNetCoreCLI@2 - displayName: Restore packages - inputs: - command: 'restore' - projects: $(project) - -- task: DotNetCoreCLI@2 - displayName: 'dotnet build $(buildConfiguration)' - inputs: - command: 'build' - projects: $(project) - arguments: '--configuration $(buildConfiguration)' - -- task: DotNetCoreCLI@2 - displayName: Pack - inputs: - command: 'pack' - packagesToPack: $(project) - versioningScheme: 'off' - nobuild: true - verbosityPack: 'Normal' - feedsToUse: 'config' - nugetConfigPath: - -- task: EsrpCodeSigning@3 - displayName: Code Signing Assemblies (Authenticode Signing) - inputs: - ConnectedServiceName: 'FAST-NuGet-Publishing-SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: | - **/*.nupkg - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - -- task: NuGetCommand@2 - displayName: Publish to NuGet - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)\*.nupkg;' - nuGetFeedType: 'external' - publishFeedCredentials: 'NugetServiceConnect' diff --git a/.azure-devops/build-all-lib.yml b/.azure-devops/build-all-lib.yml new file mode 100644 index 0000000000..4719d0101d --- /dev/null +++ b/.azure-devops/build-all-lib.yml @@ -0,0 +1,24 @@ +# Build all projects. + +pr: none # Disable pull request triggers. +trigger: none # Disable push triggers. + +# Build.BuildNumber (see versioning.yml) +name: $(FileVersion).$(Year:yy)$(DayOfYear).$(Rev:r) + +pool: + name: HostedDVO + demands: + - agent.name -equals Hosted-FluentUI + +extends: + template: common/template-to-build-projects.yml + parameters: + Projects: | + **/Microsoft.Fast.Components.FluentUI.csproj + **/Microsoft.Fast.Components.FluentUI.Icons.csproj + **/Microsoft.Fast.Components.FluentUI.Emojis.csproj + **/Microsoft.Fast.Templates.FluentUI.csproj + **/Microsoft.Fast.Components.FluentUI.DataGrid.EntityFrameworkAdapter.csproj + Tests: | + **/Microsoft.Fast.Components.FluentUI.Tests.csproj \ No newline at end of file diff --git a/.azure-devops/build-assets-emoji.yml b/.azure-devops/build-assets-emoji.yml deleted file mode 100644 index 89e5d7cdea..0000000000 --- a/.azure-devops/build-assets-emoji.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Build and test projects. -pr: none # Disable pull request triggers. -trigger: none # Disable push triggers. - -# Build.BuildNumber -# use the variable "PublicVersion" to define a public version number (Ex. 2.3.6 or 3.0.0-preview.3) -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) - -pool: - vmImage: 'windows-2022' - - -extends: - template: common/template-to-build-projects.yml - parameters: - Projects: | - **/Microsoft.Fast.Components.FluentUI.Emojis.csproj - diff --git a/.azure-devops/build-assets-icons.yml b/.azure-devops/build-assets-icons.yml deleted file mode 100644 index d76fb4953f..0000000000 --- a/.azure-devops/build-assets-icons.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Build and test projects. - -pr: none # Disable pull request triggers. -trigger: none # Disable push triggers. - -# Build.BuildNumber -# use the variable "PublicVersion" to define a public version number (Ex. 2.3.6 or 3.0.0-preview.3) -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) - -pool: - vmImage: 'windows-2022' - -extends: - template: common/template-to-build-projects.yml - parameters: - Projects: | - **/Microsoft.Fast.Components.FluentUI.Icons.csproj diff --git a/.azure-devops/build-core-lib.yml b/.azure-devops/build-core-lib.yml index 798c4f53a7..6527335e93 100644 --- a/.azure-devops/build-core-lib.yml +++ b/.azure-devops/build-core-lib.yml @@ -1,4 +1,4 @@ -# Build and test projects. +# Build and test Core project. pr: - main @@ -7,13 +7,16 @@ trigger: - main - dev -# Build.BuildNumber -# use the variable "PublicVersion" to define a public version number (Ex. 2.3.6 or 3.0.0-preview.3) -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) +# Build.BuildNumber (see versioning.yml) +name: $(FileVersion).$(Year:yy)$(DayOfYear).$(Rev:r) +# pool: +# vmImage: 'windows-2022' pool: - vmImage: 'windows-2022' - + name: HostedDVO + demands: + - agent.name -equals Hosted-FluentUI + extends: template: common/template-to-build-projects.yml parameters: diff --git a/.azure-devops/build-demo.yml b/.azure-devops/build-demo.yml index e537047b9a..6a90b46f56 100644 --- a/.azure-devops/build-demo.yml +++ b/.azure-devops/build-demo.yml @@ -1,14 +1,20 @@ -# Build and test projects. +# Build Demo project. pr: none # Disable pull request triggers. trigger: - main +- dev -# Build.BuildNumber -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) +# Build.BuildNumber (see versioning.yml) +name: $(FileVersion).$(Year:yy)$(DayOfYear).$(Rev:r) + +# pool: +# vmImage: 'windows-2022' pool: - vmImage: 'windows-2022' + name: HostedDVO + demands: + - agent.name -equals Hosted-FluentUI variables: - group: Versioning # These variables are in Azure DevOps / Pipelines / Library @@ -18,67 +24,6 @@ variables: **/FluentUI.Demo.Client.csproj steps: - - powershell: | - $builds = "$(Build.BuildNumber)".Split('.') - $stage = "$(VersionStage)" - $stageId = "$(VersionStageId)" - - if ("$stageId" -eq "") - { - $package = "$($builds[0]).$($builds[1]).$($builds[2]).$($builds[3]).$($builds[4])" - } - else - { - $package = "$($builds[0]).$($builds[1]).$($builds[2])-$($stage).$($stageId).$($builds[3]).$($builds[4])" - } - - # Set the output variable for use in other tasks. - Write-Host "##vso[task.setvariable variable=VersionPackage]${package}" - displayName: Compute VersionPackage - - - task: NuGetToolInstaller@1 - displayName: Install NuGet tools - - - task: UseDotNet@2 - displayName: 'Install .NET 8.0' - inputs: - version: 8.0.x - includePreviewVersions: true - - # Set version number - - task: Assembly-Info-NetCore@3 - displayName: 'Versioning $(Build.BuildNumber)' - inputs: - Path: '$(Build.SourcesDirectory)' - FileNames: '**/*.csproj' - InsertAttributes: true - FileEncoding: 'auto' - WriteBOM: false - VersionNumber: '$(Build.BuildNumber)' - FileVersionNumber: '$(Build.BuildNumber)' - InformationalVersion: '$(Build.BuildNumber)' - PackageVersion: '$(VersionPackage)' - LogLevel: 'verbose' - FailOnWarning: false - DisableTelemetry: false - - # Install dependencies - - task: DotNetCoreCLI@2 - displayName: Install dependencies - inputs: - command: 'restore' - projects: $(Projects) - - # Build the projects - - task: DotNetCoreCLI@2 - displayName: 'Build $(Build.BuildNumber)' - inputs: - command: 'build' - publishWebProjects: false # True to build all Web Projects - projects: $(Projects) - arguments: '--configuration Release --output $(Build.ArtifactStagingDirectory)' - zipAfterPublish: false - workingDirectory: '$(Build.SourcesDirectory)' # Publish the projects - task: DotNetCoreCLI@2 diff --git a/.azure-devops/build-tools.yml b/.azure-devops/build-tools.yml deleted file mode 100644 index cf68287321..0000000000 --- a/.azure-devops/build-tools.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Build and test projects. - -pr: none # Disable pull request triggers. -trigger: none # Disable push triggers. - -# Build.BuildNumber -# use the variable "PublicVersion" to define a public version number (Ex. 2.3.6 or 3.0.0-preview.3) -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) - -pool: - vmImage: 'windows-2022' - -extends: - template: common/template-to-build-projects.yml - parameters: - Projects: | - **/Microsoft.Fast.Components.FluentUI.DataGrid.EntityFrameworkAdapter.csproj - **/Microsoft.Fast.Templates.FluentUI.csproj diff --git a/.azure-devops/common/template-to-build-projects.yml b/.azure-devops/common/template-to-build-projects.yml index 80ec49c439..2512af772b 100644 --- a/.azure-devops/common/template-to-build-projects.yml +++ b/.azure-devops/common/template-to-build-projects.yml @@ -1,77 +1,127 @@ -parameters: -- name: Projects # List of projects to build +parameters: +- name: Projects # List of projects to build type: string default: '' -- name: Tests # List of Unit-Test projects to run +- name: Tests # List of Unit-Test projects to run type: string default: '' variables: -- group: Versioning # These variables are in Azure DevOps / Pipelines / Library +- template: versioning.yml # Versions steps: - # In the main YAML script, set the "name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r)" + # Compute AssemblyVersion and PackageVersion + # -> Update Versioning.yml - powershell: | - $builds = "$(Build.BuildNumber)".Split('.') - $stage = "$(VersionStage)" - $stageId = "$(VersionStageId)" - - if ("$stageId" -eq "") + + # Example with FileVersion: "1.2.4" and PackageSuffix: "RC.1" + # Build.BuildNumber = 1.2.4.23296.1 + # = $(FileVersion).$(Year:yy)$(DayOfYear).$(Rev:r) + + # Defaut values + $branch = "PR" + $package = "" + + # To Sign and To Test + $sign = "false" + $toTest = "true" + + # BranchName = dev, main or PR + if ("$(Build.SourceBranch)" -eq "refs/heads/main") { - $package = "$($builds[0]).$($builds[1]).$($builds[2]).$($builds[3]).$($builds[4])" + $branch = "main" } - else + if ("$(Build.SourceBranch)" -eq "refs/heads/dev") { - $package = "$($builds[0]).$($builds[1]).$($builds[2])-$($stage).$($stageId).$($builds[3]).$($builds[4])" + $branch = "dev" } - - $sign = "false"; - $toTest = "false"; - # If PublicVersion is set, then we are building a public and signed version. - if ("$(PublicVersion)" -ne "") + # [1, 2, 4, 23296, 1] + $builds = "$(Build.BuildNumber)".Split('.') + + # 1.2.4.23296 + $assembly = "$($builds[0]).$($builds[1]).$($builds[2]).$($builds[3])" + + # Main without PackageSuffix: 1.2.4 + # Main with PackageSuffix: 1.2.4-RC.1 + if ("$branch" -eq "main") { - $package = "$(PublicVersion)" - $sign = "true" + # Main without PackageSuffix + if ("$(PackageSuffix)" -eq "") + { + $package = "$($builds[0]).$($builds[1]).$($builds[2])" + } + + # Main with PackageSuffix + else + { + $package = "$($builds[0]).$($builds[1]).$($builds[2])-$(PackageSuffix)" + } + + $sign = "true" + $toTest = "true" } - # If Tests is set, then we are testing these projects. - if ("${{ parameters.Tests }}" -ne "") + # Dev: 1.2.4-Preview-23296-1 + if ("$branch" -eq "dev") { - $toTest = "true" + $package = "$($builds[0]).$($builds[1]).$($builds[2])-Preview-$($builds[3])-$($builds[4])" + $sign = "true" + $toTest = "true" } + # Other branches: 1.2.4-Preview-23296-1 + else + { + $package = "$($builds[0]).$($builds[1]).$($builds[2])-Preview-$($builds[3])-$($builds[4])" + $sign = "false" + $toTest = "true" + } + # Set the output variable for use in other tasks. - Write-Host "##vso[task.setvariable variable=VersionPackage]${package}" + Write-Host "##vso[task.setvariable variable=BranchName]${branch}" + Write-Host "##vso[task.setvariable variable=AssemblyVersion]${assembly}" + Write-Host "##vso[task.setvariable variable=PackageVersion]${package}" Write-Host "##vso[task.setvariable variable=ShouldSign]${sign}" Write-Host "##vso[task.setvariable variable=ShouldTest]${toTest}" - displayName: Compute VersionPackage + displayName: Compute AssemblyVersion and PackageVersion + # Display computed variables - script: | - echo "VersionPackage = $(VersionPackage)" - echo "BuildNumber = $(Build.BuildNumber)" - echo "PublicVersion = $(PublicVersion)" - echo "ShouldSign = $(ShouldSign)" - echo "ShouldTest = $(ShouldTest)" + echo 🔸 FileVersion = $(FileVersion) + echo 🔸 PackageSuffix = $(PackageSuffix) + echo 🔸 Build.BuildNumber = $(Build.BuildNumber) + echo 🔸 Build.SourceBranch = $(Build.SourceBranch) + echo ----------------------------------------------- + echo 🔸 BranchName = $(BranchName) + echo 🔸 AssemblyVersion = $(AssemblyVersion) + echo 🔸 PackageVersion = $(PackageVersion) + echo ----------------------------------------------- + echo 🔸 ShouldSign = $(ShouldSign) + echo 🔸 ShouldTest = $(ShouldTest) displayName: Display computed variables + # Install NuGet tools - task: NuGetToolInstaller@1 displayName: Install NuGet tools + # Install .NET 6.0 - task: UseDotNet@2 displayName: Install .NET 6.0 inputs: - version: 6.0.412 + version: 6.0.416 includePreviewVersions: true + # Install .NET 7.0 - task: UseDotNet@2 displayName: 'Install .NET 7.0' inputs: - version: 7.0.306 + version: 7.0.403 includePreviewVersions: true + # Install .NET 8.0 - task: UseDotNet@2 displayName: 'Install .NET 8.0' inputs: @@ -87,10 +137,10 @@ steps: InsertAttributes: true FileEncoding: 'auto' WriteBOM: false - VersionNumber: '$(Build.BuildNumber)' - FileVersionNumber: '$(Build.BuildNumber)' - InformationalVersion: '$(Build.BuildNumber)' - PackageVersion: '$(VersionPackage)' + VersionNumber: '$(AssemblyVersion)' + FileVersionNumber: '$(AssemblyVersion)' + InformationalVersion: '$(AssemblyVersion)' + PackageVersion: '$(PackageVersion)' LogLevel: 'verbose' FailOnWarning: false DisableTelemetry: false @@ -138,6 +188,7 @@ steps: summaryFileLocation: '**/*.cobertura.xml' reportDirectory: CoverageFolder + # Not currently used (kept for archives) # - task: DotNetCoreCLI@2 # displayName: Pack $(Build.BuildNumber) # inputs: @@ -154,7 +205,7 @@ steps: displayName: 'Pack $(Build.BuildNumber)' inputs: SourceFolder: '$(Build.SourcesDirectory)' - Contents: '**/*$(VersionPackage).nupkg' + Contents: '**/*$(PackageVersion).nupkg' TargetFolder: '$(Build.ArtifactStagingDirectory)' CleanTargetFolder: true OverWrite: true @@ -190,6 +241,7 @@ steps: MaxConcurrency: '200' MaxRetryAttempts: '5' + # Publish the Artifacts - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' diff --git a/.azure-devops/common/versioning.yml b/.azure-devops/common/versioning.yml new file mode 100644 index 0000000000..0bc214e873 --- /dev/null +++ b/.azure-devops/common/versioning.yml @@ -0,0 +1,6 @@ +variables: + # File and Package version + # dev branch: 1.2.4-Preview-23282-1' (PackageSuffix is always ignored in Dev branch) + # main branch: 1.2.4-RC.1' (PackageSuffix is ignored, if empty, in Main branch) + FileVersion: '3.3.0' + PackageSuffix: '' \ No newline at end of file diff --git a/.azure-devops/test-sign.yaml b/.azure-devops/test-sign.yaml deleted file mode 100644 index 0590f67438..0000000000 --- a/.azure-devops/test-sign.yaml +++ /dev/null @@ -1,84 +0,0 @@ - -# Build and test projects. -pr: none # Disable pull request triggers. -trigger: none # Disable push triggers. - -# Build.BuildNumber -# use the variable "PublicVersion" to define a public version number (Ex. 2.3.6 or 3.0.0-preview.3) -name: $(VersionMajor).$(VersionMinor).$(VersionPatch).$(Year:yy)$(DayOfYear).$(Rev:r) - -pool: - vmImage: 'ubuntu-latest' - -parameters: -- name: Projects # List of projects to build - type: string - default: | - **/Microsoft.Fast.Components.FluentUI.Emojis.csproj - -variables: -- group: Versioning # These variables are in Azure DevOps / Pipelines / Library - -steps: - - # In the main YAML script, set the "name: $(VersionMajor).$(Year:yy)$(DayOfYear).$(Rev:r)" - - powershell: | - $builds = "$(Build.BuildNumber)".Split('.') - $stage = "$(VersionStage)" - $stageId = "$(VersionStageId)" - $package = "$($builds[0]).$($builds[1]).$($builds[2])-$($stage).$($stageId).$($builds[3]).$($builds[4])" - $sign = "true"; - - - # Set the output variable for use in other tasks. - Write-Host "##vso[task.setvariable variable=VersionPackage]${package}" - Write-Host "##vso[task.setvariable variable=ShouldSign]${sign}" - displayName: Compute VersionPackage - - - script: | - echo "VersionPackage = $(VersionPackage)" - echo "BuildNumber = $(Build.BuildNumber)" - displayName: Display computed variables - - # Since NuGet packages are generated during the build, we need to copy them to the artifacts folder. - - task: CopyFiles@2 - displayName: 'Pack $(Build.BuildNumber)' - inputs: - SourceFolder: '/home/vsts/work/1/s/' - Contents: '**/Microsoft.Fast.Components.FluentUI.Emoji.4.0.0-preview.1.nupkg' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - CleanTargetFolder: true - OverWrite: true - flattenFolders: true - - - task: EsrpCodeSigning@3 - inputs: - ConnectedServiceName: 'ESRP Code Signing SC' - FolderPath: '$(Build.ArtifactStagingDirectory)' - Pattern: '**/*.nupkg' - UseMinimatch: true - signConfigType: 'inlineSignParams' - inlineOperation: | - [ - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetSign", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - }, - { - "KeyCode" : "CP-401405", - "OperationCode" : "NuGetVerify", - "Parameters" : {}, - "ToolName" : "sign", - "ToolVersion" : "1.0" - } - ] - SessionTimeout: '60' - MaxConcurrency: '200' - MaxRetryAttempts: '5' - - - task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)' diff --git a/Directory.Build.props b/Directory.Build.props index 35745b3cfd..42c6be03f2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,17 +9,8 @@ https://github.com/microsoft/fluentui-blazor git true - $(MSBuildThisFileDirectory) - - 3.2.3 - 3.2.3 - - - $(VersionFile) - $(VersionFile) true - $(VersionPrefix)$(VersionSuffix) diff --git a/Microsoft.FluentUI.sln b/Microsoft.FluentUI.sln index cdb8f89153..3a87be4efc 100644 --- a/Microsoft.FluentUI.sln +++ b/Microsoft.FluentUI.sln @@ -52,21 +52,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution WHATSNEW.md = WHATSNEW.md EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Azure DevOps pipelines", "Azure DevOps pipelines", "{BECDF0C6-072E-4B4E-8E72-295CA171F0B2}" - ProjectSection(SolutionItems) = preProject - .azure-devops\build-assets-emoji.yml = .azure-devops\build-assets-emoji.yml - .azure-devops\build-assets-icons.yml = .azure-devops\build-assets-icons.yml - .azure-devops\build-core-lib.yml = .azure-devops\build-core-lib.yml - .azure-devops\build-demo.yml = .azure-devops\build-demo.yml - .azure-devops\build-tools.yml = .azure-devops\build-tools.yml - .azure-devops\test-sign.yaml = .azure-devops\test-sign.yaml - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{9AAEFCC9-1D75-4294-B06F-C5959EC14055}" - ProjectSection(SolutionItems) = preProject - .azure-devops\common\template-to-build-projects.yml = .azure-devops\common\template-to-build-projects.yml - EndProjectSection -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -128,7 +113,6 @@ Global {3EF0E994-318F-4CB9-A109-81E6CE9B762C} = {EBE3ACB2-9B23-4F91-9953-7153E3D2B0DA} {DAE11C9D-6756-4B05-B3D8-FE7C28411F95} = {9468ADD1-3660-410D-8231-6F89384D135D} {345DE479-8DB3-4F84-BBC0-C44C12D9DED0} = {DAE11C9D-6756-4B05-B3D8-FE7C28411F95} - {9AAEFCC9-1D75-4294-B06F-C5959EC14055} = {BECDF0C6-072E-4B4E-8E72-295CA171F0B2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {420693A7-C2FD-498C-8E78-4B65CC25389A}