netlify: Europa port
- Fix netlify.#Deploy (there's still FIXMEs) - Externalize the `deploy.sh` script - Add tests - Misc engine fixes for more explicit error messages Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
@@ -1 +0,0 @@
|
||||
deploy.sh.cue
|
58
pkg/universe.dagger.io/netlify/deploy.sh
Executable file
58
pkg/universe.dagger.io/netlify/deploy.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e -o pipefail
|
||||
|
||||
NETLIFY_AUTH_TOKEN="$(cat /run/secrets/token)"
|
||||
export NETLIFY_AUTH_TOKEN
|
||||
|
||||
create_site() {
|
||||
url="https://api.netlify.com/api/v1/${NETLIFY_ACCOUNT:-}/sites"
|
||||
|
||||
curl -s -S --fail-with-body -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN" \
|
||||
-X POST -H "Content-Type: application/json" \
|
||||
"$url" \
|
||||
-d "{\"name\": \"${NETLIFY_SITE_NAME}\", \"custom_domain\": \"${NETLIFY_DOMAIN}\"}" -o body
|
||||
|
||||
# shellcheck disable=SC2181
|
||||
if [ $? -ne 0 ]; then
|
||||
cat body >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
jq -r '.site_id' body
|
||||
}
|
||||
|
||||
site_id=$(curl -s -S -f -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN" \
|
||||
"https://api.netlify.com/api/v1/sites?filter=all" | \
|
||||
jq -r ".[] | select(.name==\"$NETLIFY_SITE_NAME\") | .id" \
|
||||
)
|
||||
if [ -z "$site_id" ] ; then
|
||||
if [ "${NETLIFY_SITE_CREATE:-}" != 1 ]; then
|
||||
echo "Site $NETLIFY_SITE_NAME does not exist"
|
||||
exit 1
|
||||
fi
|
||||
site_id=$(create_site)
|
||||
if [ -z "$site_id" ]; then
|
||||
echo "create site failed"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
netlify link --id "$site_id"
|
||||
netlify build
|
||||
|
||||
netlify deploy \
|
||||
--dir="$(pwd)" \
|
||||
--site="$site_id" \
|
||||
--prod \
|
||||
| tee /tmp/stdout
|
||||
|
||||
url="$(</tmp/stdout grep Website | grep -Eo 'https://[^ >]+' | head -1)"
|
||||
deployUrl="$(</tmp/stdout grep Unique | grep -Eo 'https://[^ >]+' | head -1)"
|
||||
logsUrl="$(</tmp/stdout grep Logs | grep -Eo 'https://[^ >]+' | head -1)"
|
||||
|
||||
# Write output files
|
||||
mkdir -p /netlify
|
||||
echo -n "$url" > /netlify/url
|
||||
echo -n "$deployUrl" > /netlify/deployUrl
|
||||
echo -n "$logsUrl" > /netlify/logsUrl
|
Reference in New Issue
Block a user