rigging.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. [ ! -z "${DEBUG:-}" ] && set -x
  4. if [ "$#" -ne 1 ]; then
  5. echo "Usage: rigging.sh <user@host>"
  6. fi
  7. declare -A Hosts
  8. Hosts["riscv64"]="ubuntu@riscv64.techaro.lol" # GOARCH=riscv64 GOOS=linux
  9. Hosts["ppc64le"]="ci@ppc64le.techaro.lol" # GOARCH=ppc64le GOOS=linux
  10. Hosts["aarch64-4k"]="rocky@192.168.2.52" # GOARCH=arm64 GOOS=linux 4k page size
  11. Hosts["aarch64-16k"]="ci@192.168.2.28" # GOARCH=arm64 GOOS=linux 16k page size
  12. CIRunnerImage="ghcr.io/techarohq/anubis/ci-runner:latest"
  13. RunID=${GITHUB_RUN_ID:-$(uuidgen)}
  14. RunFolder="anubis/runs/${RunID}"
  15. Target="${Hosts["$1"]}"
  16. ssh "${Target}" uname -av >/dev/null
  17. ssh "${Target}" mkdir -p "${RunFolder}"
  18. git archive HEAD | ssh "${Target}" tar xC "${RunFolder}"
  19. ssh "${Target}" <<EOF
  20. set -euo pipefail
  21. set -x
  22. mkdir -p anubis/cache/{go,go-build,node}
  23. podman pull ${CIRunnerImage}
  24. podman run --rm -it \
  25. -v "\$HOME/${RunFolder}:/app/anubis:z" \
  26. -v "\$HOME/anubis/cache/go:/root/go:z" \
  27. -v "\$HOME/anubis/cache/go-build:/root/.cache/go-build:z" \
  28. -v "\$HOME/anubis/cache/node:/root/.npm:z" \
  29. -w /app/anubis \
  30. ${CIRunnerImage} \
  31. sh /app/anubis/test/ssh-ci/in-container.sh
  32. ssh "${Target}" rm -rf "${RunFolder}"
  33. EOF