summaryrefslogtreecommitdiff
path: root/ci/dockerfiles
diff options
context:
space:
mode:
Diffstat (limited to 'ci/dockerfiles')
-rw-r--r--ci/dockerfiles/22.3/erlang_elixir18
-rw-r--r--ci/dockerfiles/23.1/erlang_elixir18
-rw-r--r--ci/dockerfiles/ci42
-rw-r--r--ci/dockerfiles/ci-base20
-rw-r--r--ci/dockerfiles/ci-dep19
5 files changed, 117 insertions, 0 deletions
diff --git a/ci/dockerfiles/22.3/erlang_elixir b/ci/dockerfiles/22.3/erlang_elixir
new file mode 100644
index 0000000000..524d9af685
--- /dev/null
+++ b/ci/dockerfiles/22.3/erlang_elixir
@@ -0,0 +1,18 @@
+FROM erlang:22.3
+
+ENV ERLANG_VERSION 22.3
+
+# elixir expects utf8.
+ENV ELIXIR_VERSION="v1.10.4" \
+ LANG=C.UTF-8
+
+RUN set -xe \
+ && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \
+ && ELIXIR_DOWNLOAD_SHA256="8518c78f43fe36315dbe0d623823c2c1b7a025c114f3f4adbb48e04ef63f1d9f" \
+ && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \
+ && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \
+ && mkdir -p /usr/local/src/elixir \
+ && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \
+ && rm elixir-src.tar.gz \
+ && cd /usr/local/src/elixir \
+ && make install clean
diff --git a/ci/dockerfiles/23.1/erlang_elixir b/ci/dockerfiles/23.1/erlang_elixir
new file mode 100644
index 0000000000..8fbefe953b
--- /dev/null
+++ b/ci/dockerfiles/23.1/erlang_elixir
@@ -0,0 +1,18 @@
+FROM erlang:23.1
+
+ENV ERLANG_VERSION 23.1
+
+# elixir expects utf8.
+ENV ELIXIR_VERSION="v1.10.4" \
+ LANG=C.UTF-8
+
+RUN set -xe \
+ && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \
+ && ELIXIR_DOWNLOAD_SHA256="8518c78f43fe36315dbe0d623823c2c1b7a025c114f3f4adbb48e04ef63f1d9f" \
+ && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \
+ && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \
+ && mkdir -p /usr/local/src/elixir \
+ && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \
+ && rm elixir-src.tar.gz \
+ && cd /usr/local/src/elixir \
+ && make install clean
diff --git a/ci/dockerfiles/ci b/ci/dockerfiles/ci
new file mode 100644
index 0000000000..fda59d27d8
--- /dev/null
+++ b/ci/dockerfiles/ci
@@ -0,0 +1,42 @@
+ARG ERLANG_VERSION
+
+FROM eu.gcr.io/cf-rabbitmq-core/ci-base:${ERLANG_VERSION}
+
+ARG GITHUB_RUN_ID
+ARG BUILDEVENT_APIKEY
+
+ARG GITHUB_SHA
+
+ARG base_rmq_ref
+ARG current_rmq_ref
+
+ARG RABBITMQ_VERSION
+
+ENV GITHUB_RUN_ID $GITHUB_RUN_ID
+ENV GITHUB_SHA $GITHUB_SHA
+
+ENV base_rmq_ref $base_rmq_ref
+ENV current_rmq_ref $current_rmq_ref
+
+ENV RABBITMQ_VERSION $RABBITMQ_VERSION
+
+ENV BUILDEVENT_CIPROVIDER GitHubActions
+
+WORKDIR /workspace/rabbitmq
+
+COPY . .
+
+ENV UNPRIVILEGED_USER=rabbitmq
+RUN useradd \
+ --create-home \
+ --comment 'CI unprivileged user' \
+ ${UNPRIVILEGED_USER}
+
+RUN chown --recursive ${UNPRIVILEGED_USER} /workspace
+
+USER ${UNPRIVILEGED_USER}
+
+RUN BUILDEVENT_APIKEY=${BUILDEVENT_APIKEY} \
+ buildevents cmd ${GITHUB_RUN_ID} ${GITHUB_RUN_ID}-prepare deps -- \
+ make deps test-deps \
+ RABBITMQ_VERSION=${RABBITMQ_VERSION}
diff --git a/ci/dockerfiles/ci-base b/ci/dockerfiles/ci-base
new file mode 100644
index 0000000000..0eb4624030
--- /dev/null
+++ b/ci/dockerfiles/ci-base
@@ -0,0 +1,20 @@
+ARG ERLANG_VERSION
+
+FROM eu.gcr.io/cf-rabbitmq-core/erlang_elixir:${ERLANG_VERSION}
+
+RUN apt-get update && apt-get install -y rsync zip
+
+RUN curl -L -o buildevents https://github.com/honeycombio/buildevents/releases/latest/download/buildevents-linux-amd64
+RUN chmod 755 buildevents
+RUN mv buildevents /usr/bin/
+
+WORKDIR /workspace
+
+COPY ci/scripts/fetch_secondary_umbrellas.sh .
+
+# If we clone the monorepo at a ref when the monorepo was still rabbitmq-server,
+# then we just get rabbitmq-server (not the monorepo as it would have looked, had
+# it existed at that time). So for the time being, secondary umbrellas will derive
+# from rabbitmq-public-umbrella (as they always have)
+ARG SECONDARY_UMBRELLA_GITREFS
+RUN bash fetch_secondary_umbrellas.sh ${SECONDARY_UMBRELLA_GITREFS} \ No newline at end of file
diff --git a/ci/dockerfiles/ci-dep b/ci/dockerfiles/ci-dep
new file mode 100644
index 0000000000..602f7e3cdd
--- /dev/null
+++ b/ci/dockerfiles/ci-dep
@@ -0,0 +1,19 @@
+ARG IMAGE_TAG
+
+FROM eu.gcr.io/cf-rabbitmq-core/ci:${IMAGE_TAG}
+
+ARG BUILDEVENT_APIKEY
+ARG project
+
+WORKDIR /workspace/rabbitmq/deps/${project}
+
+RUN BUILDEVENT_APIKEY=${BUILDEVENT_APIKEY} \
+ buildevents cmd ${GITHUB_RUN_ID} ${GITHUB_RUN_ID}-${project} test-build -- \
+ make test-build
+
+RUN BUILDEVENT_APIKEY=${BUILDEVENT_APIKEY} \
+ buildevents cmd ${GITHUB_RUN_ID} ${GITHUB_RUN_ID}-${project} tests -- \
+ make eunit \
+ FULL= \
+ FAIL_FAST=1 \
+ SKIP_AS_ERROR=1