Add script to actually run the build.

This commit is contained in:
Tom Alexander 2022-12-10 18:58:09 -05:00
parent 9be646f943
commit 9599cfb577
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
3 changed files with 85 additions and 19 deletions

View File

@ -5,13 +5,67 @@ set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
COMMAND="$1"
shift 1
function main {
COMMAND="$1"
shift 1
if [ "$COMMAND" = "start" ]; then
echo "foo"
elif [ "$COMMAND" = "stop" ]; then
echo "bar"
else
echo "baz"
fi
if [ "$COMMAND" = "start" ]; then
cmd_start "${@}"
elif [ "$COMMAND" = "stop" ]; then
cmd_stop "${@}"
else
die 1 "Unrecognized command: $COMMAND"
fi
}
function die {
exit_code="$1"
shift 1
(>&2 echo "${@}")
exit "$exit_code"
}
function abort_if_jobs_running {
if [[ $(sudo poudriere status) != *"No running builds"* ]]; then
echo "There is already a poudriere build in progress, exiting."
exit 0
fi
}
function build {
poudriere pkgclean -y "$@"
poudriere bulk -J "${POUDRIERE_JOBS:-1}" "$@"
}
function cmd_start {
# Allow command failures without quitting the script because some
# package sets might fail whereas others may succeed based on which
# packages are in each set.
set +e
for conf in /opt/poudriere/build_configs/*; do
(
source "$conf"
build -j "$JAIL" -p "$PORTS" -z "$SET" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist
)
done
# Re-enable exiting on failed commands
set -e
# Cleanup old unused dist files
for conf in /opt/poudriere/build_configs/*; do
(
source "$conf"
poudriere distclean -y -p "$PORTS" -f /usr/local/etc/poudriere.d/$JAIL-$PORTS-$SET-pkglist
)
done
poudriere logclean -y 180
}
function cmd_stop {
}
main "${@}"

View File

@ -29,16 +29,16 @@
- flock
state: present
# - name: Create directories
# file:
# name: "{{ item }}"
# state: directory
# mode: 0755
# owner: root
# group: wheel
# loop:
# - /usr/ports/distfiles
# - /opt/poudriere/build_configs
- name: Create directories
file:
name: "{{ item }}"
state: directory
mode: 0755
owner: root
group: wheel
loop:
# - /usr/ports/distfiles
- /opt/poudriere/build_configs
# - /usr/local/poudriere/data/logs/bulk
- name: Install Configuration
@ -77,6 +77,15 @@
- src: poudboot.bash
dest: /usr/local/bin/poudboot
- name: Install Configuration
template:
src: "build_config.j2"
dest: "/opt/poudriere/build_configs/{{ item.jail }}-{{ item.ports }}-{{ item.set }}"
owner: root
group: wheel
mode: 0600
loop: "{{ poudriere_builds }}"
- name: Get ports tree list
command: poudriere ports -ln
register: ports_tree_list

View File

@ -0,0 +1,3 @@
JAIL={{ item.jail }}
PORTS={{ item.ports }}
SET={{ item.set }}