mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-28 16:07:02 +01:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request It's time to enable AOT by default and clean up the related configuration. PublishReadyToRun and PublishTrimmed are unnecessary now. By clean up these configuration, cmdpal will: 1. Run without AOT in the VS by default. 2. Build with AOT by default in the Pipeline. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed --------- Co-authored-by: Yu Leng <yuleng@microsoft.com>
160 lines
6.3 KiB
YAML
160 lines
6.3 KiB
YAML
trigger: none
|
|
pr: none
|
|
|
|
resources:
|
|
repositories:
|
|
- repository: 1ESPipelineTemplates
|
|
type: git
|
|
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
|
ref: refs/tags/release
|
|
|
|
# Expose all of these parameters for user configuration.
|
|
parameters:
|
|
- name: publishSymbolsToPublic
|
|
displayName: "Publish Symbols to **PUBLIC** (use only for Final Builds)"
|
|
type: boolean
|
|
default: false
|
|
|
|
- name: versionNumber
|
|
displayName: "Version Number"
|
|
type: string
|
|
default: '0.0.1'
|
|
|
|
- name: installerSuffix
|
|
type: string
|
|
displayName: "WiX5 installer suffix (e.g., 'wix5', 'vnext', etc.)"
|
|
default: "wix5"
|
|
|
|
- name: buildConfigurations
|
|
displayName: "Build Configurations"
|
|
type: object
|
|
default:
|
|
- Release
|
|
|
|
- name: buildPlatforms
|
|
displayName: "Build Platforms"
|
|
type: object
|
|
default:
|
|
- x64
|
|
- arm64
|
|
|
|
- name: useVSPreview
|
|
type: boolean
|
|
displayName: "Build Using Visual Studio Preview"
|
|
default: false
|
|
|
|
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
|
|
|
|
variables:
|
|
- template: templates/variables-nuget-package-version.yml
|
|
|
|
extends:
|
|
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
|
|
parameters:
|
|
customBuildTags:
|
|
- 1ES.PT.ViaStartRight
|
|
pool:
|
|
name: SHINE-INT-S
|
|
${{ if eq(parameters.useVSPreview, true) }}:
|
|
demands: ImageOverride -equals SHINE-VS17-Preview
|
|
${{ else }}:
|
|
image: SHINE-VS17-Latest
|
|
os: windows
|
|
sdl:
|
|
tsa:
|
|
enabled: true
|
|
configFile: '$(Build.SourcesDirectory)\.pipelines\tsa.json'
|
|
binskim:
|
|
enabled: true
|
|
# Exclude every dll/exe in tests/*, as well as all msdia*, covrun* and vcruntime*
|
|
analyzeTargetGlob: +:file|$(Build.ArtifactStagingDirectory)/**/*.dll;+:file|$(Build.ArtifactStagingDirectory)/**/*.exe;-:file:regex|tests.*\.(dll|exe)$;-:file:regex|(covrun.*)\.dll$;-:file:regex|(msdia.*)\.dll$;-:file:regex|(vcruntime.*)\.dll$
|
|
|
|
stages:
|
|
- stage: Build
|
|
displayName: Build
|
|
dependsOn: []
|
|
jobs:
|
|
- template: .pipelines/v2/templates/job-build-project.yml@self
|
|
parameters:
|
|
pool:
|
|
name: SHINE-INT-L
|
|
${{ if eq(parameters.useVSPreview, true) }}:
|
|
demands: ImageOverride -equals SHINE-VS17-Preview
|
|
${{ else }}:
|
|
image: SHINE-VS17-Latest
|
|
os: windows
|
|
variables:
|
|
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations
|
|
SkipCppCodeAnalysis: 1 # Skip the code analysis to speed up release CI. It runs on PR CI, anyway
|
|
# IsExperimentationLive: 1 # The build and installer use this to turn on experimentation
|
|
buildPlatforms: ${{ parameters.buildPlatforms }}
|
|
buildConfigurations: ${{ parameters.buildConfigurations }}
|
|
versionNumber: ${{ parameters.versionNumber }}
|
|
publishArtifacts: false # 1ES PT handles publication for us.
|
|
official: true
|
|
codeSign: true
|
|
runTests: false
|
|
signingIdentity:
|
|
serviceName: $(SigningServiceName)
|
|
appId: $(SigningAppId)
|
|
tenantId: $(SigningTenantId)
|
|
akvName: $(SigningAKVName)
|
|
authCertName: $(SigningAuthCertName)
|
|
signCertName: $(SigningSignCertName)
|
|
useManagedIdentity: $(SigningUseManagedIdentity)
|
|
clientId: $(SigningOriginalClientId)
|
|
# Have msbuild use the release nuget config profile
|
|
installerSuffix: ${{ parameters.installerSuffix }}
|
|
additionalBuildOptions: /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:InstallerSuffix=${{ parameters.installerSuffix }} /p:EnableCmdPalAOT=true
|
|
beforeBuildSteps:
|
|
# Sets versions for all PowerToy created DLLs
|
|
- pwsh: |-
|
|
.pipelines/versionSetting.ps1 -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
|
|
displayName: Prepare versioning
|
|
|
|
# Prepare the localizations and telemetry config before the release build
|
|
- template: .pipelines/v2/templates/steps-fetch-and-prepare-localizations.yml@self
|
|
|
|
- pwsh: |-
|
|
$ErrorActionPreference = 'Stop'
|
|
$PSNativeCommandUseErrorActionPreference = $true
|
|
& nuget.exe restore -configFile .pipelines/release-nuget.config -PackagesDirectory . .pipelines/packages.config
|
|
Move-Item -Force -Verbose "Microsoft.PowerToys.Telemetry.*\build\include\TraceLoggingDefines.h" "src\common\Telemetry\TraceLoggingDefines.h"
|
|
Move-Item -Force -Verbose "Microsoft.PowerToys.Telemetry.*\build\include\TelemetryBase.cs" "src\common\Telemetry\TelemetryBase.cs"
|
|
displayName: Emplace telemetry files
|
|
|
|
- stage: Build_SDK
|
|
displayName: Build SDK
|
|
dependsOn: []
|
|
jobs:
|
|
- template: .pipelines/v2/templates/job-build-sdk.yml@self
|
|
parameters:
|
|
pool:
|
|
name: SHINE-INT-L
|
|
image: SHINE-VS17-Latest
|
|
os: windows
|
|
official: true
|
|
codeSign: true
|
|
signingIdentity:
|
|
serviceName: $(SigningServiceName)
|
|
appId: $(SigningAppId)
|
|
tenantId: $(SigningTenantId)
|
|
akvName: $(SigningAKVName)
|
|
authCertName: $(SigningAuthCertName)
|
|
signCertName: $(SigningSignCertName)
|
|
useManagedIdentity: $(SigningUseManagedIdentity)
|
|
clientId: $(SigningOriginalClientId)
|
|
|
|
- stage: Publish
|
|
displayName: Publish
|
|
dependsOn: [Build]
|
|
jobs:
|
|
- template: .pipelines/v2/templates/job-publish-symbols-using-symbolrequestprod-api.yml@self
|
|
parameters:
|
|
versionNumber: ${{ parameters.versionNumber }}
|
|
includePublicSymbolServer: ${{ parameters.publishSymbolsToPublic }}
|
|
${{ if ne(parameters.publishSymbolsToPublic, true) }}:
|
|
symbolExpiryTime: 10 # For private builds, expire symbols within 10 days. The default is 100 years.
|
|
subscription: $(SymbolPublishingServiceConnection)
|
|
symbolProject: $(SymbolPublishingProject)
|