#!/usr/bin/env bash set -Eeuo pipefail script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "$script_dir/.." && pwd)" tmpdir="$(mktemp -d)" trap 'rm -rf "$tmpdir"' EXIT curl_log="$tmpdir/curl.log" bin_dir="$tmpdir/bin" mkdir -p "$bin_dir" cat >"$bin_dir/curl" <<'EOF' #!/usr/bin/env bash set -Eeuo pipefail log_file="${CURL_LOG:?}" printf '%s\n' "$*" >>"$log_file" last_arg="${!#}" if [[ " $* " == *" -X DELETE "* ]]; then printf '204' exit 0 fi # tags 端點沒有需要清理的 tag if [[ "$last_arg" == */tags?* ]]; then printf '%s' '[]' exit 0 fi case "$last_arg" in */releases?*page=1) printf '%s' '[{"id":4,"tag_name":"v4","name":"release-4","created_at":"2024-04-01T00:00:00Z"},{"id":3,"tag_name":"v3","name":"release-3","created_at":"2024-03-01T00:00:00Z"}]' ;; */releases?*page=2) printf '%s' '[{"id":2,"tag_name":"v2","name":"release-2","created_at":"2024-02-01T00:00:00Z"},{"id":1,"tag_name":"v1","name":"release-1","created_at":"2024-01-01T00:00:00Z"}]' ;; */releases?*page=3) printf '%s' '[]' ;; *) printf 'unexpected request: %s\n' "$last_arg" >&2 exit 1 ;; esac EOF chmod +x "$bin_dir/curl" cp "$script_dir/lib/jq_mock.py" "$bin_dir/jq.py" chmod +x "$bin_dir/jq.py" cat >"$bin_dir/jq" <<'EOF' #!/usr/bin/env bash set -Eeuo pipefail exec python3 "$0.py" "$@" EOF chmod +x "$bin_dir/jq" PATH="$bin_dir:$PATH" \ CURL_LOG="$curl_log" \ GITEA_SERVER_URL="https://gitea.example.test" \ GITEA_REPOSITORY="owner/repo" \ KEEP_COUNT="2" \ RUNNER_TOKEN="" \ bash "$repo_root/entrypoint.sh" >/dev/null grep -q 'page=1' "$curl_log" grep -q 'page=2' "$curl_log" grep -q 'page=3' "$curl_log" grep -q '/releases/2' "$curl_log" grep -q '/releases/1' "$curl_log" if grep -q '/releases/3' "$curl_log" || grep -q '/releases/4' "$curl_log"; then printf 'unexpected release deletion request in %s\n' "$curl_log" >&2 exit 1 fi if grep -q '/tags/' "$curl_log"; then printf 'unexpected tag deletion request in %s\n' "$curl_log" >&2 exit 1 fi