forked from ponylang/ponyc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.appveyor.yml
140 lines (124 loc) · 4.41 KB
/
.appveyor.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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
version: "{build}"
image: Visual Studio 2015
branches:
only:
- master
- release
environment:
matrix:
- llvm: 3.9.0
- llvm: 3.8.1
- llvm: 3.7.1
configuration:
- Release
- Debug
clone_depth: 100
clone_folder: C:\projects\ponyc
install:
- ps: |
$package_commit = git rev-parse --short --verify "HEAD^{commit}"
$package_version = (Get-Content "VERSION")
$package_iteration = "$package_iteration${env:appveyor_build_number}.$package_commit"
Update-AppveyorBuild -Version "ponyc-${env:appveyor_repo_branch}-$package_version-$package_iteration"
- ps: |
cd C:\
$premakeInstalled = Test-Path C:\premake5.exe
$llvmInstalled = Test-Path C:\LLVM-${env:llvm}
if(-Not $premakeInstalled)
{
wget https://github.com/premake/premake-core/releases/download/v5.0.0-alpha9/premake-5.0.0-alpha9-windows.zip -OutFile C:\premake5.zip
7z x C:\premake5.zip
del C:\premake5.zip
}
if(-Not $llvmInstalled)
{
wget "https://github.com/ponylang/ponyc-windows-llvm/releases/download/LLVM-Release-VS2015/LLVM-${env:llvm}-Release-VS2015.7z" -OutFile C:\LLVM.7z
7z x C:\LLVM.7z
del C:\LLVM.7z
}
$env:path += ";C:\LLVM-${env:llvm}\bin"
- ps: |
cd C:\
$libsInstalled = Test-Path C:\ponyc-windows-libs
if(-Not $libsInstalled)
{
md C:\ponyc-windows-libs
cd C:\ponyc-windows-libs
md lib
svn co svn://vcs.exim.org/pcre2/code/tags/pcre2-10.21 pcre2
md pcre2.build
cd pcre2.build
cmake ..\pcre2 -G "Visual Studio 14 2015 Win64"
msbuild PCRE2.sln /t:pcre2-8 /p:Configuration=Release
copy Release\pcre2-8.lib ..\lib
cd ..
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.1.4-windows.zip -OutFile libressl-2.1.4-windows.zip
unzip -o libressl-2.1.4-windows.zip
copy libressl-2.1.4-windows\x64\libssl-32.* lib
copy libressl-2.1.4-windows\x64\libcrypto-32.* lib
}
$env:LIB = "C:\ponyc-windows-libs\lib;" + $env:LIB
$env:path += ";C:\ponyc-windows-libs\lib"
cd C:\projects\ponyc
C:\premake5.exe --with-tests --to=work/vs2015 vs2015
after_build:
- ps: |
$ponydir = "${env:appveyor_build_version}-win64"
md "$ponydir"
md "${ponydir}\ponyc"
md "${ponydir}\ponyc\bin"
copy build\$env:configuration\ponyc.* "${ponydir}\ponyc\bin"
copy build\$env:configuration\ponyrt.* "${ponydir}\ponyc\bin"
copy -recurse packages "${ponydir}\packages"
7z a -tzip "C:\projects\ponyc\${ponydir}.zip" "${ponydir}"
artifacts:
- path: 'ponyc-*.zip'
deploy:
# On branches `master` and `release`, deploy (and publish) artifacts
# to the ponyc-win projects on Bintray.
- provider: BinTray
username: pony-buildbot-2
api_key:
secure: 4KgdDQLp2kX816XH27d5xdJBPlKGhYXN6ttdHTSt5qe1MVIF+/VResUstg0zuJ6m
subject: pony-language
repo: ponyc-win
package: ponyc-master
version: $(appveyor_build_version)
on:
branch: master
llvm: 3.9.0
configuration: Release
publish: true
- provider: BinTray
username: pony-buildbot-2
api_key:
secure: 4KgdDQLp2kX816XH27d5xdJBPlKGhYXN6ttdHTSt5qe1MVIF+/VResUstg0zuJ6m
subject: pony-language
repo: ponyc-win
package: ponyc-release
version: $(appveyor_build_version)
on:
branch: release
llvm: 3.9.0
configuration: Release
publish: true
cache:
- 'C:\LLVM-%llvm%\ -> .appveyor.yml'
- C:\premake5.exe -> .appveyor.yml
- C:\ponyc-windows-libs\ -> .appveyor.yml
build:
project: work\vs2015\ponyc.sln
verbosity: minimal
test_script:
- C:\projects\ponyc\build\%CONFIGURATION%\testc.exe
- C:\projects\ponyc\build\%CONFIGURATION%\testrt.exe
- CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin\\amd64\\vcvars64.bat"
- C:\projects\ponyc\build\%CONFIGURATION%\ponyc.exe -V 3 -o C:\projects\ponyc\ -d -s --verify packages/stdlib
- stdlib.exe --sequential
- del stdlib.exe
- C:\projects\ponyc\build\%CONFIGURATION%\ponyc.exe -V 3 -o C:\projects\ponyc\ --verify packages/stdlib
- stdlib.exe --sequential
- del stdlib.exe
- C:\projects\ponyc\build\%CONFIGURATION%\ponyc.exe -V 3 -o C:\projects\ponyc\ -d -s --verify examples
- examples.exe
- del examples.exe