forked from Facsimile/facsimile
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
122 lines (110 loc) · 5.43 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
#=======================================================================================================================
# Facsimile: A Discrete-Event Simulation Library
# Copyright © 2004-2020, Michael J Allen.
#
# This file is part of Facsimile.
#
# Facsimile is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# Facsimile is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along with Facsimile. If not, see
# http://www.gnu.org/licenses/.
#
# The developers welcome all comments, suggestions and offers of assistance. For further information, please visit the
# project home page at:
#
# http://www.facsim.org/
#
# Thank you for your interest in the Facsimile project!
#
# IMPORTANT NOTE: All patches (modifications to existing files and/or the addition of new files) submitted for
# inclusion as part of the official Facsimile code base, must comply with the published Facsimile Coding Standards. If
# your code fails to comply with the standard, then your patches will be rejected. For further information, please
# visit the coding standards at:
#
# http://www.facsim.org/Documentation/CodingStandards/
#=======================================================================================================================
#=======================================================================================================================
# YAML configuration file for facsimile builds on the Travis CI system.
#
# For further details on this configuration, refer to:
#
# https://www.scala-sbt.org/1.x/docs/Travis-CI-with-sbt.html
#=======================================================================================================================
# Use Bionic Ubuntu (18.04 LTS) for builds.
dist: bionic
# Set up XVFB (X Windows virtual frame buffer) so that we can run JavaFX/ScalaFX code in headless mode.
#
# For further details, refer to:
# - https://benlimmer.com/2019/01/14/travis-ci-xvfb/
# - https://docs.travis-ci.com/user/gui-and-headless-browsers/#using-services-xvfb
services:
- xvfb
# Use container-based architecture, which is faster and supports IVY & SBT file caching.
sudo: false
# Specify project language and supported versions.
#
# These values should be synchronized with the values in the custom SBT build definition file, Facsimile.sbt.
language: scala
scala:
- 2.13.5
# Cache the Coursier, Ivy & SBT directories at the end of the build.
cache:
directories:
- $HOME/.cache/coursier
- $HOME/.ivy2
- $HOME/.sbt
# We need Java 11 to build Facsimile.
#
# Facsimile's policy is to support the most recent, LTS Java release that is compatible with Scala and the project's
# third-party librarys and plugins. When a new LTS release becomes available, Facsimile will aim to switch to it as soon
# as it becomes supported.
#
# Note: This is currently the only version of Java supported. If other versions become compatible, they will be included
# here.
jdk:
- openjdk11
# Require the latest version of this JDK (since JavaFX, in particular, is sensitive to different builds - some features
# in the current version of ScalaFX require the latest release). Also ensure Graphviz is installed, in order to create
# documentation without errors.
addons:
apt:
packages:
- graphviz
# Now perform the build.
#
# This firstly prints the java version used. Next, it executes SBT to perform scalastyle checking, coverage analysis and
# then execute the test suite. Subsequent to that, since Facsimile is a multi-module project, we must generate a report
# aggregated for all modules. Then notify Coveralls of the test coverage results. (Note that both of these latter tasks
# must be performed as separate SBT commands.)
#
# Note: As of Scoverage 1.6.0, it is no longer necessary to execute the coverageReport task, and in fact speeds up the
# build if it is omitted: coverageAggregate (which must still be run as a separate sbt pass), now operates on the raw
# coverage reports.
#
# NOTE: Do not use Scalastyle on test sources. It currently fails for the UniCharTest.scala file, even when checking of
# that file is disabled. This can be re-instated when addressed. See also the release procedure in Facsimile.sbt.
script:
# - sbt ++$TRAVIS_SCALA_VERSION clean coverage test scalastyle test:scalastyle doc &&
- sbt ++$TRAVIS_SCALA_VERSION clean coverage test scalastyle doc &&
sbt ++$TRAVIS_SCALA_VERSION coverageAggregate
# If this script was successful, run the coveralls SBT task.
after_success:
- sbt ++$TRAVIS_SCALA_VERSION coveralls
# For now, we'll only test the master branch.
branches:
only:
- master
# Notifications.
#
# By default, Travis will only send build notifications to the committer of the changes made, and to the project owner
# (if different). If you have forked Facsimile, and you are using Travis to verify your commits, then you are the owner
# (regardless of who is committing changes).
#
# As a committer, you will only get notifications if you have configured git with your email address. Furthermore, you
# will only receive notifications if you have write access to the associated repository.