run_test_cases.yaml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: Run test cases
  2. on: [push, pull_request]
  3. jobs:
  4. run_test_cases:
  5. runs-on: ubuntu-latest
  6. strategy:
  7. matrix:
  8. pgsql_tag:
  9. - 9
  10. - 10
  11. - 11
  12. - 12
  13. - 13
  14. network_type:
  15. - ipv4
  16. - ipv6
  17. steps:
  18. - name: install docker-compose
  19. run: |
  20. sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  21. sudo chmod +x /usr/local/bin/docker-compose
  22. - uses: actions/checkout@v1
  23. - name: run test cases
  24. env:
  25. PGSQL_TAG: ${{ matrix.pgsql_tag }}
  26. NETWORK_TYPE: ${{ matrix.network_type }}
  27. run: |
  28. set -e -u -x
  29. if [ "$NETWORK_TYPE" = "ipv6" ]; then docker network create --driver bridge --ipv6 --subnet fd15:555::/64 tests_emqx_bridge --attachable; fi
  30. cp test/emqx_auth_pgsql_SUITE_data/* .ci/pgsql/
  31. docker-compose -f .ci/docker-compose.yml -p tests up -d --build
  32. if [ "$NETWORK_TYPE" != "ipv6" ]; then
  33. docker exec -i $(docker ps -a -f name=tests_erlang_1 -q) sh -c "sed -i '/auth.pgsql.server/c auth.pgsql.server = pgsql_server:5432' /emqx_auth_pgsql/etc/emqx_auth_pgsql.conf"
  34. else
  35. ipv6_address=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.GlobalIPv6Address}}{{end}}' $(docker ps -a -f name=tests_pgsql_server_1 -q))
  36. docker exec -i $(docker ps -a -f name=tests_erlang_1 -q) sh -c "sed -i '/auth.pgsql.server/c auth.pgsql.server = $ipv6_address:5432' /emqx_auth_pgsql/etc/emqx_auth_pgsql.conf"
  37. fi
  38. docker exec -i tests_erlang_1 sh -c "make -C /emqx_auth_pgsql xref"
  39. docker exec -i tests_erlang_1 sh -c "make -C /emqx_auth_pgsql eunit"
  40. docker exec -i tests_erlang_1 sh -c "make -C /emqx_auth_pgsql ct"
  41. docker exec -i tests_erlang_1 sh -c "make -C /emqx_auth_pgsql cover"
  42. - uses: actions/upload-artifact@v1
  43. if: failure()
  44. with:
  45. name: logs_for_pgsql${{ matrix.pgsql_tag }}_{{matrix.network_type}}
  46. path: _build/test/logs