meetup-raffle-winner-picker/run

50 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
# Based on https://github.com/adriancooney/Taskfile and
# https://nickjanetakis.com/blog/replacing-make-with-a-shell-script-for-running-your-projects-tasks.
set -e
APP_BUILD="${APP_BUILD:=dynamic}"
DOCKER_TAG=meetup-raffle-winner-picker
function build {
# Build the Docker image.
docker image build . --tag ${DOCKER_TAG}
}
function ci:test {
# Run continuous integration (CI) checks.
APP_BUILD=static
build
test --testdox "${@}"
}
function composer {
# Run Composer commands.
docker container run --rm -it \
-v $(pwd):/app \
--entrypoint composer \
${DOCKER_TAG} "${@}"
}
function help {
printf "%s <task> [args]\n\nTasks:\n" "${0}"
compgen -A function | grep -v "^_" | cat -n
printf "\nExtended help:\n Each task has comments for general usage\n"
}
function test {
# Run PHPUnit tests.
if [[ $APP_BUILD == "dynamic" ]]; then
docker container run --rm -t -v $PWD:/app --entrypoint phpunit ${DOCKER_TAG} "${@}"
elif [[ $APP_BUILD == "static" ]]; then
docker container run --rm -t --entrypoint phpunit ${DOCKER_TAG} "${@}"
fi
}
eval "${@:-help}"