-
Notifications
You must be signed in to change notification settings - Fork 0
/
keystone-nuget.yml
103 lines (100 loc) · 3.75 KB
/
keystone-nuget.yml
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
trigger: none
pr: none
stages:
- stage:
displayName: Build & Publish
jobs:
- job:
displayName: Build & Publish
strategy:
matrix:
Linux:
imageName: ubuntu-latest
macOS:
imageName: macOS-latest
Windows:
imageName: windows-latest
pool:
vmImage: $(imageName)
steps:
- powershell: |
echo "Downloading"
Invoke-WebRequest -Uri https://dockerbootstrap.blob.core.windows.net/dockerbootstrap/vs2013_buildtools.zip -OutFile vs2013_buildtools.zip
Expand-Archive vs2013_buildtools.zip
displayName: Download VS2013 Build Tools (Windows)
condition: eq(variables.imageName, 'windows-latest')
- script: |
echo %VS120COMNTOOLS%
echo %VCINSTALLDIR%
git clone https://github.com/keystone-engine/keystone.git
cd keystone
mkdir build
cd build
call %BUILD_SOURCESDIRECTORY%\vs2013_buildtools\VC\vcvarsall.bat amd64
..\nmake-dll.bat
env:
VCINSTALLDIR: $(Build.SourcesDirectory)\vs2013_buildtools\VC\
VS120COMNTOOLS: $(Build.SourcesDirectory)\vs2013_buildtools\Tools\
displayName: Clone and Build Libraries (Windows)
# - powershell: |
# Set-PSDebug -Trace 1
# mkdir $(Build.SourcesDirectory)\keystone\build\llvm\lib\
# Invoke-WebRequest -Uri https://github.com/keystone-engine/keystone/releases/download/0.9.2/keystone-0.9.2-win32.zip -OutFile keystone-0.9.2-win32.zip
# Expand-Archive keystone-0.9.2-win32.zip
# Copy-Item keystone-0.9.2-win32\keystone-0.9.2-win32\keystone.dll $(Build.SourcesDirectory)\keystone\build\llvm\lib\keystone-win32.dll
# Invoke-WebRequest -Uri https://github.com/keystone-engine/keystone/releases/download/0.9.2/keystone-0.9.2-win64.zip -OutFile keystone-0.9.2-win64.zip
# Expand-Archive keystone-0.9.2-win64.zip
# Copy-Item keystone-0.9.2-win64\keystone-0.9.2-win64\keystone.dll $(Build.SourcesDirectory)\keystone\build\llvm\lib\keystone-win64.dll
# displayName: Download Libraries (Windows)
condition: eq(variables.imageName, 'windows-latest')
- script: |
git clone https://github.com/keystone-engine/keystone.git
cd keystone
mkdir build
cd build
../make-share.sh lib_only
make
displayName: Clone and Build Libraries (Unix)
condition: ne(variables.imageName, 'windows-latest')
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/keystone/build/llvm/lib'
ArtifactName: 'lib'
publishLocation: 'Container'
displayName: Publish Libraries
condition: always()
- stage:
displayName: NuGet Packaging
jobs:
- job:
pool:
vmImage: ubuntu-latest
displayName: Package NuGet package
steps:
- task: DownloadPipelineArtifact@2
inputs:
source: 'current'
artifact: 'lib'
patterns: |
**/*.dll
**/*.dylib
**/*.so.0
path: $(Build.SourcesDirectory)/keystone-nuget/
displayName: Download dlls
- script: |
mkdir $(Build.SourcesDirectory)/keystone-nuget/build
cd $(Build.SourcesDirectory)/keystone-nuget/
mkdir build/win-x64/
mkdir build/win-x86/
mkdir build/osx-x64/
mkdir build/linux-x64/
mv keystone-win32.dll build/win-x86/keystone.dll
mv keystone-win64.dll build/win-x64/keystone.dll
mv libkeystone.0.dylib build/osx-x64/keystone.dylib
mv libkeystone.so.0 build/linux-x64/keystone.so
- task: PublishBuildArtifacts@1
inputs:
PathToPublish: '$(Build.SourcesDirectory)/keystone-nuget'
ArtifactName: 'keystone.nupkg'
publishLocation: 'Container'
displayName: Publish Nupkg