Skip to content

Commit 5bdf20c

Browse files
committed
Generate version/os/arch bits in NuGet
1 parent c744bbb commit 5bdf20c

13 files changed

+204
-149
lines changed

azure-pipelines.yml

Lines changed: 66 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 1.0.$(Date:yyyyMMdd)$(Rev:.r)
1+
name: 1.0.$(Date:yyyyMMdd)$(Rev:r)
22

33
trigger:
44
- dev
@@ -52,34 +52,72 @@ jobs:
5252
LINUXSERVICEBUSCONNECTIONSTRING: $(LinuxServiceBusConnectionString)
5353
displayName: 'E2E Tests'
5454
55-
- template: pack/templates/win_env_gen.yml
56-
parameters:
57-
jobName: 'WindowsEnvGen'
58-
dependency: 'Tests'
55+
- job: Build_WINDOWS_X64
56+
dependsOn: 'Tests'
57+
pool:
5958
vmImage: 'vs2017-win2016'
60-
pythonVersion: '3.6'
61-
artifactName: 'Windows'
62-
63-
- template: pack/templates/nix_env_gen.yml
64-
parameters:
65-
jobName: 'LinuxEnvGen'
66-
dependency: 'Tests'
59+
strategy:
60+
matrix:
61+
Python36:
62+
pythonVersion: '3.6'
63+
Python37:
64+
pythonVersion: '3.7'
65+
steps:
66+
- template: pack/templates/win_env_gen.yml
67+
parameters:
68+
pythonVersion: '$(pythonVersion)'
69+
architecture: 'x64'
70+
artifactName: '$(pythonVersion)_WINDOWS_X64'
71+
- job: Build_WINDOWS_X86
72+
dependsOn: 'Tests'
73+
pool:
74+
vmImage: 'vs2017-win2016'
75+
strategy:
76+
matrix:
77+
Python37:
78+
pythonVersion: '3.7'
79+
steps:
80+
- template: pack/templates/win_env_gen.yml
81+
parameters:
82+
pythonVersion: '$(pythonVersion)'
83+
architecture: 'x86'
84+
artifactName: '$(pythonVersion)_WINDOWS_x86'
85+
- job: Build_LINUX_X64
86+
dependsOn: 'Tests'
87+
pool:
6788
vmImage: 'ubuntu-16.04'
68-
pythonVersion: '3.6'
69-
artifactName: 'Linux'
70-
71-
- template: pack/templates/nix_env_gen.yml
72-
parameters:
73-
jobName: 'MacEnvGen'
74-
dependency: 'Tests'
89+
strategy:
90+
matrix:
91+
Python36:
92+
pythonVersion: '3.6'
93+
Python37:
94+
pythonVersion: '3.7'
95+
steps:
96+
- template: pack/templates/nix_env_gen.yml
97+
parameters:
98+
pythonVersion: '$(pythonVersion)'
99+
artifactName: '$(pythonVersion)_LINUX_X64'
100+
- job: Build_OSX_X64
101+
dependsOn: 'Tests'
102+
pool:
75103
vmImage: 'macOS-10.13'
76-
pythonVersion: '3.6'
77-
artifactName: 'Mac'
104+
strategy:
105+
matrix:
106+
Python36:
107+
pythonVersion: '3.6'
108+
Python37:
109+
pythonVersion: '3.7'
110+
steps:
111+
- template: pack/templates/nix_env_gen.yml
112+
parameters:
113+
pythonVersion: '$(pythonVersion)'
114+
artifactName: '$(pythonVersion)_OSX_X64'
78115

