Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions hooks/pre-checkout
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,44 @@ set -eo pipefail

echo "--- Running pre-checkout hook"

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_CLEAN_FLAGS" ]; then
export BUILDKITE_GIT_CLEAN_FLAGS="$BUILDKITE_PLUGIN_GIT_FLAGS_CLEAN_FLAGS"

echo "Set buildkite git clean flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLEAN_FLAGS"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_FLAGS" ]; then
export BUILDKITE_GIT_CLONE_FLAGS="$BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_FLAGS"

echo "Set buildkite git clone flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_FLAGS"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_MIRROR_FLAGS" ]; then
export BUILDKITE_GIT_CLONE_MIRROR_FLAGS="$BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_MIRROR_FLAGS"

echo "Set buildkite git clone mirror flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_MIRROR_FLAGS"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_FETCH_FLAGS" ]; then
export BUILDKITE_GIT_FETCH_FLAGS="$BUILDKITE_PLUGIN_GIT_FLAGS_FETCH_FLAGS"

echo "Set buildkite git fetch flags to $BUILDKITE_PLUGIN_GIT_FLAGS_FETCH_FLAGS"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_LOCK_TIMEOUT" ]; then
export BUILDKITE_GIT_MIRRORS_LOCK_TIMEOUT="$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_LOCK_TIMEOUT"

echo "Set buildkite git mirrors lock timeout to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_LOCK_TIMEOUT"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_PATH" ]; then
export BUILDKITE_GIT_MIRRORS_PATH="$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_PATH"

echo "Set buildkite git mirrors path to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_PATH"
fi

if [ -n "$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_SKIP_UPDATE" ]; then
export BUILDKITE_GIT_MIRRORS_SKIP_UPDATE="$BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_SKIP_UPDATE"

echo "Set buildkite git mirrors skip update to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_SKIP_UPDATE"
fi
15 changes: 15 additions & 0 deletions plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,23 @@ author: https://github.com/whizzzkid
requirements: ['git']
configuration:
properties:
clean_flags:
type: string
default: '-ffxdq'
clone_flags:
type: string
default: '-v'
clone_mirror_flags:
type: string
fetch_flags:
type: string
default: '-v --prune'
mirrors_lock_timeout:
type: string
default: 300
mirrors_path:
type: string
mirrors_skip_update:
type: boolean
default: false
required: []
46 changes: 46 additions & 0 deletions tests/pre-checkout.bats
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ setup() {
# Uncomment the following line to debug stub failures
# export BUILDKITE_AGENT_STUB_DEBUG=/dev/tty


@test "Sets the clean flags" {
export BUILDKITE_PLUGIN_GIT_FLAGS_CLEAN_FLAGS="foo"

run "$PWD/hooks/pre-checkout"

assert_success
assert_output --partial "Set buildkite git clean flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLEAN_FLAGS"
}

@test "Sets the clone flags" {
export BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_FLAGS="--all"

Expand All @@ -19,6 +29,15 @@ setup() {
assert_output --partial "Set buildkite git clone flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_FLAGS"
}

@test "Sets the clone mirror flags" {
export BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_MIRROR_FLAGS="foo"

run "$PWD/hooks/pre-checkout"

assert_success
assert_output --partial "Set buildkite git clone mirror flags to $BUILDKITE_PLUGIN_GIT_FLAGS_CLONE_MIRROR_FLAGS"
}

@test "Sets the fetch flags" {
export BUILDKITE_PLUGIN_GIT_FLAGS_FETCH_FLAGS="--all"

Expand All @@ -27,3 +46,30 @@ setup() {
assert_success
assert_output --partial "Set buildkite git fetch flags to $BUILDKITE_PLUGIN_GIT_FLAGS_FETCH_FLAGS"
}

@test "Sets the mirrors lock timeout" {
export BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_LOCK_TIMEOUT="100"

run "$PWD/hooks/pre-checkout"

assert_success
assert_output --partial "Set buildkite git mirrors lock timeout to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_LOCK_TIMEOUT"
}

@test "Sets the mirrors paths" {
export BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_PATH="foo"

run "$PWD/hooks/pre-checkout"

assert_success
assert_output --partial "Set buildkite git mirrors path to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_PATH"
}

@test "Sets the mirrors skip update" {
export BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_SKIP_UPDATE="false"

run "$PWD/hooks/pre-checkout"

assert_success
assert_output --partial "Set buildkite git mirrors skip update to $BUILDKITE_PLUGIN_GIT_FLAGS_MIRRORS_SKIP_UPDATE"
}