131 lines
3.3 KiB
YAML
131 lines
3.3 KiB
YAML
name: Release Upgrade Tests
|
|
|
|
concurrency:
|
|
group: relup-${{ github.event_name }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '**'
|
|
tags:
|
|
- v*
|
|
- e*
|
|
pull_request:
|
|
|
|
jobs:
|
|
relup_test:
|
|
strategy:
|
|
matrix:
|
|
profile:
|
|
- emqx
|
|
- emqx-enterprise
|
|
otp:
|
|
- 24.1.5-4
|
|
# no need to use more than 1 version of Elixir, since tests
|
|
# run using only Erlang code. This is needed just to specify
|
|
# the base image.
|
|
elixir:
|
|
- 1.13.2
|
|
os:
|
|
- ubuntu20.04
|
|
arch:
|
|
- amd64
|
|
|
|
runs-on: ubuntu-20.04
|
|
container: "ghcr.io/emqx/emqx-builder/5.0-5:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }}"
|
|
|
|
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: 0.3.4
|
|
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: Get old vsn
|
|
run: echo "OLD_VSNS=$(emqx/scripts/relup-base-vsns.sh ${{ matrix.profile }} | xargs echo -n)" >> $GITHUB_ENV
|
|
|
|
- name: Get deps git refs for cache
|
|
id: deps-refs
|
|
run: |
|
|
cd emqx
|
|
scripts/get-dep-refs.sh
|
|
|
|
- name: load rocksdb cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: emqx/_build/default/lib/rocksdb/
|
|
key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }}
|
|
- name: load quicer cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: emqx/_build/default/lib/quicer/
|
|
key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ steps.deps-refs.outputs.DEP_QUICER_REF }}
|
|
|
|
- name: build emqx
|
|
env:
|
|
PROFILE: ${{ matrix.profile }}
|
|
run: make -C emqx ${PROFILE}-tgz
|
|
- 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
|
|
env:
|
|
PROFILE: ${{ matrix.profile }}
|
|
timeout-minutes: 20
|
|
run: |
|
|
set -e -x -u
|
|
if [ -n "$OLD_VSNS" ]; then
|
|
mkdir -p packages
|
|
cp emqx/_packages/${PROFILE}/*.tar.gz packages
|
|
cp emqx/_upgrade_base/*.tar.gz 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
|