This repository was archived by the owner on Jan 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 172
/
Copy pathpack.ps1
109 lines (91 loc) · 3.31 KB
/
pack.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
$ErrorActionPreference = 'Stop'
& "$PSScriptRoot/set-env.ps1"
$all_ok = $True
Write-Host "Assembly version: $Env:ASSEMBLY_VERSION"
##
# Q# compiler
##
function Publish-One {
param(
[string]$project
);
Write-Host "##[info]Publishing $project ..."
dotnet publish (Join-Path $PSScriptRoot $project) `
-c $Env:BUILD_CONFIGURATION `
-v $Env:BUILD_VERBOSITY `
--no-build `
/property:Version=$Env:ASSEMBLY_VERSION
if ($LastExitCode -ne 0) {
Write-Host "##vso[task.logissue type=error;]Failed to publish $project."
$script:all_ok = $False
}
}
function Pack-One() {
param(
[string]$project,
[string]$include_references=""
);
Write-Host "##[info]Packing '$project'..."
nuget pack (Join-Path $PSScriptRoot $project) `
-OutputDirectory $Env:NUGET_OUTDIR `
-Properties Configuration=$Env:BUILD_CONFIGURATION `
-Version $Env:NUGET_VERSION `
-Verbosity detailed `
$include_references
if ($LastExitCode -ne 0) {
Write-Host "##vso[task.logissue type=error;]Failed to pack $project."
$script:all_ok = $False
}
}
function Pack-Dotnet() {
Param($project, $option1 = "", $option2 = "", $option3 = "")
dotnet pack (Join-Path $PSScriptRoot $project) `
-o $Env:NUGET_OUTDIR `
-c $Env:BUILD_CONFIGURATION `
-v detailed `
--no-build `
/property:Version=$Env:ASSEMBLY_VERSION `
/property:PackageVersion=$Env:NUGET_VERSION `
$option1 `
$option2 `
$option3
if ($LastExitCode -ne 0) {
Write-Host "##vso[task.logissue type=error;]Failed to pack $project."
$script:all_ok = $False
}
}
################################
# Start main execution:
$all_ok = $True
Publish-One '../src/QsCompiler/CommandLineTool/CommandLineTool.csproj'
Publish-One '../src/QsCompiler/LlvmBindings/LlvmBindings.csproj'
Publish-One '../src/QuantumSdk/Tools/BuildConfiguration/BuildConfiguration.csproj'
Publish-One '../src/QuantumSdk/Tools/DefaultEntryPoint/DefaultEntryPoint.csproj'
Publish-One '../src/QsFmt/App/App.fsproj'
Pack-One '../src/QsCompiler/Compiler/Compiler.csproj' '-IncludeReferencedProjects'
Pack-One '../src/QsCompiler/QirGeneration/QirGeneration.csproj'
Pack-One '../src/QsCompiler/CSharpGeneration/CSharpGeneration.fsproj' '-IncludeReferencedProjects'
Pack-Dotnet '../src/Documentation/DocumentationGenerator/DocumentationGenerator.csproj'
Pack-One '../src/ProjectTemplates/Microsoft.Quantum.ProjectTemplates.nuspec'
Pack-One '../src/QuantumSdk/QuantumSdk.nuspec'
if ($Env:ENABLE_VSIX -ne "false") {
& "$PSScriptRoot/pack-extensions.ps1"
} else {
Write-Host "##vso[task.logissue type=warning;]VSIX packing skipped due to ENABLE_VSIX variable."
}
# Copy documentation summarization tool into docs drop.
# Note that we only copy this tool when DOCS_OUTDIR is set (that is, when we're
# collecting docs in a build artifact).
if ("$Env:DOCS_OUTDIR".Trim() -ne "") {
Push-Location (Join-Path $PSScriptRoot "../src/Documentation/Summarizer")
Copy-Item -Path *.py, *.txt -Destination $Env:DOCS_OUTDIR
Pop-Location
}
if (-not $all_ok) {
throw "Packing failed. Check the logs."
exit 1
} else {
exit 0
}