Distinguish our own .travis.yml and example/.travis.yml

As a result, our own .travis.yml can focus on testing
install-racket.sh as of the current commit.

(I am still using test.sh and `for` loops. It's not immediately
obvious to me how to express that instead using a Travis job matrix --
or that doing so would be any clearer.)
This commit is contained in:
Greg Hendershott 2019-11-25 13:26:23 -05:00
parent f2ee38346a
commit 960ebda600
5 changed files with 92 additions and 98 deletions

View File

@ -1,77 +1,12 @@
# IMPORTANT:
#
# This is NOT an example of a .travis.yml you would use in your own
# Racket project -- for that, see example/.travis.yml.
#
# Instead, this is used by this repo to test install-racket.sh.
language: c
env:
global:
# Supply a global RACKET_DIR environment variable. This is where
# Racket will be installed. A good idea is to use ~/racket because
# that doesn't require sudo to install.
- RACKET_DIR=~/racket
matrix:
# Supply at least one RACKET_VERSION environment variable. This is
# used by the install-racket.sh script (run at before_install,
# below) to select the version of Racket to download and install.
#
# Supply more than one RACKET_VERSION (as in the example below) to
# create a Travis-CI build matrix to test against multiple Racket
# versions.
- RACKET_VERSION=6.1
- RACKET_VERSION=6.1.1
- RACKET_VERSION=6.2
- RACKET_VERSION=6.3
- RACKET_VERSION=6.4
- RACKET_VERSION=6.5
- RACKET_VERSION=6.6
- RACKET_VERSION=6.7
- RACKET_VERSION=6.8
- RACKET_VERSION=6.9
- RACKET_VERSION=6.10
- RACKET_VERSION=6.11
- RACKET_VERSION=6.12
- RACKET_VERSION=7.0
- RACKET_VERSION=7.1
- RACKET_VERSION=7.2
- RACKET_VERSION=7.3
- RACKET_VERSION=7.4
- RACKET_VERSION=7.5
# "HEAD" is a daily snapshot built from the `master` branch.
# This is the main variant of Racket that uses its own runtime.
- RACKET_VERSION=HEAD
# "HEADCS" is a daily snapshot built from the `master` branch.
# This is an experimental variant of Racket that uses Chez Scheme.
- RACKET_VERSION=HEADCS
# "RELEASE" is a release candidate that updates only during the
# weeks before a new release. The final release candidate should
# remain available until the next release cycle. As a result, you
# may leave this in your .travis.yml all the time. See:
# <https://pre-release.racket-lang.org/>.
- RACKET_VERSION=RELEASE
matrix:
# You may want to test against certain versions of Racket, without
# having them count against the overall success/failure. For example
# here we include the development versions:
allow_failures:
- env: RACKET_VERSION=HEAD
- env: RACKET_VERSION=HEADCS
- env: RACKET_VERSION=RELEASE
# Fast finish: Overall build result is determined as soon as any of
# its rows have failed, or, all of its rows that aren't allowed to
# fail have succeeded.
fast_finish: true
install:
- bash <(curl https://raw.githubusercontent.com/greghendershott/travis-racket/master/install-racket.sh)
- export PATH="${RACKET_DIR}/bin:${PATH}" #install-racket.sh can't set for us
# Here supply steps such as raco make, raco test, etc.
script:
- raco make main.rkt
- raco test -x .
# OR: If your repo is a Racket package with an info.rkt that has any
# `deps`:
#
# script:
# - raco pkg install --deps search-auto
# - raco setup -D --check-pkg-deps <your-package-name>
# - raco test -x -p <your-package-name>
- shellcheck install-racket.sh
- ./test.sh

View File

@ -1,15 +1,13 @@
Experimenting with using Travis CI for a Racket project.
Until Travis CI gets built-in support for Racket, we can use the
`before_install` clause of `.travis.yml` to download and run the
Racket installer.
Until/unless Travis CI gets built-in support for Racket, we can use
the `install` section of `.travis.yml` to download and run the Racket
installer.
To add this capability to your project, simply add the
[example `.travis.yml`](https://github.com/greghendershott/travis-racket/blob/master/.travis.yml)
[example `.travis.yml`](https://github.com/greghendershott/travis-racket/blob/master/example/.travis.yml)
to your repo. You may need to change its `script` section's `raco
make` and `raco test` parts.
> **NOTE:** In the `before_install:` step, be sure to pipe the `install-racket.sh` script to `bash` (_not_ to `sh`).
> **NOTE:** Use `example/.travis.yml` --- *not* the one in the root of this rrepo, which is intended to test this repo not your project.
Here's a "badge" showing the status for the `master` branch of this
repo:

77
example/.travis.yml Normal file
View File

@ -0,0 +1,77 @@
language: c
env:
global:
# Supply a global RACKET_DIR environment variable. This is where
# Racket will be installed. A good idea is to use ~/racket because
# that doesn't require sudo to install.
- RACKET_DIR=~/racket
matrix:
# Supply at least one RACKET_VERSION environment variable. This is
# used by the install-racket.sh script (run at before_install,
# below) to select the version of Racket to download and install.
#
# Supply more than one RACKET_VERSION (as in the example below) to
# create a Travis-CI build matrix to test against multiple Racket
# versions.
- RACKET_VERSION=6.1
- RACKET_VERSION=6.1.1
- RACKET_VERSION=6.2
- RACKET_VERSION=6.3
- RACKET_VERSION=6.4
- RACKET_VERSION=6.5
- RACKET_VERSION=6.6
- RACKET_VERSION=6.7
- RACKET_VERSION=6.8
- RACKET_VERSION=6.9
- RACKET_VERSION=6.10
- RACKET_VERSION=6.11
- RACKET_VERSION=6.12
- RACKET_VERSION=7.0
- RACKET_VERSION=7.1
- RACKET_VERSION=7.2
- RACKET_VERSION=7.3
- RACKET_VERSION=7.4
- RACKET_VERSION=7.5
# "HEAD" is a daily snapshot built from the `master` branch.
# This is the main variant of Racket that uses its own runtime.
- RACKET_VERSION=HEAD
# "HEADCS" is a daily snapshot built from the `master` branch.
# This is an experimental variant of Racket that uses Chez Scheme.
- RACKET_VERSION=HEADCS
# "RELEASE" is a release candidate that updates only during the
# weeks before a new release. The final release candidate should
# remain available until the next release cycle. As a result, you
# may leave this in your .travis.yml all the time. See:
# <https://pre-release.racket-lang.org/>.
- RACKET_VERSION=RELEASE
matrix:
# You may want to test against certain versions of Racket, without
# having them count against the overall success/failure. For example
# here we include the development versions:
allow_failures:
- env: RACKET_VERSION=HEAD
- env: RACKET_VERSION=HEADCS
- env: RACKET_VERSION=RELEASE
# Fast finish: Overall build result is determined as soon as any of
# its rows have failed, or, all of its rows that aren't allowed to
# fail have succeeded.
fast_finish: true
install:
- bash <(curl https://raw.githubusercontent.com/greghendershott/travis-racket/master/install-racket.sh)
- export PATH="${RACKET_DIR}/bin:${PATH}" #install-racket.sh can't set for us
# Here supply steps such as raco make, raco test, etc.
script:
- raco make main.rkt
- raco test -x .
# OR: If your repo is a Racket package with an info.rkt that has any
# `deps`:
#
# script:
# - raco pkg install --deps search-auto
# - raco setup -D --check-pkg-deps <your-package-name>
# - raco test -x -p <your-package-name>

View File

@ -1,14 +0,0 @@
#lang racket
;; This is just an example file used to test the example .travis.yml
(define (plus1 x)
(add1 x))
(define (minus1 x)
(sub1 x))
(module+ test
(require rackunit)
(check-equal? (plus1 1) 2)
(check-equal? (minus1 1) 0))

View File

@ -1,7 +1,5 @@
shellcheck ./install-racket.sh
# Starting with Racket 7.4, there is also a "CS" flavor.
for VER in 7.4 ; do
for VER in 7.5 7.4 ; do
for MIN in 0 1; do
for NAT in 0 1; do
for CS in 0 1; do