ci: fix docker and helm tests

This commit is contained in:
Ivan Dyachkov 2023-08-02 16:09:04 +02:00
parent 28afa538d3
commit f8022a849a
3 changed files with 32 additions and 34 deletions

View File

@ -35,39 +35,33 @@ jobs:
docker:
runs-on: ubuntu-latest
env:
EMQX_NAME: ${{ matrix.profile[0] }}
EMQX_NAME: ${{ matrix.profile }}
OTP_VSN: 25.3.2-1
ELIXIR_VSN: 1.14.5
PKG_VSN: ${{ matrix.profile[0] == 'emqx' && inputs.version-emqx || inputs.version-emqx-enterprise }}
EMQX_IMAGE_TAG: emqx/${{ matrix.profile[0] }}:${{ matrix.profile[0] == 'emqx' && inputs.version-emqx || inputs.version-emqx-enterprise }}
EMQX_IMAGE_OLD_VERSION_TAG: emqx/${{ matrix.profile[0] }}:${{ matrix.profile[1] }}
PKG_VSN: ${{ matrix.profile == 'emqx-enterprise' && inputs.version-emqx-enterprise || inputs.version-emqx }}
strategy:
fail-fast: false
matrix:
profile:
- ["emqx", "5.0.16"]
- ["emqx-elixir", "5.0.16"]
- ["emqx-enterprise", "5.0.1"]
- emqx
- emqx-enterprise
- emqx-elixir
steps:
- uses: actions/checkout@v3
- name: build and export to Docker
id: build
run: |
make ${{ matrix.profile[0] }}-docker
echo "EMQX_IMAGE_TAG=$(cat .docker_image_tag)" >> $GITHUB_OUTPUT
make ${EMQX_NAME}-docker
echo "EMQX_IMAGE_TAG=$(cat .docker_image_tag)" >> $GITHUB_ENV
- name: smoke test
env:
EMQX_IMAGE_TAG: ${{ steps.build.outputs.EMQX_IMAGE_TAG }}
run: |
CID=$(docker run -d --rm -P $EMQX_IMAGE_TAG)
HTTP_PORT=$(docker inspect --format='{{(index (index .NetworkSettings.Ports "18083/tcp") 0).HostPort}}' $CID)
./scripts/test/emqx-smoke-test.sh localhost $HTTP_PORT
docker stop $CID
- name: export docker image
env:
EMQX_IMAGE_TAG: ${{ steps.build.outputs.EMQX_IMAGE_TAG }}
run: |
docker save $EMQX_IMAGE_TAG | gzip > $EMQX_NAME-docker-$PKG_VSN.tar.gz
- uses: actions/upload-artifact@v3
@ -75,8 +69,4 @@ jobs:
name: "${{ env.EMQX_NAME }}-docker"
path: "${{ env.EMQX_NAME }}-docker-${{ env.PKG_VSN }}.tar.gz"
retention-days: 3
- name: cleanup
if: always()
working-directory: ./scripts/ui-tests
run: |
docker compose rm -fs

View File

@ -23,26 +23,28 @@ on:
jobs:
main:
runs-on: ${{ github.repository_owner == 'emqx' && 'aws-amd64' || 'ubuntu-22.04' }}
env:
EMQX_NAME: ${{ matrix.profile[0] }}
PKG_VSN: ${{ matrix.profile[0] == 'emqx-enterprise' && inputs.version-emqx-enterprise || inputs.version-emqx }}
EMQX_IMAGE_OLD_VERSION_TAG: emqx/${{ matrix.profile[0] }}:${{ matrix.profile[1] }}
strategy:
fail-fast: false
matrix:
profile:
- emqx
- emqx-enterprise
- emqx-elixir
- ["emqx", "5.0.16"]
- ["emqx-elixir", "5.0.16"]
- ["emqx-enterprise", "5.0.1"]
steps:
- uses: AutoModality/action-clean@v1
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: ${{ matrix.profile }}-docker
name: ${{ matrix.profile[0] }}-docker
path: /tmp
- name: load docker image
env:
PKG_VSN: ${{ inputs.version-emqx }}
run: |
EMQX_IMAGE_TAG=$(docker load < /tmp/emqx-docker-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
EMQX_IMAGE_TAG=$(docker load < /tmp/${EMQX_NAME}-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
echo "EMQX_IMAGE_TAG=$EMQX_IMAGE_TAG" >> $GITHUB_ENV
- name: test two nodes cluster with proto_dist=inet_tls in docker
run: |
@ -56,10 +58,17 @@ jobs:
run: |
set -eu
docker compose up --abort-on-container-exit --exit-code-from selenium
- name: cleanup
if: always()
working-directory: ./scripts/ui-tests
run: |
docker compose rm -fs
pytest:
runs-on: ${{ github.repository_owner == 'emqx' && 'aws-amd64' || 'ubuntu-22.04' }}
env:
EMQX_NAME: ${{ matrix.profile[0] }}
PKG_VSN: ${{ matrix.profile[0] == 'emqx-enterprise' && inputs.version-emqx-enterprise || inputs.version-emqx }}
DB_BACKEND: ${{ matrix.cluster_db_backend }}
strategy:
@ -80,10 +89,8 @@ jobs:
name: ${{ matrix.profile }}-docker
path: /tmp
- name: load docker image
env:
PKG_VSN: ${{ inputs.version-emqx }}
run: |
EMQX_IMAGE_TAG=$(docker load < /tmp/emqx-docker-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
EMQX_IMAGE_TAG=$(docker load < /tmp/${EMQX_NAME}-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
echo "EMQX_IMAGE_TAG=$EMQX_IMAGE_TAG" >> $GITHUB_ENV
- name: run emqx
timeout-minutes: 5
@ -105,4 +112,5 @@ jobs:
# simple smoke test for node_dump
- name: test node_dump
run: |
docker exec -u root node1.emqx.io apt update && apt install -y net-tools
docker exec node1.emqx.io node_dump

View File

@ -22,7 +22,10 @@ on:
jobs:
helm_test:
runs-on: ${{ github.repository_owner == 'emqx' && 'aws-amd64' || 'ubuntu-22.04' }}
runs-on: ubuntu-22.04
env:
EMQX_NAME: ${{ matrix.profile }}
PKG_VSN: ${{ matrix.profile == 'emqx-enterprise' && inputs.version-emqx-enterprise || inputs.version-emqx }}
strategy:
fail-fast: false
@ -35,7 +38,6 @@ jobs:
- emqx-enterprise
steps:
- uses: AutoModality/action-clean@v1
- uses: actions/checkout@v3
with:
path: source
@ -44,12 +46,10 @@ jobs:
name: "${{ matrix.profile }}-docker"
path: /tmp
- name: load docker image
env:
PKG_VSN: ${{ inputs.version-emqx }}
run: |
EMQX_TAG=$(docker load < /tmp/emqx-docker-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
EMQX_TAG=$(docker load < /tmp/${EMQX_NAME}-${PKG_VSN}.tar.gz | sed 's/Loaded image: //g')
echo "EMQX_TAG=$EMQX_TAG" >> $GITHUB_ENV
echo "TARGET=emqx/${{ matrix.profile }}" >> $GITHUB_ENV
echo "TARGET=emqx/${EMQX_NAME}" >> $GITHUB_ENV
- run: minikube start
- run: minikube image load $TARGET:$EMQX_TAG
- name: run emqx on chart (k8s)