-
Notifications
You must be signed in to change notification settings - Fork 46
/
.appveyor.yml
134 lines (120 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
# .appveyor.yml
#
# AppVeyor configuration to test Net::SSLeay on Windows
#
# If old Perls start to fail, consider skipping the build tests
# completely or see how to test just the distribution package. What we
# do now is to test build environment. What's actually needed,
# especially with older Perls, is just to see if the distribution
# Net::SSLeay package compiles and passes 'make test' successfully.
#
# Various parts collected from:
# cache, install and build_script sections thanks to blogs.perl.org
# entries by eserte and mauke.
#
# 64bit/32bit Strawberry Perl selection thanks to pali's
# github/Email-Address-XS
#
# Using $Config{make} for not needing to know if make is called dmake,
# gmake, etc. from a PerlMonks posting by pyrt.
# 2017 is Windows Server 2016, earlier are 2012R2
image:
- Visual Studio 2017
- Visual Studio 2015
# There's also Any CPU. Note: this does not select 32bit or 64bit
# OS. Both server versions are 64bit and this seems to be related to
# Visual Studio configuration. We use this to choose either 64bit or
# 32bit Strawberry Perl.
platform:
- x64
- x86
# Environment variables need to:
# - use defaults for external tests and other Makefile.PL prompts
# - make sure that we use OpenSSL from Strawberry Perl instead of, for
# example, c:\OpenSSL-Win32 that comes pre-installed on the VM.
# Additional variables in matrix are needed because:
# - old Strawberry Perls don't have cpanm
# - on server 2012R2 image's MinGW was causing linking problems with
# Strawberry Perl's MinGW.
# - See 1.86 developer builds for config that did more with cpanm.
environment:
PERL_MM_USE_DEFAULT: 1
RELEASE_TESTING: 0
OPENSSL_PREFIX: C:\strawberry\c
matrix:
- perl: 5.32.0.1
- perl: 5.30.3.1
- perl: 5.28.0.1
- perl: 5.26.2.1
- perl: 5.24.4.1
- perl: 5.22.3.1
- perl: 5.20.3.3
- perl: 5.18.4.1
- perl: 5.16.3.20170202
- perl: 5.14.4.1
- perl: 5.12.3.20180709
ssleay_need_cpanm: 1
- perl: 5.10.1.5
ssleay_need_cpanm: 1
ssleay_rename_mingw: 1
- perl: 5.8.9.5
ssleay_need_cpanm: 1
ssleay_rename_mingw: 1
matrix:
exclude:
# OpenSSL 1.0.0-beta4, bundled with the 64-bit version of Strawberry Perl
# 5.12.3.20180709, malfunctions on 64-bit Windows platforms - see GH-189
- perl: 5.12.3.20180709
platform: x64
# There is no 64-bit version of Strawberry Perl for Perl 5.10 and below
- perl: 5.10.1.5
platform: x64
- perl: 5.8.9.5
platform: x64
# Skip build for every push on most branches
branches:
only:
- master
- /appveyor/
# Tags need not to trigger builds
skip_tags: true
# Skip duplicate builds when pull request is open
skip_branch_with_pr: true
# Speed up things: just get this specific gommit, not entire repo
shallow_clone: true
# Our build size exceeds cache storage size: save resources by
# skipping compress and failing upload
#cache:
# - C:\strawberry
# Need to be careful to get quotes right
install:
- if /I "%PLATFORM%" == "x86" (set x86=--forcex86) else (set x86="")
- set sp_install_cmd=choco install strawberryperl --yes %x86% --version %perl%
- echo "Using perl %perl% on image %APPVEYOR_BUILD_WORKER_IMAGE%, platform %PLATFORM%"
- echo "Install command %sp_install_cmd%"
- if not exist "C:\strawberry" %sp_install_cmd%
- set PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%
- perl -V
- cd %APPVEYOR_BUILD_FOLDER%
- if /I "%ssleay_need_cpanm%" == "1" perl -pi.bak -e "s{\Qhttp://cpan.strawberryperl.com/\E}{http://www.cpan.org/}g" C:\strawberry\perl\lib\CPAN\Config.pm
- if /I "%ssleay_need_cpanm%" == "1" cpan App::cpanminus
- if /I "%ssleay_rename_mingw%" == "1" if exist C:\MinGW move C:\MinGW C:\MinGW-image
- if /I "%ssleay_rename_mingw%" == "1" if exist C:\MinGW-W64 move C:\MinGW-W64 C:\MinGW-W64-image
- cpanm --no-man-pages --installdeps --notest . || type C:\Users\appveyor\.cpanm\work\*\build.log && exit /B 1
# Run make
build_script:
- perl Makefile.PL
- perl -MConfig -e "system($Config{make}) and exit($? >> 8)"
# Run make test
test_script:
- perl -MConfig -e "system($Config{make}, 'test') and exit($? >> 8)"
# Build some artifacts
after_test:
- tar zcvf Net-SSLeay.tar.gz blib
- perl -MConfig -e "system($Config{make}, 'ppd') and exit($? >> 8)"
# Make Net-SSLeay-a.bb.tar.gz available for closer looking
artifacts:
- path: Net-SSLeay.tar.gz
name: PPM file
- path: Net-SSLeay.ppd
name: PPD file for PPM