taler-rust

GNU Taler code in Rust. Largely core banking integrations.
Log | Files | Refs | Submodules | README | LICENSE

ci.sh (1158B)


      1 #!/bin/bash
      2 set -exvuo pipefail
      3 
      4 # Requires podman
      5 # Fails if not found in PATH
      6 OCI_RUNTIME=$(which podman)
      7 REPO_NAME=$(basename "${PWD}")
      8 JOB_NAME="${1}"
      9 NATIVE_ARCH=$(dpkg --print-architecture)
     10 JOB_ARCH=$((grep CONTAINER_ARCH contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "${2:-$NATIVE_ARCH}")
     11 JOB_CONTAINER=$((grep CONTAINER_NAME contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "localhost/${REPO_NAME}:${JOB_ARCH}")
     12 CONTAINER_BUILD=$((grep CONTAINER_BUILD contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "True")
     13 
     14 echo "Image name: ${JOB_CONTAINER}"
     15 
     16 if [ "${CONTAINER_BUILD}" = "True" ] ; then
     17 	"${OCI_RUNTIME}" build \
     18 		--arch "${JOB_ARCH}" \
     19 		-t "${JOB_CONTAINER}" \
     20 		-f contrib/ci/Containerfile .
     21 fi
     22 
     23 "${OCI_RUNTIME}" run \
     24 	--rm \
     25 	-ti \
     26 	--arch "${JOB_ARCH}" \
     27 	--env CI_COMMIT_REF="$(git rev-parse HEAD)" \
     28 	--volume "${PWD}":/workdir \
     29 	--volume "${HOME}/.cargo/git:/root/.cargo/git" \
     30 	--volume "${HOME}/.cargo/registry:/root/.cargo/registry" \
     31 	--workdir /workdir \
     32 	"${JOB_CONTAINER}" \
     33 	contrib/ci/jobs/"${JOB_NAME}"/job.sh
     34 
     35 top_dir=$(dirname "${BASH_SOURCE[0]}")
     36 
     37 #"${top_dir}"/build.sh