/
.travis.yml
104 lines (79 loc) · 3.27 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
language: c
sudo: false
branches:
only:
- master
env:
global:
- RACKET_DIR=~/racket
- TRAVIS_RACKET_DIR=~/travis-racket
matrix:
# Versions prior to 5.92 don't seem to install the current
# directory as a package named "anarki" using
# `raco pkg install --deps search-auto`. It's unknown how well
# they work.
# Versions prior to 6.0.1 don't provide the `--drdr` option, which
# is used by one of the testing commands here, but they otherwise
# should work as well as the versions after.
# Versions prior to 6.1 don't provide the `--check-pkg-deps`
# option, which is used by one of the testing commands here, but
# they otherwise should work as well as the versions after.
# Versions prior to 6.3 don't define the `racket/random` module,
# which is needed for news.arc and one of the tests.
# This is the earliest known supported version.
- RACKET_VERSION=6.3
# This is the latest known supported version.
- RACKET_VERSION=6.12
# - RACKET_VERSION=HEAD
matrix:
allow_failures:
- env: RACKET_VERSION=HEAD
# Fast finish: The overall build result is determined as soon as any
# of the rows have failed or all of the rows that aren't allowed to
# fail have succeeded.
fast_finish: true
# Build lifecycle steps
before_install:
# We install Racket.
- git clone https://github.com/greghendershott/travis-racket.git "${TRAVIS_RACKET_DIR}"
- cat "${TRAVIS_RACKET_DIR}/install-racket.sh" | bash
- export PATH="${RACKET_DIR}/bin:${PATH}"
install:
# We obtain the unit test dependencies.
- hg clone https://bitbucket.org/zck/unit-test.arc
- cd unit-test.arc
- hg update v1.0
- cd ..
script:
# We run the unit tests. While doing so, we disable rlwrap using
# `-n`.
- ./arc.sh -n tests.arc
# We do sanity checks to be sure the Racket package works. This (and
# most of the rest of this file) is adapted from the sample
# .travis.yml at <https://github.com/greghendershott/travis-racket>.
# We install the current directory as a linked package, and we
# automatically fetch all the dependencies.
- raco pkg install --deps search-auto
# We recompile every dependency of Anarki, but we don't recompile
# their documentation. (TODO: Why does travis-racket suggest this?
# Is there a chance `raco setup` fails when `raco pkg install`
# doesn't?)
- raco setup --no-docs --check-pkg-deps anarki
# We run Racket tests according to the way the DrDr continuous
# testing system does. This imitates the settings used by the Racket
# package index at <https://pkgs.racket-lang.org/>.
#
# Due to the usual `raco test` behavior, this runs any submodules
# named "test" of any Racket module files existing recursively under
# this package. If a submodule named "test" is not present in a
# module file, this falls back to running the whole file.
#
# Due to the `--drdr` option, this runs each test with a separate
# temporary directory, gives it no stdin, suppresses its stdout, and
# treats any stderr output as a test failure. See
# <https://docs.racket-lang.org/raco/test.html>.
#
- raco test --drdr --package anarki
after_success:
# TODO: Automatically build and deploy the arcfn docs using
# https://github.com/arclanguage/arclanguage.github.io/blob/master/_ref/generate.sh