Skip to content

Commit 7aa630e

Browse files
authored
Merge pull request mysql#31 from planetscale/dbussink/multi-distro-build
Multi distro build for 8.0 branch
2 parents de79707 + 5b3e8b9 commit 7aa630e

File tree

6 files changed

+36
-9
lines changed

6 files changed

+36
-9
lines changed

.buildkite/hooks/pre-command

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# vim: set ft=bash:
22
set -eu
33

4+
export MAIN_BRANCH="8.0"
5+
46
TODAY=$(date +"%Y%m%d")
57
[ -n "$TODAY" ]
68
echo "Today = \"${TODAY}\""
@@ -21,4 +23,16 @@ export CONTAINER_BRANCH_NAME=$(echo "$BUILDKITE_BRANCH" | sed -e 's/[\/:]/_/g')
2123
[ -n "$CONTAINER_BRANCH_NAME" ]
2224
echo "Safe branch name = \"${CONTAINER_BRANCH_NAME}\""
2325

26+
export TARBALL_VERSION="mysql-${CONTAINER_SEMVER}-ps-${CONTAINER_SHORT_SHA}"
27+
[ -n "$TARBALL_VERSION" ]
28+
echo "Tarball version = \"${TARBALL_VERSION}\""
29+
30+
export BUILDKITE_ARTIFACT_UPLOAD_DESTINATION="s3://planetscale-mysql-server-private-ci-artifacts/mysql/branch"
31+
if [ "${CONTAINER_BRANCH_NAME}" = "${MAIN_BRANCH}" ]; then
32+
export BUILDKITE_ARTIFACT_UPLOAD_DESTINATION="s3://planetscale-mysql-server-private-ci-artifacts/mysql/main"
33+
fi
34+
35+
export BUILDKITE_S3_DEFAULT_REGION="us-east-1"
36+
export BUILDKITE_S3_ACL="private"
37+
2438
mkdir -p dist/

.buildkite/pipeline.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ env:
88
DOCKER_BUILDKIT: 1
99
IMAGE_NAME: "mysql-server"
1010
REGISTRY: "997601596833.dkr.ecr.us-east-1.amazonaws.com"
11-
MAIN_BRANCH: "8.0"
1211

1312
steps:
1413
- name: "Build mysql-server"
1514
label: ":docker: Build and package"
1615
command: bash build.sh
1716
artifact_paths:
18-
- "dist/*.tar.gz"
17+
- "dist/mysql-*.tar.gz"
1918
plugins:
2019
- docker-compose#v3.10.0:
2120
run: builder
21+
env:
22+
DISTRO: "{{matrix}}"
23+
matrix:
24+
- "debian:bullseye-slim"
25+
- "ubuntu:focal"
2226

2327
- wait
2428

Dockerfile.build

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
FROM debian:bullseye-slim
1+
ARG BASE_IMAGE=debian:bullseye-slim
2+
FROM $BASE_IMAGE
23

34
RUN apt-get update && apt-get upgrade -y
45

56
ENV DEBIAN_FRONTEND noninteractive
7+
ENV DISTRO $BASE_IMAGE
68

79
ADD --chown=1234 . /src
810
WORKDIR /src

Dockerfile.release

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
# Since we can't strip-components with ADD, we'll need to manually extract it
44
FROM debian:bullseye-slim as mysql-dist
5-
ARG MYSQL_VERSION
5+
ARG TARBALL_VERSION
66

77
ENV DEBIAN_FRONTEND noninteractive
88

99
RUN apt-get update && \
1010
apt-get install -y \
1111
binutils
1212

13-
COPY mysql-${MYSQL_VERSION}-linux-x86_64.tar.gz /dist/
13+
COPY ${TARBALL_VERSION}-bullseye-linux-x86_64.tar.gz /dist/
1414

1515
RUN mkdir /dist/usr && \
16-
tar -xzvf /dist/mysql-${MYSQL_VERSION}-linux-x86_64.tar.gz -C /dist/usr --strip-components=1
16+
tar -xzvf /dist/${TARBALL_VERSION}-bullseye-linux-x86_64.tar.gz -C /dist/usr --strip-components=1
1717

1818
FROM debian:bullseye-slim
1919

build.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,8 @@ make -j $(nproc)
5050
DISABLE_IPV6_TESTS=1 DISABLE_TMPFILE_TESTS=1 make test ARGS="-j $(nproc) -E ^routertest -VV"
5151

5252
make -j $(nproc) package
53+
54+
distro="$(lsb_release -c -s)"
55+
source ../MYSQL_VERSION
56+
57+
mv "mysql-${MYSQL_VERSION_MAJOR}.${MYSQL_VERSION_MINOR}.${MYSQL_VERSION_PATCH}-linux-$(uname -m).tar.gz" "${TARBALL_VERSION}-${distro}-linux-$(uname -m).tar.gz"

docker-compose.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ services:
55
build:
66
context: ./
77
dockerfile: Dockerfile.build
8+
args:
9+
- BASE_IMAGE=${DISTRO}
810
volumes:
911
- "./dist:/dist"
12+
environment:
13+
- TARBALL_VERSION=${TARBALL_VERSION}
1014

1115
release:
1216
build:
1317
context: ./dist
1418
dockerfile: ../Dockerfile.release
1519
args:
16-
- MYSQL_VERSION=${MYSQL_VERSION:?}
17-
environment:
18-
- BUILDKITE_BRANCH=${BUILDKITE_BRANCH}
20+
- TARBALL_VERSION=${TARBALL_VERSION:?}

0 commit comments

Comments
 (0)