71 lines
2.3 KiB
Bash
71 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
touch .woodpecker.env
|
|
|
|
PY_REQUIREMENTS_PATH="test/gui/requirements.txt"
|
|
|
|
# get playwright version from requirements.txt
|
|
get_playwright_version() {
|
|
if [[ ! -f "$PY_REQUIREMENTS_PATH" ]]; then
|
|
echo "Error: file not found: $PY_REQUIREMENTS_PATH"
|
|
fi
|
|
|
|
playwright_version=$(grep 'playwright==' "$PY_REQUIREMENTS_PATH" | cut -d'=' -f3 | cut -d'.' -f1-2)
|
|
playwright_version=${playwright_version//[^0-9.]/}
|
|
if [[ -z "$playwright_version" ]]; then
|
|
echo "Error: Playwright package not found in requirements.txt" >&2
|
|
exit 78
|
|
fi
|
|
|
|
echo "$playwright_version"
|
|
}
|
|
|
|
# Function to check if the cache exists for the given commit ID
|
|
check_browsers_cache() {
|
|
playwright_version=$(get_playwright_version)
|
|
|
|
playwright_cache=$(mc find s3/$CACHE_BUCKET/desktop/browsers-cache/$playwright_version/playwright-browsers.tar.gz 2>&1 | grep 'Object does not exist')
|
|
|
|
if [[ "$playwright_cache" != "" ]]
|
|
then
|
|
echo "Browsers cache for playwright v$playwright_version not found in cache."
|
|
ENV="BROWSER_CACHE_FOUND=false\n"
|
|
else
|
|
echo "Browsers cache for playwright v$playwright_version found in cache."
|
|
ENV="BROWSER_CACHE_FOUND=true\n"
|
|
fi
|
|
}
|
|
|
|
get_requirementstxt_hash() {
|
|
requirements_sha=$(sha1sum $PY_REQUIREMENTS_PATH | cut -d" " -f1)
|
|
echo "$requirements_sha"
|
|
}
|
|
|
|
check_python_cache() {
|
|
requirements_sha=$(get_requirementstxt_hash)
|
|
python_cache=$(mc find s3/$CACHE_BUCKET/desktop/python-cache/$requirements_sha/python-cache.tar.gz 2>&1 | grep 'Object does not exist')
|
|
|
|
if [[ "$python_cache" != "" ]]
|
|
then
|
|
echo "Python cache for '$requirements_sha' hash not found in cache."
|
|
ENV="PYTHON_CACHE_FOUND=false\n"
|
|
else
|
|
echo "Python cache for '$requirements_sha' hash found in cache."
|
|
ENV="PYTHON_CACHE_FOUND=true\n"
|
|
fi
|
|
}
|
|
|
|
if [[ "$1" == "" ]]; then
|
|
echo "Usage: $0 [COMMAND]"
|
|
echo "Commands:"
|
|
echo -e " get_playwright_version \t get the playwright version from requirements.txt"
|
|
echo -e " get_requirementstxt_hash \t get the hash of the current requirements.txt"
|
|
echo -e " check_browsers_cache \t check if the browsers cache exists for the given playwright version"
|
|
echo -e " check_python_cache \t check if a cache for the current requirements.txt exists"
|
|
exit 1
|
|
fi
|
|
|
|
$1
|
|
|
|
echo -e $ENV >> .woodpecker.env
|