run_relup_tests.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. name: Release Upgrade Tests
  2. concurrency:
  3. group: relup-${{ github.event_name }}-${{ github.ref }}
  4. cancel-in-progress: true
  5. on:
  6. push:
  7. tags:
  8. - v*
  9. - e*
  10. pull_request:
  11. jobs:
  12. relup_test:
  13. strategy:
  14. matrix:
  15. profile:
  16. - emqx
  17. - emqx-enterprise
  18. otp_vsn:
  19. - 24.1.5-2
  20. runs-on: ubuntu-20.04
  21. container: "ghcr.io/emqx/emqx-builder/5.0-2:${{ matrix.otp_vsn }}-ubuntu20.04"
  22. defaults:
  23. run:
  24. shell: bash
  25. steps:
  26. - uses: actions/setup-python@v2
  27. with:
  28. python-version: '3.8'
  29. architecture: 'x64'
  30. - uses: actions/checkout@v2
  31. with:
  32. repository: emqx/paho.mqtt.testing
  33. ref: develop-4.0
  34. path: paho.mqtt.testing
  35. - uses: actions/checkout@v2
  36. with:
  37. repository: terry-xiaoyu/one_more_emqx
  38. ref: master
  39. path: one_more_emqx
  40. - uses: actions/checkout@v2
  41. with:
  42. repository: emqx/emqtt-bench
  43. ref: 0.3.4
  44. path: emqtt-bench
  45. - uses: actions/checkout@v2
  46. with:
  47. repository: hawk/lux
  48. ref: lux-2.6
  49. path: lux
  50. - uses: actions/checkout@v2
  51. with:
  52. repository: ${{ github.repository }}
  53. path: emqx
  54. fetch-depth: 0
  55. - name: get version
  56. run: |
  57. set -e -x -u
  58. cd emqx
  59. export PROFILE=${{ matrix.profile }}
  60. export OTP_VSN=${{ matrix.otp_vsn }}
  61. echo "PROFILE=$PROFILE" >> $GITHUB_ENV
  62. echo "OTP_VSN=$OTP_VSN" >> $GITHUB_ENV
  63. if [ $PROFILE = "emqx" ];then
  64. broker="emqx-ce"
  65. else
  66. broker="emqx-enterprise"
  67. fi
  68. echo "BROKER=$broker" >> $GITHUB_ENV
  69. vsn="$(./pkg-vsn.sh)"
  70. echo "VSN=$vsn" >> $GITHUB_ENV
  71. pre_vsn="$(echo $vsn | grep -oE '^[0-9]+.[0-9]')"
  72. old_vsns="$(git tag -l "v$pre_vsn.[0-9]" | xargs echo -n | sed "s/v$vsn//")"
  73. echo "OLD_VSNS=$old_vsns" >> $GITHUB_ENV
  74. - name: download emqx
  75. run: |
  76. set -e -x -u
  77. mkdir -p emqx/_upgrade_base
  78. cd emqx/_upgrade_base
  79. old_vsns=($(echo $OLD_VSNS | tr ' ' ' '))
  80. for old_vsn in ${old_vsns[@]}; do
  81. wget --no-verbose https://s3-us-west-2.amazonaws.com/packages.emqx/$BROKER/$old_vsn/$PROFILE-${old_vsn#[e|v]}-otp${OTP_VSN}-ubuntu20.04-amd64.zip
  82. done
  83. - name: build emqx
  84. run: make -C emqx ${PROFILE}-zip
  85. - name: build emqtt-bench
  86. run: make -C emqtt-bench
  87. - name: build lux
  88. run: |
  89. set -e -u -x
  90. cd lux
  91. autoconf
  92. ./configure
  93. make
  94. make install
  95. - name: run relup test
  96. timeout-minutes: 20
  97. run: |
  98. set -e -x -u
  99. if [ -n "$OLD_VSNS" ]; then
  100. mkdir -p packages
  101. cp emqx/_packages/${PROFILE}/*.zip packages
  102. cp emqx/_upgrade_base/*.zip packages
  103. lux \
  104. --case_timeout infinity \
  105. --var PROFILE=$PROFILE \
  106. --var PACKAGE_PATH=$(pwd)/packages \
  107. --var BENCH_PATH=$(pwd)/emqtt-bench \
  108. --var ONE_MORE_EMQX_PATH=$(pwd)/one_more_emqx \
  109. --var VSN="$VSN" \
  110. --var OLD_VSNS="$OLD_VSNS" \
  111. emqx/.ci/fvt_tests/relup.lux
  112. fi
  113. - uses: actions/upload-artifact@v1
  114. if: failure()
  115. with:
  116. name: lux_logs
  117. path: lux_logs