131 lines
3.6 KiB
YAML
131 lines
3.6 KiB
YAML
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
|