diff --git a/.travis.yml b/.travis.yml index 8c2ff2b..b9eedcc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/README.md b/README.md index b2c666a..37c6a3f 100644 --- a/README.md +++ b/README.md @@ -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: diff --git a/example/.travis.yml b/example/.travis.yml new file mode 100644 index 0000000..8c2ff2b --- /dev/null +++ b/example/.travis.yml @@ -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> diff --git a/main.rkt b/main.rkt deleted file mode 100644 index dcebb3d..0000000 --- a/main.rkt +++ /dev/null @@ -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)) diff --git a/test.sh b/test.sh index 9c22aa3..5814a47 100755 --- a/test.sh +++ b/test.sh @@ -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