Merge pull request #6044 from zmstone/use-profile-name-as-default-docker-image-tag
Use profile name as default docker image tag
This commit is contained in:
commit
818bde1820
|
@ -1,5 +1,5 @@
|
||||||
name: Integration Test Suites
|
name: Integration Test Suites
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
|
@ -12,18 +12,30 @@ jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
|
imgname: ${{ steps.build_docker.outputs.imgname}}
|
||||||
version: ${{ steps.build_docker.outputs.version}}
|
version: ${{ steps.build_docker.outputs.version}}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: build docker
|
- name: build docker
|
||||||
id: build_docker
|
id: build_docker
|
||||||
run: |
|
run: |
|
||||||
|
if [ -f EMQX_ENTERPRISE ]; then
|
||||||
|
echo "https://ci%40emqx.io:${{ secrets.CI_GIT_TOKEN }}@github.com" > $HOME/.git-credentials
|
||||||
|
git config --global credential.helper store
|
||||||
|
echo "${{ secrets.CI_GIT_TOKEN }}" >> scripts/git-token
|
||||||
|
make deps-emqx-ee
|
||||||
|
fi
|
||||||
make docker
|
make docker
|
||||||
echo "::set-output name=version::$(./pkg-vsn.sh)"
|
echo "::set-output name=version::$(./pkg-vsn.sh)"
|
||||||
|
if [ -f EMQX_ENTERPRISE ]; then
|
||||||
|
echo "::set-output name=imgname::emqx-ee"
|
||||||
|
else
|
||||||
|
echo "::set-output name=imgname::emqx"
|
||||||
|
fi
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: emqx-docker-image-zip
|
name: emqx-docker-image-zip
|
||||||
path: _packages/emqx/emqx-docker-${{ steps.build_docker.outputs.version }}.zip
|
path: _packages/${{ steps.build_docker.outputs.imgname }}/${{ steps.build_docker.outputs.imgname }}-docker-${{ steps.build_docker.outputs.version }}.zip
|
||||||
|
|
||||||
webhook:
|
webhook:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -43,14 +55,15 @@ jobs:
|
||||||
path: /tmp
|
path: /tmp
|
||||||
- name: load docker image
|
- name: load docker image
|
||||||
env:
|
env:
|
||||||
|
imgname: ${{ needs.build.outputs.imgname}}
|
||||||
version: ${{ needs.build.outputs.version }}
|
version: ${{ needs.build.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
|
unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
|
||||||
docker load < /tmp/emqx-docker-${version}
|
docker load < /tmp/${imgname}-docker-${version}
|
||||||
- name: docker compose up
|
- name: docker compose up
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
env:
|
env:
|
||||||
TARGET: emqx/emqx
|
TARGET: emqx/${{ needs.build.outputs.imgname }}
|
||||||
EMQX_TAG: ${{ needs.build.outputs.version }}
|
EMQX_TAG: ${{ needs.build.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
docker-compose \
|
docker-compose \
|
||||||
|
@ -142,14 +155,15 @@ jobs:
|
||||||
path: /tmp
|
path: /tmp
|
||||||
- name: load docker image
|
- name: load docker image
|
||||||
env:
|
env:
|
||||||
|
imgname: ${{ needs.build.outputs.imgname }}
|
||||||
version: ${{ needs.build.outputs.version }}
|
version: ${{ needs.build.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
|
unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
|
||||||
docker load < /tmp/emqx-docker-${version}
|
docker load < /tmp/${imgname}-docker-${version}
|
||||||
- name: docker compose up
|
- name: docker compose up
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
env:
|
env:
|
||||||
TARGET: emqx/emqx
|
TARGET: emqx/${{ needs.build.outputs.imgname }}
|
||||||
EMQX_TAG: ${{ needs.build.outputs.version }}
|
EMQX_TAG: ${{ needs.build.outputs.version }}
|
||||||
MYSQL_TAG: ${{ matrix.mysql_tag }}
|
MYSQL_TAG: ${{ matrix.mysql_tag }}
|
||||||
run: |
|
run: |
|
||||||
|
@ -248,14 +262,15 @@ jobs:
|
||||||
path: /tmp
|
path: /tmp
|
||||||
- name: load docker image
|
- name: load docker image
|
||||||
env:
|
env:
|
||||||
|
imgname: ${{ needs.build.outputs.imgname }}
|
||||||
version: ${{ needs.build.outputs.version }}
|
version: ${{ needs.build.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
|
unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
|
||||||
docker load < /tmp/emqx-docker-${version}
|
docker load < /tmp/${imgname}-docker-${version}
|
||||||
- name: docker compose up
|
- name: docker compose up
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
env:
|
env:
|
||||||
TARGET: emqx/emqx
|
TARGET: emqx/${{ needs.build.outputs.imgname }}
|
||||||
EMQX_TAG: ${{ needs.build.outputs.version }}
|
EMQX_TAG: ${{ needs.build.outputs.version }}
|
||||||
PGSQL_TAG: ${{ matrix.pgsql_tag }}
|
PGSQL_TAG: ${{ matrix.pgsql_tag }}
|
||||||
run: |
|
run: |
|
||||||
|
@ -343,14 +358,15 @@ jobs:
|
||||||
path: /tmp
|
path: /tmp
|
||||||
- name: load docker image
|
- name: load docker image
|
||||||
env:
|
env:
|
||||||
|
imgname: ${{ needs.build.outputs.imgname }}
|
||||||
version: ${{ needs.build.outputs.version }}
|
version: ${{ needs.build.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
|
unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
|
||||||
docker load < /tmp/emqx-docker-${version}
|
docker load < /tmp/${imgname}-docker-${version}
|
||||||
- name: docker compose up
|
- name: docker compose up
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
env:
|
env:
|
||||||
TARGET: emqx/emqx
|
TARGET: emqx/${{ needs.build.outputs.imgname }}
|
||||||
EMQX_TAG: ${{ needs.build.outputs.version }}
|
EMQX_TAG: ${{ needs.build.outputs.version }}
|
||||||
MYSQL_TAG: 8
|
MYSQL_TAG: 8
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -41,7 +41,7 @@ LABEL org.label-schema.docker.dockerfile="Dockerfile" \
|
||||||
org.label-schema.url="https://emqx.io" \
|
org.label-schema.url="https://emqx.io" \
|
||||||
org.label-schema.vcs-type="Git" \
|
org.label-schema.vcs-type="Git" \
|
||||||
org.label-schema.vcs-url="https://github.com/emqx/emqx" \
|
org.label-schema.vcs-url="https://github.com/emqx/emqx" \
|
||||||
maintainer="Raymond M Mouthaan <raymondmmouthaan@gmail.com>, Huang Rui <vowstar@gmail.com>, EMQ X Team <support@emqx.io>"
|
maintainer="EMQ X Team <support@emqx.io>"
|
||||||
|
|
||||||
ARG QEMU_ARCH=x86_64
|
ARG QEMU_ARCH=x86_64
|
||||||
ARG EMQX_NAME=emqx
|
ARG EMQX_NAME=emqx
|
||||||
|
|
22
docker.mk
22
docker.mk
|
@ -1,8 +1,10 @@
|
||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
# -*- makefile -*-
|
# -*- makefile -*-
|
||||||
|
|
||||||
## default globals
|
## default globals.
|
||||||
TARGET ?= emqx/emqx
|
## when built with `make docker` command the default profile is either emqx or emqx-ee (for enterprise)
|
||||||
|
## or the TARGET varialbe can be set beforehand to force a different name
|
||||||
|
TARGET ?= emqx/$(PROFILE)
|
||||||
QEMU_ARCH ?= x86_64
|
QEMU_ARCH ?= x86_64
|
||||||
ARCH ?= amd64
|
ARCH ?= amd64
|
||||||
QEMU_VERSION ?= v5.0.0-2
|
QEMU_VERSION ?= v5.0.0-2
|
||||||
|
@ -37,7 +39,7 @@ docker-prepare:
|
||||||
# enable experimental to use docker manifest command
|
# enable experimental to use docker manifest command
|
||||||
@echo '{ "experimental": "enabled" }' | tee $$HOME/.docker/config.json
|
@echo '{ "experimental": "enabled" }' | tee $$HOME/.docker/config.json
|
||||||
# enable experimental
|
# enable experimental
|
||||||
@echo '{ "experimental": true, "storage-driver": "overlay2", "max-concurrent-downloads": 50, "max-concurrent-uploads": 50 }' | tee /etc/docker/daemon.json
|
@echo '{ "experimental": true, "storage-driver": "overlay2", "max-concurrent-downloads": 50, "max-concurrent-uploads": 50 }' | tee /etc/docker/daemon.json
|
||||||
@service docker restart
|
@service docker restart
|
||||||
|
|
||||||
.PHONY: docker-build
|
.PHONY: docker-build
|
||||||
|
@ -85,7 +87,7 @@ docker-tag:
|
||||||
|
|
||||||
.PHONY: docker-save
|
.PHONY: docker-save
|
||||||
docker-save:
|
docker-save:
|
||||||
@echo "DOCKER SAVE: Save Docker image."
|
@echo "DOCKER SAVE: Save Docker image."
|
||||||
|
|
||||||
@mkdir -p _packages/$(EMQX_NAME)
|
@mkdir -p _packages/$(EMQX_NAME)
|
||||||
|
|
||||||
|
@ -94,7 +96,7 @@ docker-save:
|
||||||
zip -r -m $(EMQX_NAME)-docker-$(PKG_VSN).zip $(EMQX_NAME)-docker-$(PKG_VSN); \
|
zip -r -m $(EMQX_NAME)-docker-$(PKG_VSN).zip $(EMQX_NAME)-docker-$(PKG_VSN); \
|
||||||
mv ./$(EMQX_NAME)-docker-$(PKG_VSN).zip _packages/$(EMQX_NAME)/$(EMQX_NAME)-docker-$(PKG_VSN).zip; \
|
mv ./$(EMQX_NAME)-docker-$(PKG_VSN).zip _packages/$(EMQX_NAME)/$(EMQX_NAME)-docker-$(PKG_VSN).zip; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@for arch in $(ARCH_LIST); do \
|
@for arch in $(ARCH_LIST); do \
|
||||||
if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN)-$(OS)-$${arch})" ]; then \
|
if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN)-$(OS)-$${arch})" ]; then \
|
||||||
docker save $(TARGET):$(PKG_VSN)-$(OS)-$${arch} > $(EMQX_NAME)-docker-$(PKG_VSN)-$(OS)-$${arch}; \
|
docker save $(TARGET):$(PKG_VSN)-$(OS)-$${arch} > $(EMQX_NAME)-docker-$(PKG_VSN)-$(OS)-$${arch}; \
|
||||||
|
@ -105,8 +107,8 @@ docker-save:
|
||||||
|
|
||||||
.PHONY: docker-push
|
.PHONY: docker-push
|
||||||
docker-push:
|
docker-push:
|
||||||
@echo "DOCKER PUSH: Push Docker image.";
|
@echo "DOCKER PUSH: Push Docker image.";
|
||||||
@echo "DOCKER PUSH: pushing - $(TARGET):$(PKG_VSN).";
|
@echo "DOCKER PUSH: pushing - $(TARGET):$(PKG_VSN).";
|
||||||
|
|
||||||
@if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN))" ]; then \
|
@if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN))" ]; then \
|
||||||
docker push $(TARGET):$(PKG_VSN); \
|
docker push $(TARGET):$(PKG_VSN); \
|
||||||
|
@ -131,7 +133,7 @@ docker-manifest-list:
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
eval $$version; \
|
eval $$version; \
|
||||||
eval $$latest;
|
eval $$latest;
|
||||||
|
|
||||||
for arch in $(ARCH_LIST); do \
|
for arch in $(ARCH_LIST); do \
|
||||||
case $${arch} in \
|
case $${arch} in \
|
||||||
|
@ -166,10 +168,10 @@ docker-manifest-list:
|
||||||
fi; \
|
fi; \
|
||||||
;; \
|
;; \
|
||||||
esac; \
|
esac; \
|
||||||
done;
|
done;
|
||||||
|
|
||||||
docker manifest inspect $(TARGET):$(PKG_VSN)
|
docker manifest inspect $(TARGET):$(PKG_VSN)
|
||||||
docker manifest push $(TARGET):$(PKG_VSN);
|
docker manifest push $(TARGET):$(PKG_VSN);
|
||||||
docker manifest inspect $(TARGET):latest
|
docker manifest inspect $(TARGET):latest
|
||||||
docker manifest push $(TARGET):latest;
|
docker manifest push $(TARGET):latest;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue