~mike-allen/facsimile/master

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
#=======================================================================================================================
# Facsimile: A Discrete-Event Simulation Library
# Copyright © 2004-2019, 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:
#
#   http://www.scala-sbt.org/0.13/docs/Travis-CI-with-sbt.html
#=======================================================================================================================
# 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.12.8

# Cache the IVY & SBT directories at the end of the build.
cache:
  directories:
    - $HOME/.ivy2/cache
    - $HOME/.sbt/boot

# Before installing the necessary software, set up XVFB (X Windows virtual frame buffer) so that we can run
# JavaFX/ScalaFX code in headless mode.
before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"

# We need Java 8 to build facsimile.
#
# Note: This is currently the only version of Java supported. If other versions become compatible, they will be included
# here.
jdk:
  - oraclejdk8

# 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:
      - oracle-java8-installer
      - 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.)
script:
  - sbt ++$TRAVIS_SCALA_VERSION clean coverage test scalastyle test:scalastyle doc coverageReport &&
    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.