run_local_tests.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. set -eux
  2. echo "Test script started"
  3. function run_script {
  4. if [[ -d tmp ]]
  5. then
  6. rm -rf tmp
  7. fi
  8. mkdir tmp
  9. # copy files first
  10. rsync -a --progress ../ tmp --exclude target --exclude docker
  11. # build base image
  12. docker build -f Dockerfile_base_test_image -t dioxus-base-test-image .
  13. docker build -f Dockerfile_pre_test -t dioxus-pre-test .
  14. # run test
  15. docker build -f Dockerfile_test -t dioxus-test-image .
  16. # code coverage
  17. docker build -f Dockerfile_code_coverage -t dioxus-code-coverage .
  18. # exec test coverage
  19. cd .. && \
  20. echo "rustup default nightly && cargo +nightly tarpaulin --verbose --all-features --tests --workspace --timeout 120 --out Html" | docker run -i --rm --security-opt seccomp=unconfined -v "/home/elios/project/prs/dioxus/:/run_test" dioxus-code-coverage
  21. firefox tarpaulin-report.html
  22. # clean up
  23. rm -rf tmp
  24. if [ $# -ge 1 ]
  25. then
  26. echo "Got some parameter"
  27. if [ $1 = "--with-full-docker-cleanup" ]
  28. then
  29. docker image rm dioxus-base-test-image
  30. docker image rm dioxus-test-image
  31. fi
  32. fi
  33. }
  34. run_script || echo "Error occured.. cleaning a bit." && \
  35. docker system prune -f;
  36. docker system prune -f
  37. echo "Script finished to execute"