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