diff --git a/.github/images/Dockerfile b/.github/images/Dockerfile new file mode 100644 index 0000000000..60a6d27792 --- /dev/null +++ b/.github/images/Dockerfile @@ -0,0 +1,12 @@ +FROM debian:buster-slim +LABEL maintainer="pmatos@linki.tools" +LABEL description="Debian Stable Slim image with Racket dependencies pre-installed. Mostly used for Racket CI." + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y ca-certificates clang curl gcc git libcairo2-dev libffi-dev libfindbin-libs-perl libfontconfig1-dev libgtk2.0-0 libjpeg-dev libpango1.0-dev libturbojpeg0-dev libxml2-dev make openssl procps python sqlite sudo unzip uuid-dev wget && \ + curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ + apt-get update && apt-get install -y nodejs && \ + apt-get clean + +CMD ["bash"] diff --git a/.github/images/README.md b/.github/images/README.md new file mode 100644 index 0000000000..bbe7c68f5f --- /dev/null +++ b/.github/images/README.md @@ -0,0 +1,11 @@ +# Docker images for CI + +In order to speed up building and testing of Racket, we have prepared some Docker images. +Currently pushed to DockerHub under the racket/racket-ci repo. This is then used in the CI +configuration with: +``` + image: "racket/racket-ci:latest" +``` + +The image is automatically built and uploaded on all relevant commits through GitHub Actions. + diff --git a/.github/workflows/DockerImages/Dockerfile.builddeps b/.github/workflows/DockerImages/Dockerfile.builddeps deleted file mode 100644 index e574886db8..0000000000 --- a/.github/workflows/DockerImages/Dockerfile.builddeps +++ /dev/null @@ -1,10 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="pmatos@linki.tools" -LABEL description="Debian Stable Slim image with Racket build dependencies pre-installed. Mostly used for Racket CI." - -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y unzip python libxml2-dev libfindbin-libs-perl make gcc uuid-dev git clang && \ - apt-get clean - -CMD ["bash"] diff --git a/.github/workflows/DockerImages/Dockerfile.testdeps b/.github/workflows/DockerImages/Dockerfile.testdeps deleted file mode 100644 index 4cd6e3e470..0000000000 --- a/.github/workflows/DockerImages/Dockerfile.testdeps +++ /dev/null @@ -1,12 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="pmatos@linki.tools" -LABEL description="Debian Stable Slim image with Racket test dependencies pre-installed. Mostly used for Racket CI." - -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y libffi-dev make git uuid-dev unzip python libxml2-dev libgtk2.0-0 sudo wget curl openssl ca-certificates libfontconfig1-dev libpango1.0-dev libcairo2-dev libjpeg-dev libturbojpeg0-dev gcc sqlite procps && \ - curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - apt-get update && apt-get install -y nodejs && \ - apt-get clean - -CMD ["bash"] diff --git a/.github/workflows/DockerImages/Makefile b/.github/workflows/DockerImages/Makefile deleted file mode 100644 index beb93b23a7..0000000000 --- a/.github/workflows/DockerImages/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -all: push-builddeps push-testdeps - -.PHONY: push-builddeps push-testdeps build-testdeps build-testdeps - -push-builddeps: build-builddeps - docker push pmatos/racket-ci:builddeps - -build-builddeps: Dockerfile.builddeps - docker build --file Dockerfile.builddeps --tag pmatos/racket-ci:builddeps . - -push-testdeps: build-testdeps - docker push pmatos/racket-ci:testdeps - -build-testdeps: Dockerfile.testdeps - docker build --file Dockerfile.testdeps --tag pmatos/racket-ci:testdeps . - diff --git a/.github/workflows/DockerImages/README.md b/.github/workflows/DockerImages/README.md deleted file mode 100644 index b0d41df8fb..0000000000 --- a/.github/workflows/DockerImages/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Docker images for CI - -In order to speed up building and testing of Racket, we have prepared some Docker images. -Currently pushed to DockerHub under the racket/racket-ci repo. This is then used in the CI -configuration with: -``` - image: "racket/racket-ci:testdeps" # for testing jobs -``` - -or: -``` - image: "racket/racket-ci:builddeps" # for build jobs -``` - -The images are automatically build and uploaded on all commits by Docker Hub. - -To update manually, use the Makefile in this directory, but you need to be logged in - use `docker login`. - diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml index 29b1136fe7..fec6a66f10 100644 --- a/.github/workflows/ci-pr.yml +++ b/.github/workflows/ci-pr.yml @@ -6,7 +6,7 @@ jobs: buildtest-linux: container: - image: racket/racket-ci:testdeps + image: racket/racket-ci:latest options: --init runs-on: ubuntu-18.04 diff --git a/.github/workflows/ci-push_linux.yml b/.github/workflows/ci-push_linux.yml index 69f2de946c..89f15f382b 100644 --- a/.github/workflows/ci-push_linux.yml +++ b/.github/workflows/ci-push_linux.yml @@ -11,7 +11,7 @@ jobs: build-racketcgc: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:builddeps + image: racket/racket-ci:latest strategy: fail-fast: false @@ -62,7 +62,7 @@ jobs: build-racket3m: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:builddeps + image: racket/racket-ci:latest needs: build-racketcgc @@ -146,7 +146,7 @@ jobs: build-racketcs: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:builddeps + image: racket/racket-ci:latest needs: build-racketcgc @@ -206,7 +206,7 @@ jobs: test-cgc: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:testdeps + image: racket/racket-ci:latest options: --init needs: build-racketcgc @@ -277,7 +277,7 @@ jobs: test-3m: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:testdeps + image: racket/racket-ci:latest options: --init needs: build-racket3m @@ -351,7 +351,7 @@ jobs: test-cs: runs-on: ubuntu-18.04 container: - image: racket/racket-ci:testdeps + image: racket/racket-ci:latest options: --init needs: build-racketcs diff --git a/.github/workflows/ci-ubsan.yml b/.github/workflows/ci-ubsan.yml index fd3a8c5fe9..cb0bb0fba2 100644 --- a/.github/workflows/ci-ubsan.yml +++ b/.github/workflows/ci-ubsan.yml @@ -8,7 +8,7 @@ jobs: # These jobs build Racket using the sanitizers and gather the results into a final log racket3m-ubsan: runs-on: ubuntu-18.04 - container: racket/racket-ci:testdeps + container: racket/racket-ci:latest steps: - uses: actions/checkout@v2 @@ -92,7 +92,7 @@ jobs: racketcs-ubsan: runs-on: ubuntu-18.04 - container: racket/racket-ci:testdeps + container: racket/racket-ci:latest steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/docker-racketci-testdeps.yml b/.github/workflows/docker-racketci-testdeps.yml deleted file mode 100644 index 050586ea07..0000000000 --- a/.github/workflows/docker-racketci-testdeps.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Build TestDeps RacketCI Image - -on: - push: - branches: - - master - paths: - - '.github/workflows/DockerImages/Dockerfile.testdeps' - - '.github/workflows/docker-racketci-testdeps.yml' - -jobs: - build-image: - runs-on: ubuntu-18.04 - - env: - IMAGE_NAME: racket-ci - VERSION: testdeps - - steps: - - uses: actions/checkout@v2 - - name: Build image - working-directory: ./.github/workflows/DockerImages - run: docker build --tag image --file Dockerfile.testdeps . - - name: Log into registry - run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u pmatos --password-stdin - - name: Push image - run: | - IMAGE_ID=racket/$IMAGE_NAME - docker tag image $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION diff --git a/.github/workflows/docker-racketci-builddeps.yml b/.github/workflows/docker-racketci.yml similarity index 60% rename from .github/workflows/docker-racketci-builddeps.yml rename to .github/workflows/docker-racketci.yml index d1c7a4daeb..d75415a373 100644 --- a/.github/workflows/docker-racketci-builddeps.yml +++ b/.github/workflows/docker-racketci.yml @@ -1,12 +1,12 @@ -name: Build BuildDeps RacketCI Image +name: Build RacketCI Docker Image on: push: branches: - master paths: - - '.github/workflows/DockerImages/Dockerfile.builddeps' - - '.github/workflows/docker-racketci-builddeps.yml' + - '.github/images/Dockerfile' + - '.github/workflows/docker-racketci.yml' jobs: build-image: @@ -14,13 +14,13 @@ jobs: env: IMAGE_NAME: racket-ci - VERSION: builddeps - + VERSION: ${{ github.sha }} + steps: - uses: actions/checkout@v2 - name: Build image - working-directory: ./.github/workflows/DockerImages - run: docker build --tag image --file Dockerfile.builddeps . + working-directory: ./.github/images + run: docker build --tag image . - name: Log into registry run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u pmatos --password-stdin - name: Push image @@ -28,3 +28,5 @@ jobs: IMAGE_ID=racket/$IMAGE_NAME docker tag image $IMAGE_ID:$VERSION docker push $IMAGE_ID:$VERSION + docker tag image $IMAGE_ID:latest + docker push $IMAGE_ID:latest