| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- 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.2.1-1
- # 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.3
- os:
- - ubuntu20.04
- arch:
- - amd64
- runs-on: ubuntu-20.04
- container: "ghcr.io/emqx/emqx-builder/5.0-10:${{ 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 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
|