libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

ci.sh (1209B)


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