build-all.sh 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/bash -ue
  2. CLEAN=${CLEAN:-""}
  3. RUN_TESTS=${RUN_TESTS:-true}
  4. if [ -n "$CLEAN" ]; then
  5. rm -rf build build-tmp*
  6. rm -rf lib/binding
  7. rm -rf prebuilds
  8. fi
  9. npm i -g prebuildify@5 node-gyp@9
  10. npm ci
  11. #npm run build
  12. for PLATFORM in linux/amd64 linux/arm64/v8 linux/arm/v7; do
  13. echo -- build for $PLATFORM --
  14. BUILDER_NAME="bcryptjs-${PLATFORM//\/-}-builder"
  15. docker build -t "$BUILDER_NAME" \
  16. --build-arg RUN_TESTS="$RUN_TESTS" \
  17. --platform "$PLATFORM" .
  18. CONTAINER=$(docker create --platform "$PLATFORM" "$BUILDER_NAME")
  19. docker cp "$CONTAINER:/usr/local/opt/bcrypt-js/prebuilds" .
  20. docker rm "$CONTAINER"
  21. echo -- build for $PLATFORM Alpine --
  22. BUILDER_NAME="bcryptjs-${PLATFORM//\/-}-alpine-builder"
  23. docker build -t "$BUILDER_NAME" -f Dockerfile-alpine \
  24. --build-arg RUN_TESTS="$RUN_TESTS" \
  25. --platform "$PLATFORM" .
  26. CONTAINER=$(docker create --platform "$PLATFORM" "$BUILDER_NAME")
  27. docker cp "$CONTAINER:/usr/local/opt/bcrypt-js/prebuilds" .
  28. docker rm "$CONTAINER"
  29. done
  30. ls -lF prebuilds/