build-in-docker.sh 931 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/bin/bash
  2. set -eux
  3. DOCKER_IMAGE="getsentry/rust-musl-cross:${DOCKER_TAG}"
  4. BUILD_DIR="/work"
  5. DOCKER_RUN_OPTS="
  6. -w ${BUILD_DIR}
  7. -v $(pwd):${BUILD_DIR}:ro
  8. -v $(pwd)/target:${BUILD_DIR}/target
  9. -v $HOME/.cargo/registry:/root/.cargo/registry
  10. -e ARMV7_UNKNOWN_LINUX_MUSLEABI_OPENSSL_NO_VENDOR=1
  11. ${DOCKER_IMAGE}
  12. "
  13. docker run \
  14. ${DOCKER_RUN_OPTS} \
  15. cargo build --release --target=${TARGET} --locked
  16. # Smoke test (but only when building from the same repo).
  17. # $TRAVIS_PULL_REQUEST_SLUG is set either to head repo slug, or to "" when
  18. # building branches.
  19. if [[ "${TRAVIS_PULL_REQUEST_SLUG:-x}" =~ ^(getsentry/sentry-cli)?$ ]]; then
  20. env | grep SENTRY_ > .env
  21. docker run \
  22. --env-file=.env \
  23. ${DOCKER_RUN_OPTS} \
  24. cargo run --release --target=${TARGET} -- releases list
  25. fi
  26. # Fix permissions for shared directories
  27. USER_ID=$(id -u)
  28. GROUP_ID=$(id -g)
  29. sudo chown -R ${USER_ID}:${GROUP_ID} target/ $HOME/.cargo