forked from bazelbuild/sandboxfs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
89 lines (77 loc) · 2.81 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
# Copyright 2017 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy
# of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
sudo: required # We need to install and use FUSE.
os:
- linux
- osx
# Pin to macOS 10.12 (indirectly by using the Xcode 8.3 image). We must do
# this to get the OSXFUSE kernel extension to work because there currently
# is no know way to programmatically grant permissions to load a kernel
# extension in macOS 10.13.
#
# See https://github.com/travis-ci/travis-ci/issues/10017 for details.
osx_image: xcode8.3
language:
- go # For ourselves.
- java # For Bazel.
- python # For Bazel.
go:
- "1.12"
go_import_path: github.com/bazelbuild/sandboxfs
env:
- DO=install
- DO=lint
- DO=linux_pkg
- DO=macos_pkg
- DO=package
- DO=test
- DO=test FEATURES=profiling
- DO=test FLAGS=--node_cache
jobs:
include:
# Validating sandboxfs against a Bazel build is expensive (think over
# 25 minutes per job) and doesn't provide full proof that sandboxfs
# works. We had cases where this test passed but sandboxfs had obvious
# bugs in it which were only triggered by running Bazel against more
# complex projects. Therefore, it's OK to compromise and run this as a
# periodic job only. We skip osx because I haven't been able to fit the
# runtime of this job within Travis' limits.
- if: type = cron
env: DO=bazel
os: linux
install: travis_wait 30 ./admin/travis-install.sh
script: ./admin/travis-build.sh
matrix:
exclude:
# For tool installation and Makefile verification, we don't really need to
# verify multiple platforms. It'd be good if we did it, but macOS
# resources on Travis are precious so let's be careful with them.
- env: DO=install
os: osx
# For code linting, we just need to run this under a single configuration.
# Trim all but one, and prefer Linux over macOS because it's much faster.
- env: DO=lint
os: osx
- env: DO=package
os: osx
# For the "profiling" feature, just make sure the code works under one
# platform. We don't really inspect the profile results here.
- env: DO=test FEATURES=profiling
os: osx
# For the Linux packaging tests, don't do macOS; it makes no sense.
- env: DO=linux_pkg
os: osx
# For the macOS packaging tests, don't do Linux; it makes no sense.
- env: DO=macos_pkg
os: linux