diff options
Diffstat (limited to 'ci/dockerfiles')
-rw-r--r-- | ci/dockerfiles/22.3/erlang_elixir | 18 | ||||
-rw-r--r-- | ci/dockerfiles/23.1/erlang_elixir | 18 | ||||
-rw-r--r-- | ci/dockerfiles/ci | 42 | ||||
-rw-r--r-- | ci/dockerfiles/ci-base | 20 | ||||
-rw-r--r-- | ci/dockerfiles/ci-dep | 19 |
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 |