This is an automated email from the ASF dual-hosted git repository.
wangdan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pegasus.git
The following commit(s) were added to refs/heads/master by this push:
new 867174591 build(images): append branch name to the tag of each
build-env-* image to support building image for each branch (#1763)
867174591 is described below
commit 8671745919b8c3151e17d793f71ee04a540c5fa6
Author: Dan Wang <[email protected]>
AuthorDate: Tue Dec 12 19:59:43 2023 +0800
build(images): append branch name to the tag of each build-env-* image to
support building image for each branch (#1763)
Since build-env-* images may vary for different releases, they should be
built for released and master branches. We need to append branch name to the
tag to create image for each branch.
---
.github/workflows/build-push-env-docker.yml | 3 +--
.github/workflows/thirdparty-regular-push.yml | 2 ++
docker/README.md | 16 ++++++-------
docker/ci-env/Dockerfile | 2 +-
docker/pegasus-docker-compose/README.md | 2 +-
docker/pegasus-docker-compose/build_docker.sh | 26 ++++++++++++----------
.../image_for_prebuilt_bin/Dockerfile | 3 ++-
docker/thirdparties-bin/Dockerfile | 4 ++--
docker/thirdparties-src/Dockerfile | 5 +++--
9 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/.github/workflows/build-push-env-docker.yml
b/.github/workflows/build-push-env-docker.yml
index b847587c3..1bf695e7e 100644
--- a/.github/workflows/build-push-env-docker.yml
+++ b/.github/workflows/build-push-env-docker.yml
@@ -27,7 +27,6 @@ on:
paths:
- 'docker/pegasus-build-env/**'
- '.github/workflows/build-push-env-docker.yml'
- - 'thirdparty/**'
# for manually triggering workflow
workflow_dispatch:
@@ -62,6 +61,6 @@ jobs:
file: ./docker/pegasus-build-env/${{ matrix.dockertag }}/Dockerfile
push: true
tags: |
- apache/pegasus:build-env-${{ matrix.dockertag }}
+ apache/pegasus:build-env-${{ matrix.dockertag }}-${{
github.ref_name }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
diff --git a/.github/workflows/thirdparty-regular-push.yml
b/.github/workflows/thirdparty-regular-push.yml
index f56b3f4c2..59d0430ea 100644
--- a/.github/workflows/thirdparty-regular-push.yml
+++ b/.github/workflows/thirdparty-regular-push.yml
@@ -25,8 +25,10 @@ on:
- ci-test # testing branch for github action
- '*dev' # developing branch
paths:
+ - 'docker/pegasus-build-env/**'
- 'docker/thirdparties-src/**'
- 'docker/thirdparties-bin/**'
+ - '.github/workflows/build-push-env-docker.yml'
- '.github/workflows/thirdparty-regular-push.yml'
- 'thirdparty/**'
diff --git a/docker/README.md b/docker/README.md
index 8df3e1b94..978c1e484 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -35,10 +35,10 @@ Building environment for Pegasus compilation.
Github Actions automatically rebuilds and publishes build-env for every commit.
-- `apache/pegasus:build-env-centos7`
-- `apache/pegasus:build-env-ubuntu1804`
-- `apache/pegasus:build-env-ubuntu2004`
-- `apache/pegasus:build-env-ubuntu2204`
+- `apache/pegasus:build-env-centos7-<branch>`
+- `apache/pegasus:build-env-ubuntu1804-<branch>`
+- `apache/pegasus:build-env-ubuntu2004-<branch>`
+- `apache/pegasus:build-env-ubuntu2204-<branch>`
DockerHub: https://hub.docker.com/r/apache/pegasus
@@ -58,7 +58,7 @@ without downloading from the cloud object storage.
This is a Docker image for Pegasus unit-testing. It prebuilts the thirdparty
libraries,
so jobs based on this image can skip building third-parties.
-- `apache/pegasus:thirdparties-bin-centos7-master`
-- `apache/pegasus:thirdparties-bin-ubuntu1804-master`
-- `apache/pegasus:thirdparties-bin-ubuntu2004-master`
-- `apache/pegasus:thirdparties-bin-ubuntu2204-master`
+- `apache/pegasus:thirdparties-bin-centos7-<branch>`
+- `apache/pegasus:thirdparties-bin-ubuntu1804-<branch>`
+- `apache/pegasus:thirdparties-bin-ubuntu2004-<branch>`
+- `apache/pegasus:thirdparties-bin-ubuntu2204-<branch>`
diff --git a/docker/ci-env/Dockerfile b/docker/ci-env/Dockerfile
index 295a749ff..89a54cdc3 100644
--- a/docker/ci-env/Dockerfile
+++ b/docker/ci-env/Dockerfile
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-FROM apache/pegasus:build-env-centos7
+FROM apache/pegasus:build-env-centos7-master
WORKDIR /root
diff --git a/docker/pegasus-docker-compose/README.md
b/docker/pegasus-docker-compose/README.md
index 7d84672dc..fb0a1404c 100644
--- a/docker/pegasus-docker-compose/README.md
+++ b/docker/pegasus-docker-compose/README.md
@@ -39,7 +39,7 @@ Then build the image:
```
cd /your/local/pegasus-docker/pegasus-docker-compose
-./build_docker.sh /your/local/apache-pegasus-source
+./build_docker.sh /your/local/apache-pegasus-source
github-branch-for-build-env-image(default: master)
```
You will have a docker image called "pegasus:latest" right now built on you
machine. Check it out:
diff --git a/docker/pegasus-docker-compose/build_docker.sh
b/docker/pegasus-docker-compose/build_docker.sh
index f665187c7..4a4d4cadf 100755
--- a/docker/pegasus-docker-compose/build_docker.sh
+++ b/docker/pegasus-docker-compose/build_docker.sh
@@ -18,14 +18,11 @@
#!/bin/bash
-# Usage:
-# ./build_docker.sh /your/local/apache-pegasus-source
-
set -e
-if [[ $# -ne 1 ]]; then
- echo "ERROR: must specify /your/local/apache-pegasus-source"
- exit 1
+if [[ $# -lt 1 ]]; then
+ echo "USAGE: $0 /your/local/apache-pegasus-source
[github-branch-for-build-env-image(default: master)]"
+ exit 1
fi
# ROOT is where the script is.
@@ -34,15 +31,20 @@ ROOT=$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")
# PEGASUS_ROOT is the absolute path of apache-pegasus-source
PEGASUS_ROOT="$(readlink -f "$1")"
if [[ ! -f "${PEGASUS_ROOT}"/PACKAGE ]]; then
- echo "ERROR: no such file ${PEGASUS_ROOT}/PACKAGE"
- exit 1
+ echo "ERROR: no such file ${PEGASUS_ROOT}/PACKAGE"
+ exit 1
fi
SERVER_PKG_NAME=$(cat "${PEGASUS_ROOT}"/PACKAGE)
if [[ ! -f "${PEGASUS_ROOT}/${SERVER_PKG_NAME}.tar.gz" ]]; then
- echo "Failed to find package ${SERVER_PKG_NAME}.tar.gz in
${PEGASUS_ROOT}"
- exit 1
+ echo "Failed to find package ${SERVER_PKG_NAME}.tar.gz in ${PEGASUS_ROOT}"
+ exit 1
else
- echo "Found package ${PEGASUS_ROOT}/${SERVER_PKG_NAME}.tar.gz"
+ echo "Found package ${PEGASUS_ROOT}/${SERVER_PKG_NAME}.tar.gz"
+fi
+
+GITHUB_BRANCH=master
+if [[ $# -ge 2 ]]; then
+ GITHUB_BRANCH=$2
fi
###
@@ -54,5 +56,5 @@ echo "Building image ${IMAGE_NAME}"
cd "${ROOT}"/image_for_prebuilt_bin || exit 1
cp "${PEGASUS_ROOT}/${SERVER_PKG_NAME}.tar.gz" .
-docker build --build-arg SERVER_PKG_NAME="${SERVER_PKG_NAME}" -t ${IMAGE_NAME}
.
+docker build --build-arg SERVER_PKG_NAME="${SERVER_PKG_NAME}" --build-arg
GITHUB_BRANCH="{GITHUB_BRANCH}" -t ${IMAGE_NAME} .
rm "${SERVER_PKG_NAME}.tar.gz"
diff --git a/docker/pegasus-docker-compose/image_for_prebuilt_bin/Dockerfile
b/docker/pegasus-docker-compose/image_for_prebuilt_bin/Dockerfile
index 1e3369a1e..a61d4cc40 100644
--- a/docker/pegasus-docker-compose/image_for_prebuilt_bin/Dockerfile
+++ b/docker/pegasus-docker-compose/image_for_prebuilt_bin/Dockerfile
@@ -15,7 +15,8 @@
# specific language governing permissions and limitations
# under the License.
-FROM apache/pegasus:build-env-ubuntu2004
+ARG GITHUB_BRANCH=master
+FROM apache/pegasus:build-env-ubuntu2004-${GITHUB_BRANCH}
ARG SERVER_PKG_NAME
diff --git a/docker/thirdparties-bin/Dockerfile
b/docker/thirdparties-bin/Dockerfile
index 36f75fe9c..85137791b 100644
--- a/docker/thirdparties-bin/Dockerfile
+++ b/docker/thirdparties-bin/Dockerfile
@@ -18,13 +18,13 @@
ARG GITHUB_BRANCH=master
ARG OS_VERSION=centos7
FROM apache/pegasus:thirdparties-src-${GITHUB_BRANCH} as builder
-FROM apache/pegasus:build-env-${OS_VERSION}
+FROM apache/pegasus:build-env-${OS_VERSION}-${GITHUB_BRANCH}
WORKDIR /root
COPY --from=builder /root/thirdparties-src.zip /root/thirdparties-src.zip
-ARG GITHUB_BRANCH=master
+ARG GITHUB_BRANCH
ARG GITHUB_REPOSITORY_URL=https://github.com/apache/incubator-pegasus.git
ARG ROCKSDB_PORTABLE=native
ARG USE_JEMALLOC=OFF
diff --git a/docker/thirdparties-src/Dockerfile
b/docker/thirdparties-src/Dockerfile
index a11538e2e..149a5765f 100644
--- a/docker/thirdparties-src/Dockerfile
+++ b/docker/thirdparties-src/Dockerfile
@@ -15,11 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-FROM apache/pegasus:build-env-centos7 as builder
+ARG GITHUB_BRANCH=master
+FROM apache/pegasus:build-env-centos7-${GITHUB_BRANCH} as builder
WORKDIR /root
-ARG GITHUB_BRANCH=master
+ARG GITHUB_BRANCH
ARG GITHUB_REPOSITORY_URL=https://github.com/apache/incubator-pegasus.git
RUN git clone --depth=1 --branch=${GITHUB_BRANCH} ${GITHUB_REPOSITORY_URL}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]