ci.sh (1276B)
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 JOB_ARCH=$((grep CONTAINER_ARCH contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "${2:-amd64}") 10 JOB_CONTAINER=$((grep CONTAINER_NAME contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "localhost/${REPO_NAME}:${JOB_ARCH}") 11 CONTAINER_BUILD=$((grep CONTAINER_BUILD contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "True") 12 CONTAINERFILE="contrib/ci/jobs/${JOB_NAME}/Containerfile" 13 14 if ! [[ -f "$CONTAINERFILE" ]]; then 15 CONTAINERFILE="contrib/ci/$JOB_ARCH.Containerfile" 16 fi; 17 if ! [[ -f "$CONTAINERFILE" ]]; then 18 CONTAINERFILE="$(dirname "$CONTAINERFILE")/Containerfile" 19 fi; 20 21 echo "Image name: ${JOB_CONTAINER} 22 Containerfile: ${CONTAINERFILE}" 23 24 if [ "${CONTAINER_BUILD}" = "True" ] ; then 25 "${OCI_RUNTIME}" build \ 26 --arch "${JOB_ARCH}" \ 27 -t "${JOB_CONTAINER}" \ 28 -f "$CONTAINERFILE" . 29 fi 30 31 "${OCI_RUNTIME}" run \ 32 --rm \ 33 -ti \ 34 --arch "${JOB_ARCH}" \ 35 --env CI_COMMIT_REF="$(git rev-parse HEAD)" \ 36 --volume "${PWD}":/workdir \ 37 --workdir /workdir \ 38 "${JOB_CONTAINER}" \ 39 contrib/ci/jobs/"${JOB_NAME}"/job.sh 40 41 top_dir=$(dirname "${BASH_SOURCE[0]}") 42 43 #"${top_dir}"/build.sh