Compare commits
2 Commits
06a99271f1
...
dd7a238eb8
Author | SHA1 | Date | |
---|---|---|---|
dd7a238eb8 | |||
1976c34e7a |
@ -7,8 +7,9 @@ steps:
|
|||||||
- name: test & build
|
- name: test & build
|
||||||
image: node:18.16.0-bullseye
|
image: node:18.16.0-bullseye
|
||||||
commands:
|
commands:
|
||||||
# - git config --global --add safe.directory "/drone/src"
|
# - git config --global --add safe.directory "/drone/src"
|
||||||
- npm install -g pnpm
|
- corepack enable
|
||||||
|
- corepack prepare pnpm@latest --activate
|
||||||
- pnpm i --frozen-lockfile
|
- pnpm i --frozen-lockfile
|
||||||
- pnpm build
|
- pnpm build
|
||||||
environment:
|
environment:
|
||||||
@ -26,7 +27,7 @@ steps:
|
|||||||
NETLIFY_API_KEY:
|
NETLIFY_API_KEY:
|
||||||
from_secret: NETLIFY_API_KEY
|
from_secret: NETLIFY_API_KEY
|
||||||
commands:
|
commands:
|
||||||
# - git config --global --add safe.directory "/drone/src"
|
# - git config --global --add safe.directory "/drone/src"
|
||||||
- python3 -m zipfile -c um-react.zip dist/.
|
- python3 -m zipfile -c um-react.zip dist/.
|
||||||
- ./scripts/publish.sh
|
- ./scripts/publish.sh
|
||||||
- ./scripts/deploy.sh
|
- ./scripts/deploy.sh
|
||||||
|
@ -6,11 +6,8 @@ SCRIPTS_DIR="$(dirname "${BASH_SOURCE[0]}")"
|
|||||||
__netlify_upload() {
|
__netlify_upload() {
|
||||||
local branch="$BRANCH_NAME"
|
local branch="$BRANCH_NAME"
|
||||||
local production="$DEPLOY_PRODUCTION"
|
local production="$DEPLOY_PRODUCTION"
|
||||||
|
[[ "$BRANCH_NAME" = "main" ]] && production="true"
|
||||||
[[ -z "$production" ]] && production="false"
|
[[ -z "$production" ]] && production="false"
|
||||||
if [[ "$BRANCH_NAME" = "main" ]]; then
|
|
||||||
production="true"
|
|
||||||
branch=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
curl -sL \
|
curl -sL \
|
||||||
-H "Content-Type: application/zip" \
|
-H "Content-Type: application/zip" \
|
||||||
@ -26,6 +23,23 @@ __netlify_get_deploy() {
|
|||||||
"https://api.netlify.com/api/v1/deploys/${deploy_id}"
|
"https://api.netlify.com/api/v1/deploys/${deploy_id}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Publish a deployment to main URL.
|
||||||
|
__netlify_promote() {
|
||||||
|
local deploy_id="$1"
|
||||||
|
curl -sL \
|
||||||
|
-H "Authorization: Bearer ${NETLIFY_API_KEY}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
--data "{}" \
|
||||||
|
"https://api.netlify.com/api/v1/sites/${NETLIFY_SITE_ID}/deploys/${deploy_id}/restore"
|
||||||
|
}
|
||||||
|
|
||||||
|
__netlify_get_error() {
|
||||||
|
local error_message
|
||||||
|
error_message="$(json_get "$upload_resp" message)"
|
||||||
|
[[ "$error_message" = "null" ]] && error_message="$(json_get "$upload_resp" error_message)"
|
||||||
|
echo -n "$error_message"
|
||||||
|
}
|
||||||
|
|
||||||
json_get() {
|
json_get() {
|
||||||
local json_body="$1"
|
local json_body="$1"
|
||||||
shift
|
shift
|
||||||
@ -37,9 +51,7 @@ deploy_netlify() {
|
|||||||
local upload_resp
|
local upload_resp
|
||||||
upload_resp="$(__netlify_upload "$1")"
|
upload_resp="$(__netlify_upload "$1")"
|
||||||
|
|
||||||
local error_message
|
local error_message="$(__netlify_get_error "$upload_resp")"
|
||||||
error_message="$(json_get "$upload_resp" message)"
|
|
||||||
[[ "$error_message" = "null" ]] && error_message="$(json_get "$upload_resp" error_message)"
|
|
||||||
|
|
||||||
if [[ "$error_message" != "null" ]]; then
|
if [[ "$error_message" != "null" ]]; then
|
||||||
echo "Deploy to netlify failed:"
|
echo "Deploy to netlify failed:"
|
||||||
@ -60,7 +72,7 @@ deploy_netlify() {
|
|||||||
echo " * main url: $(json_get "$deploy_resp" 'ssl_url')"
|
echo " * main url: $(json_get "$deploy_resp" 'ssl_url')"
|
||||||
echo " * branch: $(json_get "$deploy_resp" 'deploy_ssl_url')"
|
echo " * branch: $(json_get "$deploy_resp" 'deploy_ssl_url')"
|
||||||
echo " * permalink: $(json_get "$deploy_resp" 'links' 'permalink')"
|
echo " * permalink: $(json_get "$deploy_resp" 'links' 'permalink')"
|
||||||
return 0
|
break
|
||||||
;;
|
;;
|
||||||
error)
|
error)
|
||||||
echo "Deploy to netlify failed:"
|
echo "Deploy to netlify failed:"
|
||||||
@ -73,10 +85,26 @@ deploy_netlify() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "$BRANCH_NAME" = "main" ]]; then
|
||||||
|
echo "Promoting latest main build..."
|
||||||
|
local promote_resp="$(__netlify_promote "$(json_get "$deploy_resp" 'id')")"
|
||||||
|
error_message="$(__netlify_get_error "$promote_resp")"
|
||||||
|
|
||||||
|
if [[ "$error_message" != "null" ]]; then
|
||||||
|
echo "Promote netlify deploy failed:"
|
||||||
|
echo " * ${error_message}"
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
echo 'Deoployed to main url.'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# For deployment, we care a bit less
|
# For deployment, we care a bit less
|
||||||
if [[ -n "${NETLIFY_API_KEY}" && -n "${NETLIFY_SITE_ID}" ]]; then
|
if [[ -n "${NETLIFY_API_KEY}" && -n "${NETLIFY_SITE_ID}" ]]; then
|
||||||
echo "Deploy to netlify..."
|
echo "Deploy to netlify..."
|
||||||
deploy_netlify um-react.zip
|
deploy_netlify um-react.zip
|
||||||
|
else
|
||||||
|
echo "skip netlify deployment."
|
||||||
fi
|
fi
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/env node
|
#!/usr/bin/env node
|
||||||
/* eslint-env node */
|
/* eslint-env node */
|
||||||
|
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
|
Loading…
Reference in New Issue
Block a user