grapevine/bin/job
Charles Hall 540cc89c83
move ci job scipts into an actual script
This will make it possible/easier to:

* share code between jobs
* run jobs locally
2024-12-11 11:39:20 -08:00

52 lines
770 B
Bash
Executable file

#!/usr/bin/env bash
job_artifacts() (
set -euo pipefail
nix-build-and-cache packages
)
job_ci() (
set -euo pipefail
nix-build-and-cache ci
direnv exec . engage
)
job_pages() (
set -euo pipefail
nix build .#website-root
cp --recursive --dereference result public
)
bail() (
set -euo pipefail
echo
echo "Job failed"
exit 1
)
run() (
set -euo pipefail
if [[ -z "${1+x}" ]]; then
echo "You must supply a job to run. Available jobs:"
declare -F | rg \
--only-matching \
--color never \
--replace '* $1' \
'^declare -f job_(.*)$'
exit 1
fi
job="$1"
cd "$(git rev-parse --show-toplevel)"
job_"$job" || bail
)
run "$@"