#!/bin/bash set -euo pipefail REPO_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) CI_IMAGE=${CI_IMAGE:-knel/cloudron-ci} BUILD=${BUILD:-0} ensure_image() { if [[ "${BUILD}" == "1" ]]; then docker build -t "${CI_IMAGE}" "${REPO_ROOT}/docker/ci-runner" return fi if ! docker image inspect "${CI_IMAGE}" >/dev/null 2>&1; then docker build -t "${CI_IMAGE}" "${REPO_ROOT}/docker/ci-runner" fi } run_in_ci() { local cmd=$1 docker run --rm -t \ -v "${REPO_ROOT}:/workspace" \ -v /var/run/docker.sock:/var/run/docker.sock \ "${CI_IMAGE}" "${cmd}" } lint() { run_in_ci 'git config --global --add safe.directory /workspace && make lint && make status && git diff --exit-code docs/APP_STATUS.md' } packager_smoke() { run_in_ci 'git config --global --add safe.directory /workspace && docker build -t knel/cloudron-packager-test docker/packager && docker run --rm knel/cloudron-packager-test cloudron --help' } usage() { cat <&2 usage exit 1 ;; esac } main "$@"