mirror of
https://github.com/Burnett01/rsync-deployments.git
synced 2025-08-30 07:50:38 +02:00
* Add Bats tests and workflow for entrypoint.sh * Add Bats tests and workflow * Add comprehensive GitHub Actions CI workflow (#77) * Initial plan * Add comprehensive GitHub Actions CI workflow Co-authored-by: Burnett01 <1208707+Burnett01@users.noreply.github.com> * Enhance CI workflow with job dependencies and documentation Co-authored-by: Burnett01 <1208707+Burnett01@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Burnett01 <1208707+Burnett01@users.noreply.github.com> * Update CI workflow to only include master branch --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
65 lines
1.8 KiB
Bash
65 lines
1.8 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
setup() {
|
|
# Create a dummy ssh agent and agent-add for sourcing
|
|
echo 'echo "agent started"' > agent-start
|
|
echo 'echo "key added"' > agent-add
|
|
chmod +x agent-start agent-add
|
|
|
|
# Create a dummy rsync to capture its arguments
|
|
echo 'echo "rsync $@"' > rsync
|
|
chmod +x rsync
|
|
|
|
PATH="$PWD:$PATH"
|
|
}
|
|
|
|
teardown() {
|
|
rm -f agent-start agent-add rsync
|
|
}
|
|
|
|
@test "fails if INPUT_REMOTE_PATH is empty" {
|
|
export INPUT_REMOTE_PATH=" "
|
|
run ./entrypoint.sh
|
|
[ "$status" -eq 1 ]
|
|
[[ "${output}" == *"can not be empty"* ]]
|
|
}
|
|
|
|
@test "includes legacy RSA switches when allowed" {
|
|
export INPUT_LEGACY_ALLOW_RSA_HOSTKEYS="true"
|
|
export INPUT_REMOTE_PATH="remote/"
|
|
export INPUT_REMOTE_KEY="dummy"
|
|
export INPUT_REMOTE_KEY_PASS="dummy"
|
|
export GITHUB_ACTION="dummy"
|
|
export INPUT_SWITCHES="-avz"
|
|
export INPUT_REMOTE_PORT="22"
|
|
export INPUT_RSH=""
|
|
export INPUT_PATH=""
|
|
export INPUT_REMOTE_USER="user"
|
|
export INPUT_REMOTE_HOST="host"
|
|
export GITHUB_WORKSPACE="/tmp"
|
|
export DSN="user@host"
|
|
export LOCAL_PATH="/tmp/"
|
|
|
|
run ./entrypoint.sh
|
|
[[ "${output}" == *"HostKeyAlgorithms=+ssh-rsa"* ]]
|
|
}
|
|
|
|
@test "does not include legacy RSA switches when not allowed" {
|
|
export INPUT_LEGACY_ALLOW_RSA_HOSTKEYS="false"
|
|
export INPUT_REMOTE_PATH="remote/"
|
|
export INPUT_REMOTE_KEY="dummy"
|
|
export INPUT_REMOTE_KEY_PASS="dummy"
|
|
export GITHUB_ACTION="dummy"
|
|
export INPUT_SWITCHES="-avz"
|
|
export INPUT_REMOTE_PORT="22"
|
|
export INPUT_RSH=""
|
|
export INPUT_PATH=""
|
|
export INPUT_REMOTE_USER="user"
|
|
export INPUT_REMOTE_HOST="host"
|
|
export GITHUB_WORKSPACE="/tmp"
|
|
export DSN="user@host"
|
|
export LOCAL_PATH="/tmp/"
|
|
|
|
run ./entrypoint.sh
|
|
[[ "${output}" != *"HostKeyAlgorithms=+ssh-rsa"* ]]
|
|
}
|