-
Notifications
You must be signed in to change notification settings - Fork 12
/
.travis.yml
148 lines (135 loc) · 5.12 KB
/
.travis.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
141
142
143
144
145
146
147
148
version: ~> 1.0
language: perl
env:
global:
- HOMEBREW_NO_ANALYTICS=1
jobs:
- WWW_MECHANIZE_CHROME_TRANSPORT="Chrome::DevToolsProtocol::Transport::Mojo"
- WWW_MECHANIZE_CHROME_TRANSPORT="Chrome::DevToolsProtocol::Transport::AnyEvent"
- WWW_MECHANIZE_CHROME_TRANSPORT="Chrome::DevToolsProtocol::Transport::NetAsync"
perl:
- "5.30"
#- "5.6.2" # ancient
#- "5.8"
#- "5.8.4"
#- "5.8.4-thr"
#- "5.8.8" # common, prebuilt version
#- "5.10"
#- "5.12"
#- "5.14"
#- "5.16"
#- "5.18"
#- "5.18.1-thr"
#- "5.20"
- "5.22"
- "5.24"
- "5.26"
- "5.28"
- "blead"
# Kick off the slow builds first
os:
- "osx"
- "linux"
# Linux config
dist: xenial
services:
- xvfb
# OSX config
osx_image: "xcode11.2"
jobs:
# Including Windows is easy even though it'll run at the end ...
include:
- perl: "5.30.0.1"
os: windows
language: shell
env: PLATFORM=x86_64 TRAVIS_PERL_VERSION="5.30.0.1"
# Remove OSX except for one build
exclude:
- os: "osx"
env: WWW_MECHANIZE_CHROME_TRANSPORT="Chrome::DevToolsProtocol::Transport::Mojo"
- os: "osx"
env: WWW_MECHANIZE_CHROME_TRANSPORT="Chrome::DevToolsProtocol::Transport::AnyEvent"
- os: "osx"
perl: "5.22"
- os: "osx"
perl: "5.24"
- os: "osx"
perl: "5.26"
- os: "osx"
perl: "5.28"
- os: "osx"
perl: "blead"
allow_failures:
- perl: blead
- perl: 5.6.2
addons:
chrome: stable
apt:
update: true
sources:
- google-chrome
packages:
#- google-chrome-stable
- chromium-browser
- libpng-dev
before_install:
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then cinst StrawberryPerl $([ "$PLATFORM" = "x86" ] && echo --forcex86) --version "$TRAVIS_PERL_VERSION"; export PATH="/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/Strawberry/c/bin:$PATH"; perl -MConfig -e 'print "#!/bin/sh\n$Config{make} \"\$@\"\n"' > /c/Strawberry/perl/site/bin/make; chmod +x /c/Strawberry/perl/site/bin/make; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CHROME_BIN=/usr/bin/chromium-browser; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CHROME_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"; fi
- "if [[ \"$TRAVIS_OS_NAME\" != \"windows\" ]]; then \"$CHROME_BIN\" --version; fi"
- git clone git://github.com/travis-perl/helpers ~/travis-perl-helpers
# Install perlbrew the hard way, on OSX
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list libpng || brew install libpng ; brew upgrade libpng ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list perl || brew install perl ; brew upgrade perl; fi
#- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew upgrade; brew upgrade perl libpng ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then pkg-config libpng --cflags; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then pkg-config libpng --libs; fi
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then \curl -L http://install.perlbrew.pl | bash; fi
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then source ~/perl5/perlbrew/etc/bashrc; fi
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then export PATH=$HOME/perl5/perlbrew/bin:$PATH; fi
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then echo $TRAVIS_PERL_VERSION; fi
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then perlbrew install perl-$TRAVIS_PERL_VERSION; perlbrew use perl-$TRAVIS_PERL_VERSION; perlbrew install-cpanm; fi
#
# Install local::lib
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -L http://cpanmin.us | perl - --notest --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib); fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then curl -L http://cpanmin.us | perl - --notest App::cpanminus; fi
# install libpng for OSX
- export SPLIT_BUILD=0
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then source ~/travis-perl-helpers/init; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then build-perl; fi
- perl -V
#- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then build-dist; fi
- cd $TRAVIS_BUILD_DIR
install:
- cd $TRAVIS_BUILD_DIR
- pwd
# Initialize local::lib on OSX, a second time as this is a new shell session
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib); fi
- cpanm --notest ExtUtils::MakeMaker~6.68
- cpanm --notest --installdeps .
# For the test matrix
- cpanm --notest AnyEvent AnyEvent::Future AnyEvent::WebSocket::Client
- cpanm --notest Mojolicious Future::Mojo
- cpanm --notest IO::Async Net::Async::WebSocket::Client
# For author testing/compile testing
- cpanm --notest CPAN::Meta
script:
- cd $TRAVIS_BUILD_DIR
- perl Makefile.PL && make
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then PERL_FUTURE_DEBUG=1 prove -blv xt/ t/ ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then PERL_FUTURE_DEBUG=1 prove -j $(test-jobs) -blv xt/ t/ ; fi
- if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then PERL_FUTURE_DEBUG=1 make test ; fi
branches:
except:
- /^wip\//
- /^blocked/
#notifications:
# email: false
# irc:
# channels:
# - "irc.perl.org#moo-smoke"
# template:
# - "%{repository}#%{build_number} %{branch} by %{author}: %{message} (%{build_url})"
# on_success: change
# on_failure: always
# skip_join: true