Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
series: [8x_1, 8x_2]
series: [8x_1, 8x_2, 9x]
steps:
- uses: actions/checkout@master
- run: ./build.sh ${{ matrix.series }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
fail-fast: false
matrix:
series: [8x_1, 8x_2, snapshot]
series: [8x_1, 8x_2, 9x, snapshot]
steps:
- uses: actions/checkout@master
- run: ./build.sh ${{ matrix.series }}
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# racket-docker

Docker images for various Racket versions available on DockerHub as [`racket/racket:<version>`](https://hub.docker.com/r/racket/racket/). For example, to run a Racket 8.18 REPL:
Docker images for various Racket versions available on DockerHub as [`racket/racket:<version>`](https://hub.docker.com/r/racket/racket/). For example, to run a Racket 9.0 REPL:

```
$ docker run -it racket/racket:8.18-full
$ docker run -it racket/racket:9.0-full
```

#### Normal images
Expand All @@ -16,7 +16,7 @@ These images use the `minimal-install` of Racket to avoid pulling in things like
DrRacket or Scribble. This also means many `raco` commands such as `raco make`
will be missing; install the `compiler-lib` package to get most of the standard
`raco` commands. Alternatively, use the "full" images instead such as
`racket/racket:8.18-full`.
`racket/racket:9.0-full`.

Versions: 6.1 and above. Racket CS images are available for 7.4 and above.

Expand Down
26 changes: 22 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
set -euxfo pipefail;

case "${1:-x}" in
9x) declare -r series="9x" ;;
8x_2) declare -r series="8x_2" ;;
8x_1) declare -r series="8x_1" ;;
8x) declare -r series="8x" ;;
7x) declare -r series="7x" ;;
6x) declare -r series="6x" ;;
snapshot) declare -r series="snapshot" ;;

*) echo "usage: $0 [6x|7x|8x|8x_1|8x_2|snapshot]"
*) echo "usage: $0 [6x|7x|8x|8x_1|8x_2|9x|snapshot]"
exit 1
;;
esac
Expand Down Expand Up @@ -58,6 +59,18 @@ build_snapshot () {
build "racket" "${full_installer}" "${version}" "${version}-full";
}

build_9x () {
declare -r version="${1}";

declare -r installer_path="racket-minimal-${version}-x86_64-linux-natipkg.sh";
declare -r installer=$(installer_url "${version}" "${installer_path}") || exit "${?}";
build "racket" "${installer}" "${version}" "${version}";

declare -r full_installer_path="racket-${version}-x86_64-linux-natipkg.sh";
declare -r full_installer=$(installer_url "${version}" "${full_installer_path}") || exit "${?}";
build "racket" "${full_installer}" "${version}" "${version}-full";
};

build_8x () {
declare -r version="${1}";

Expand Down Expand Up @@ -123,18 +136,22 @@ foreach () {
done;
};

declare -r LATEST_RACKET_VERSION="8.18";
declare -r LATEST_RACKET_VERSION="9.0";

tag_latest () {
declare -r repository="${1}";
docker image tag "${repository}:${LATEST_RACKET_VERSION}" "${repository}:latest";
};

build_all_9x () {
foreach build_9x "9.0";
tag_latest "${DOCKER_REPOSITORY}";
tag_latest "${SECONDARY_DOCKER_REPOSITORY}";
}

# The 8x series is split into two to avoid running into storage limits in CI.
build_8x_2 () {
foreach build_8x "8.10" "8.11" "8.11.1" "8.12" "8.13" "8.14" "8.15" "8.16" "8.17" "8.18";
tag_latest "${DOCKER_REPOSITORY}";
tag_latest "${SECONDARY_DOCKER_REPOSITORY}";
}

build_8x_1 () {
Expand All @@ -158,6 +175,7 @@ build_all_6x () {
build_base;

case "$series" in
9x) build_all_9x ;;
8x_2) build_8x_2 ;;
8x_1) build_8x_1 ;;
8x) build_all_8x ;;
Expand Down