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