| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- name: Release Upgrade Tests
- on:
- push:
- tags:
- - v*
- - e*
- pull_request:
- jobs:
- relup_test:
- strategy:
- matrix:
- otp:
- - "23.2.7.2-emqx-2"
- - "24.0.5-emqx-1"
- runs-on: ubuntu-20.04
- container: "ghcr.io/emqx/emqx-builder-helper/5.0:${{ matrix.otp }}-ubuntu20.04"
- defaults:
- run:
- shell: bash
- steps:
- - uses: actions/setup-python@v2
- with:
- python-version: '3.8'
- architecture: 'x64'
- - uses: actions/checkout@v2
- with:
- repository: emqx/paho.mqtt.testing
- ref: develop-4.0
- path: paho.mqtt.testing
- - uses: actions/checkout@v2
- with:
- repository: terry-xiaoyu/one_more_emqx
- ref: master
- path: one_more_emqx
- - uses: actions/checkout@v2
- with:
- repository: emqx/emqtt-bench
- ref: master
- path: emqtt-bench
- - uses: actions/checkout@v2
- with:
- repository: hawk/lux
- ref: lux-2.6
- path: lux
- - uses: actions/checkout@v2
- with:
- repository: ${{ github.repository }}
- path: emqx
- fetch-depth: 0
- - name: prepare
- run: |
- if make -C emqx emqx-ee --dry-run > /dev/null 2>&1; 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 }}" >> emqx/scripts/git-token
- echo "PROFILE=emqx-ee" >> $GITHUB_ENV
- else
- echo "PROFILE=emqx" >> $GITHUB_ENV
- fi
- - name: get version
- run: |
- set -e -x -u
- cd emqx
- if [ $PROFILE = "emqx" ];then
- broker="emqx-ce"
- edition='opensource'
- else
- broker="emqx-ee"
- edition='enterprise'
- fi
- echo "BROKER=$broker" >> $GITHUB_ENV
- vsn="$(./pkg-vsn.sh)"
- echo "VSN=$vsn" >> $GITHUB_ENV
- pre_vsn="$(echo $vsn | grep -oE '^[0-9]+.[0-9]')"
- if [ $PROFILE = "emqx" ]; then
- old_vsns="$(git tag -l "v$pre_vsn.[0-9]" | xargs echo -n | sed "s/v$vsn//")"
- else
- old_vsns="$(git tag -l "e$pre_vsn.[0-9]" | xargs echo -n | sed "s/e$vsn//")"
- fi
- echo "OLD_VSNS=$old_vsns" >> $GITHUB_ENV
- - name: download emqx
- run: |
- set -e -x -u
- mkdir -p emqx/_upgrade_base
- cd emqx/_upgrade_base
- old_vsns=($(echo $OLD_VSNS | tr ' ' ' '))
- for old_vsn in ${old_vsns[@]}; do
- wget --no-verbose https://s3-us-west-2.amazonaws.com/packages.emqx/$BROKER/$old_vsn/$PROFILE-ubuntu20.04-${old_vsn#[e|v]}-amd64.zip
- done
- - name: build emqx
- run: make -C emqx ${PROFILE}-zip
- - name: build emqtt-bench
- run: make -C emqtt-bench
- - name: build lux
- run: |
- set -e -u -x
- cd lux
- autoconf
- ./configure
- make
- make install
- - name: run relup test
- timeout-minutes: 20
- run: |
- set -e -x -u
- if [ -n "$OLD_VSNS" ]; then
- mkdir -p packages
- cp emqx/_packages/${PROFILE}/*.zip packages
- cp emqx/_upgrade_base/*.zip packages
- lux \
- --case_timeout infinity \
- --var PROFILE=$PROFILE \
- --var PACKAGE_PATH=$(pwd)/packages \
- --var BENCH_PATH=$(pwd)/emqtt-bench \
- --var ONE_MORE_EMQX_PATH=$(pwd)/one_more_emqx \
- --var VSN="$VSN" \
- --var OLD_VSNS="$OLD_VSNS" \
- emqx/.ci/fvt_tests/relup.lux
- fi
- - uses: actions/upload-artifact@v1
- if: failure()
- with:
- name: lux_logs
- path: lux_logs
|