endtoend-build-ci 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env bash
  2. set -o pipefail
  3. set -o errexit
  4. set -o nounset
  5. set -o xtrace
  6. # Set magic variables for current file & dir
  7. __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  8. __file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
  9. __base="$(basename ${__file} .sh)"
  10. __root="$(cd "$(dirname "${__dir}")" && pwd)"
  11. VERDACCIO_REGISTRY=http://localhost:4002
  12. cleanup() {
  13. rm -rf "${__root}/test/endtoend/node_modules"
  14. rm -rf "${__root}/test/endtoend/tmp"
  15. }
  16. echo "Preparing for end to end test: copying static HTML and CSS, building JS"
  17. rm -rf "${__root}/test/endtoend/dist" && mkdir "${__root}/test/endtoend/dist"
  18. rm -rf "${__root}/test/endtoend/node_modules"
  19. PACKAGES="$(for pkg in packages/@uppy/*; do echo "${pkg#packages/}"; done)"
  20. cleanup
  21. npm run build
  22. # https://github.com/facebook/create-react-app/pull/4626
  23. (cd && npm-auth-to-token -u user -p password -e user@example.com -r "$VERDACCIO_REGISTRY")
  24. # Simulate a publish of everything, to the local registry,
  25. # without changing things in git
  26. # Use --cd-version to skip version prompts
  27. lerna publish --yes \
  28. --force-publish="*" \
  29. --registry="$VERDACCIO_REGISTRY" \
  30. --npm-client=npm \
  31. --skip-git \
  32. --cd-version=prerelease
  33. # revert version changes
  34. git checkout -- packages/*/package.json packages/@uppy/*/package.json
  35. # install all packages to the endtoend folder
  36. # (Don't use the npm cache, don't generate a package-lock, don't save dependencies to any package.json)
  37. (cd "${__root}/test/endtoend" && npm install --prefer-online --registry "$VERDACCIO_REGISTRY" --no-package-lock --no-save uppy $PACKAGES)
  38. cp "${__root}/packages/uppy/dist/uppy.min.css" "${__root}/test/endtoend/dist"
  39. cp "${__root}/test/endtoend/src/index.html" "${__root}/test/endtoend/dist"
  40. browserify "${__root}/test/endtoend/src/main.js" \
  41. -o "${__root}/test/endtoend/dist/bundle.js" \
  42. -t babelify
  43. cleanup