79-
- job: PackageEnvironments
80-
dependsOn: ['WindowsEnvGen',
81-
'LinuxEnvGen',
82-
'MacEnvGen'
116+
- job: PackageWorkers
117+
dependsOn: ['Build_WINDOWS_X64',
118+
'Build_WINDOWS_X86',
119+
'Build_LINUX_X64',
120+
'Build_OSX_X64'
83121
]
84122
pool:
85123
vmImage: 'vs2017-win2016'
@@ -92,10 +130,11 @@ jobs:
92130
- task: NuGetCommand@2
93131
inputs:
94132
command: pack
95-
packagesToPack: 'pack\Microsoft.Azure.Functions.PythonWorkerRunEnvironments.nuspec'
133+
packagesToPack: 'pack\Microsoft.Azure.Functions.PythonWorker.nuspec'
96134
versioningScheme: 'byEnvVar'
97135
versionEnvVar: BUILD_BUILDNUMBER # Replaces version in nuspec
98136
- task: PublishBuildArtifacts@1
99137
inputs:
100138
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
101-
artifactName: 'PythonWorkerRunEnvironments'
139+
artifactName: 'PythonWorker'
140+

azure_functions_worker/testutils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
'Microsoft.Azure.WebJobs.Script.WebHost.dll'
4545
EXTENSIONS_PATH = PROJECT_ROOT / 'build' / 'extensions' / 'bin'
4646
FUNCS_PATH = TESTS_ROOT / UNIT_TESTS_FOLDER / 'http_functions'
47-
WORKER_PATH = PROJECT_ROOT / 'python'
47+
WORKER_PATH = PROJECT_ROOT / 'python' / 'test'
4848
WORKER_CONFIG = PROJECT_ROOT / '.testconfig'
4949
ON_WINDOWS = platform.system() == 'Windows'
5050

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
3+
<metadata>
4+
<id>Microsoft.Azure.Functions.PythonWorker</id>
5+
<version>1.0.0</version>
6+
<authors>Microsoft</authors>
7+
<owners>Microsoft</owners>
8+
<requireLicenseAcceptance>false</requireLicenseAcceptance>
9+
<description>Microsoft Azure Functions Python Worker</description>
10+
<copyright>© .NET Foundation. All rights reserved.</copyright>
11+
</metadata>
12+
<files>
13+
<file src="..\3.6_WINDOWS_x64\**" target="tools\3.6\WINDOWS\X64" />
14+
<!-- <file src="..\3.6_WINDOWS_X86\**" target="tools\3.6\WINDOWS\X86" /> -->
15+
<file src="..\3.6_LINUX_X64\**" target="tools\3.6\LINUX\X64" />
16+
<file src="..\3.6_OSX_X64\**" target="tools\3.6\OSX\X64" />
17+
<file src="..\3.7_WINDOWS_X64\**" target="tools\3.7\WINDOWS\X64" />
18+
<file src="..\3.7_WINDOWS_X86\**" target="tools\3.7\WINDOWS\X86" />
19+
<file src="..\3.7_LINUX_X64\**" target="tools\3.7\LINUX\X64" />
20+
<file src="..\3.7_OSX_X64\**" target="tools\3.7\OSX\X64" />
21+
<file src="..\python\prod\worker.config.json" target="tools" />
22+
<file src="Microsoft.Azure.Functions.PythonWorker.targets" target="build" />
23+
</files>
24+
</package>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<Project>
2+
<Target Name="Initialize" AfterTargets="Publish;Build">
3+
<CreateItem Include="$(MSBuildThisFileDirectory)\..\">
4+
<Output ItemName="MSBuildThisFileDirectoryParentDirectory" TaskParameter="Include"/>
5+
</CreateItem>
6+
7+
<CreateProperty Value="%(MSBuildThisFileDirectoryParentDirectory.Fullpath)">
8+
<Output PropertyName="NugetRoot" TaskParameter="Value"/>
9+
</CreateProperty>
10+
11+
<ItemGroup>
12+
<SourceFiles Include="$(NugetRoot)tools\**\*.*"/>
13+
</ItemGroup>
14+
</Target>
15+
16+
<Target Name="CopyOnPublish" DependsOnTargets="Initialize" AfterTargets="Publish">
17+
<Copy SourceFiles="@(SourceFiles)"
18+
DestinationFiles="@(SourceFiles->'$(PublishDir)\workers\python\%(RecursiveDir)%(Filename)%(Extension)')" />
19+
</Target>
20+
21+
<Target Name="CopyOnBuild" DependsOnTargets="Initialize" AfterTargets="Build">
22+
<Copy SourceFiles="@(SourceFiles)"
23+
DestinationFiles="@(SourceFiles->'$(OutDir)\workers\python\%(RecursiveDir)%(Filename)%(Extension)')" />
24+
</Target>
25+
</Project>

pack/Microsoft.Azure.Functions.PythonWorkerRunEnvironments.nuspec

Lines changed: 0 additions & 18 deletions
This file was deleted.

pack/Microsoft.Azure.Functions.PythonWorkerRunEnvironments.targets

Lines changed: 0 additions & 18 deletions
This file was deleted.

pack/scripts/win_deps.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
py -3.6 -m venv .env
1+
python -m venv .env
22
.env\scripts\activate
33
python -m pip install .
44

pack/templates/nix_env_gen.yml

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,37 @@
11
parameters:
2-
jobName: 'LinuxEnvGen'
3-
dependency: 'Tests'
4-
vmImage: 'ubuntu-16.04'
5-
pythonVersion: '3.6'
6-
artifactName: 'Linux'
7-
8-
jobs:
9-
- job: ${{ parameters.jobName }}
10-
dependsOn: ${{ parameters.dependency }}
11-
pool:
12-
vmImage: ${{ parameters.vmImage }}
13-
steps:
14-
- task: UsePythonVersion@0
15-
inputs:
16-
versionSpec: ${{ parameters.pythonVersion }}
17-
addToPath: true
18-
- task: ShellScript@2
19-
inputs:
20-
disableAutoCwd: true
21-
scriptPath: 'pack/scripts/nix_deps.sh'
22-
- task: CopyFiles@2
23-
inputs:
24-
contents: |
25-
pack/utils/__init__.py
26-
targetFolder: '$(Build.ArtifactStagingDirectory)/deps/azure'
27-
flattenFolders: true
28-
- task: CopyFiles@2
29-
inputs:
30-
contents: |
31-
python/*
32-
targetFolder: '$(Build.ArtifactStagingDirectory)'
33-
flattenFolders: true
34-
- task: CopyFiles@2
35-
inputs:
36-
contents: |
37-
deps/**/*
38-
!deps/grpc_tools/**/*
39-
!deps/grpcio_tools*/*
40-
targetFolder: '$(Build.ArtifactStagingDirectory)'
41-
- task: PublishBuildArtifacts@1
42-
inputs:
43-
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
44-
artifactName: ${{ parameters.artifactName }}
2+
pythonVersion: ''
3+
artifactName: ''
4+
5+
steps:
6+
- task: UsePythonVersion@0
7+
inputs:
8+
versionSpec: ${{ parameters.pythonVersion }}
9+
addToPath: true
10+
- task: ShellScript@2
11+
inputs:
12+
disableAutoCwd: true
13+
scriptPath: 'pack/scripts/nix_deps.sh'
14+
- task: CopyFiles@2
15+
inputs:
16+
contents: |
17+
pack/utils/__init__.py
18+
targetFolder: '$(Build.ArtifactStagingDirectory)/azure'
19+
flattenFolders: true
20+
- task: CopyFiles@2
21+
inputs:
22+
contents: |
23+
python/prod/worker.py
24+
targetFolder: '$(Build.ArtifactStagingDirectory)'
25+
flattenFolders: true
26+
- task: CopyFiles@2
27+
inputs:
28+
sourceFolder: '$(Build.SourcesDirectory)/deps'
29+
contents: |
30+
**
31+
!grpc_tools/**/*
32+
!grpcio_tools*/*
33+
targetFolder: '$(Build.ArtifactStagingDirectory)'
34+
- task: PublishBuildArtifacts@1
35+
inputs:
36+
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
37+
artifactName: ${{ parameters.artifactName }}

pack/templates/win_env_gen.yml

Lines changed: 35 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,37 @@
11
parameters:
2-
jobName: 'WindowsEnvGen'
3-
dependency: 'Tests'
4-
vmImage: 'vs2017-win2016'
5-
pythonVersion: '3.6'
6-
artifactName: 'Windows'
2+
pythonVersion: ''
3+
artifactName: ''
74

8-
jobs:
9-
- job: ${{ parameters.jobName }}
10-
dependsOn: ${{ parameters.dependency }}
11-
pool:
12-
vmImage: ${{ parameters.vmImage }}
13-
steps:
14-
- task: UsePythonVersion@0
15-
inputs:
16-
versionSpec: ${{ parameters.pythonVersion }}
17-
addToPath: true
18-
- task: PowerShell@2
19-
inputs:
20-
filePath: 'pack\scripts\win_deps.ps1'
21-
- task: CopyFiles@2
22-
inputs:
23-
contents: |
24-
pack\utils\__init__.py
25-
targetFolder: '$(Build.ArtifactStagingDirectory)\deps\azure'
26-
flattenFolders: true
27-
- task: CopyFiles@2
28-
inputs:
29-
contents: |
30-
python\*
31-
targetFolder: '$(Build.ArtifactStagingDirectory)'
32-
flattenFolders: true
33-
- task: CopyFiles@2
34-
inputs:
35-
contents: |
36-
deps\**\*
37-
!deps\grpc_tools\**\*
38-
!deps\grpcio_tools*\*
39-
targetFolder: '$(Build.ArtifactStagingDirectory)'
40-
- task: PublishBuildArtifacts@1
41-
inputs:
42-
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
43-
artifactName: ${{ parameters.artifactName }}
5+
steps:
6+
- task: UsePythonVersion@0
7+
inputs:
8+
versionSpec: ${{ parameters.pythonVersion }}
9+
architecture: ${{ parameters.architecture }}
10+
addToPath: true
11+
- task: PowerShell@2
12+
inputs:
13+
filePath: 'pack\scripts\win_deps.ps1'
14+
- task: CopyFiles@2
15+
inputs:
16+
contents: |
17+
pack\utils\__init__.py
18+
targetFolder: '$(Build.ArtifactStagingDirectory)\azure'
19+
flattenFolders: true
20+
- task: CopyFiles@2
21+
inputs:
22+
contents: |
23+
python\prod\worker.py
24+
targetFolder: '$(Build.ArtifactStagingDirectory)'
25+
flattenFolders: true
26+
- task: CopyFiles@2
27+
inputs:
28+
sourceFolder: '$(Build.SourcesDirectory)\deps'
29+
contents: |
30+
**
31+
!grpc_tools\**\*
32+
!grpcio_tools*\*
33+
targetFolder: '$(Build.ArtifactStagingDirectory)'
34+
- task: PublishBuildArtifacts@1
35+
inputs:
36+
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
37+
artifactName: ${{ parameters.artifactName }}

0 commit comments

Comments
 (0)