diff options
Diffstat (limited to 'contrib/ci/ci.sh')
-rwxr-xr-x | contrib/ci/ci.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/contrib/ci/ci.sh b/contrib/ci/ci.sh new file mode 100755 index 000000000..0719015b9 --- /dev/null +++ b/contrib/ci/ci.sh | |||
@@ -0,0 +1,34 @@ | |||
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 | |||
13 | echo "Image name: ${JOB_CONTAINER}" | ||
14 | |||
15 | if [ "${CONTAINER_BUILD}" = "True" ] ; then | ||
16 | "${OCI_RUNTIME}" build \ | ||
17 | --arch "${JOB_ARCH}" \ | ||
18 | -t "${JOB_CONTAINER}" \ | ||
19 | -f contrib/ci/Containerfile . | ||
20 | fi | ||
21 | |||
22 | "${OCI_RUNTIME}" run \ | ||
23 | --rm \ | ||
24 | -ti \ | ||
25 | --arch "${JOB_ARCH}" \ | ||
26 | --env CI_COMMIT_REF="$(git rev-parse HEAD)" \ | ||
27 | --volume "${PWD}":/workdir \ | ||
28 | --workdir /workdir \ | ||
29 | "${JOB_CONTAINER}" \ | ||
30 | contrib/ci/jobs/"${JOB_NAME}"/job.sh | ||
31 | |||
32 | top_dir=$(dirname "${BASH_SOURCE[0]}") | ||
33 | |||
34 | #"${top_dir}"/build.sh | ||