ci: export docker image in build-slim-packages
This commit is contained in:
parent
321f86032f
commit
b90d371836
|
@ -154,6 +154,47 @@ jobs:
|
||||||
name: ${{ matrix.os }}
|
name: ${{ matrix.os }}
|
||||||
path: _packages/**/*
|
path: _packages/**/*
|
||||||
|
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
profile:
|
||||||
|
- emqx
|
||||||
|
- emqx-enterprise
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: prepare
|
||||||
|
run: |
|
||||||
|
echo "EMQX_NAME=${{ matrix.profile }}" >> $GITHUB_ENV
|
||||||
|
- name: build and test docker image
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
make $EMQX_NAME-docker
|
||||||
|
PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh $EMQX_NAME)}"
|
||||||
|
EMQX_IMAGE_TAG="${EMQX_IMAGE_TAG:-emqx/$EMQX_NAME:$PKG_VSN}"
|
||||||
|
CID=$(docker run -d --rm -P $EMQX_IMAGE_TAG)
|
||||||
|
HTTP_PORT=$(docker inspect --format='{{(index (index .NetworkSettings.Ports "18083/tcp") 0).HostPort}}' $CID)
|
||||||
|
IDLE_TIME=0
|
||||||
|
while ! curl http://127.0.0.1:$HTTP_PORT/status >/dev/null 2>&1; do
|
||||||
|
if [ $IDLE_TIME -gt 5 ]
|
||||||
|
then
|
||||||
|
echo "emqx running error"
|
||||||
|
docker rm -f $CID
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 5
|
||||||
|
IDLE_TIME=$((IDLE_TIME+1))
|
||||||
|
done
|
||||||
|
docker stop $CID
|
||||||
|
docker save $EMQX_IMAGE_TAG | gzip > $EMQX_NAME-$PKG_VSN.tar.gz
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: "${{ matrix.profile }}-docker"
|
||||||
|
path: "*.tar.gz"
|
||||||
|
|
||||||
spellcheck:
|
spellcheck:
|
||||||
needs: linux
|
needs: linux
|
||||||
strategy:
|
strategy:
|
||||||
|
|
18
build
18
build
|
@ -1,18 +1,12 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# This script helps to build release artifacts.
|
# This script helps to build release artifacts.
|
||||||
# arg1: profile, e.g. emqx | emqx-pkg
|
# arg1: profile, e.g. emqx | emqx-enterprise
|
||||||
# arg2: artifact, e.g. rel | relup | tgz | pkg
|
# arg2: artifact, e.g. rel | relup | tgz | pkg
|
||||||
|
|
||||||
if [[ -n "$DEBUG" ]]; then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
DEBUG="${DEBUG:-0}"
|
[ ${DEBUG:-0} -eq 1 ] && set -x
|
||||||
if [ "$DEBUG" -eq 1 ]; then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
PROFILE_ARG="$1"
|
PROFILE_ARG="$1"
|
||||||
ARTIFACT="$2"
|
ARTIFACT="$2"
|
||||||
|
@ -318,6 +312,12 @@ make_tgz() {
|
||||||
log "Archive sha256sum: $(cat "${target}.sha256")"
|
log "Archive sha256sum: $(cat "${target}.sha256")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trap docker_cleanup EXIT
|
||||||
|
|
||||||
|
docker_cleanup() {
|
||||||
|
rm -f ./.dockerignore >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
## This function builds the default docker image based on debian 11
|
## This function builds the default docker image based on debian 11
|
||||||
make_docker() {
|
make_docker() {
|
||||||
EMQX_BUILDER="${EMQX_BUILDER:-${EMQX_DEFAULT_BUILDER}}"
|
EMQX_BUILDER="${EMQX_BUILDER:-${EMQX_DEFAULT_BUILDER}}"
|
||||||
|
@ -329,6 +329,7 @@ make_docker() {
|
||||||
local default_tag="emqx/${PROFILE%%-elixir}:${PKG_VSN}"
|
local default_tag="emqx/${PROFILE%%-elixir}:${PKG_VSN}"
|
||||||
EMQX_IMAGE_TAG="${EMQX_IMAGE_TAG:-$default_tag}"
|
EMQX_IMAGE_TAG="${EMQX_IMAGE_TAG:-$default_tag}"
|
||||||
|
|
||||||
|
echo '_build' >> ./.dockerignore
|
||||||
set -x
|
set -x
|
||||||
docker build --no-cache --pull \
|
docker build --no-cache --pull \
|
||||||
--build-arg BUILD_FROM="${EMQX_BUILDER}" \
|
--build-arg BUILD_FROM="${EMQX_BUILDER}" \
|
||||||
|
@ -336,6 +337,7 @@ make_docker() {
|
||||||
--build-arg EMQX_NAME="$PROFILE" \
|
--build-arg EMQX_NAME="$PROFILE" \
|
||||||
--tag "${EMQX_IMAGE_TAG}" \
|
--tag "${EMQX_IMAGE_TAG}" \
|
||||||
-f "${EMQX_DOCKERFILE}" .
|
-f "${EMQX_DOCKERFILE}" .
|
||||||
|
[[ "${DEBUG:-}" -eq 1 ]] || set +x
|
||||||
}
|
}
|
||||||
|
|
||||||
function join {
|
function join {
|
||||||
|
|
|
@ -10,11 +10,9 @@ ENV EMQX_RELUP=false
|
||||||
RUN export PROFILE=${EMQX_NAME%%-elixir} \
|
RUN export PROFILE=${EMQX_NAME%%-elixir} \
|
||||||
&& export EMQX_NAME1=$EMQX_NAME \
|
&& export EMQX_NAME1=$EMQX_NAME \
|
||||||
&& export EMQX_NAME=$PROFILE \
|
&& export EMQX_NAME=$PROFILE \
|
||||||
&& export EMQX_LIB_PATH="_build/$EMQX_NAME/lib" \
|
|
||||||
&& export EMQX_REL_PATH="/emqx/_build/$EMQX_NAME/rel/emqx" \
|
&& export EMQX_REL_PATH="/emqx/_build/$EMQX_NAME/rel/emqx" \
|
||||||
&& export EMQX_REL_FORM='docker' \
|
&& export EMQX_REL_FORM='docker' \
|
||||||
&& cd /emqx \
|
&& cd /emqx \
|
||||||
&& rm -rf $EMQX_LIB_PATH \
|
|
||||||
&& make $EMQX_NAME1 \
|
&& make $EMQX_NAME1 \
|
||||||
&& rm -f $EMQX_REL_PATH/*.tar.gz \
|
&& rm -f $EMQX_REL_PATH/*.tar.gz \
|
||||||
&& mkdir -p /emqx-rel \
|
&& mkdir -p /emqx-rel \
|
||||||
|
|
Loading…
Reference in New Issue