mirror of
https://git.unlock-music.dev/um/um-react.git
synced 2024-11-24 00:02:16 +00:00
Merge remote-tracking branch 'origin/main' into feat/settings
This commit is contained in:
commit
425ac8e283
30
.drone.yml
Normal file
30
.drone.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: default
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: test & build
|
||||||
|
image: node:18.16.0-bullseye
|
||||||
|
commands:
|
||||||
|
# - git config --global --add safe.directory "/drone/src"
|
||||||
|
- npm install -g pnpm
|
||||||
|
- pnpm i --frozen-lockfile
|
||||||
|
- pnpm build
|
||||||
|
|
||||||
|
- name: publish
|
||||||
|
image: node:18.16.0-bullseye
|
||||||
|
environment:
|
||||||
|
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
||||||
|
GITEA_API_KEY:
|
||||||
|
from_secret: GITEA_API_KEY
|
||||||
|
NETLIFY_SITE_ID:
|
||||||
|
from_secret: NETLIFY_SITE_ID
|
||||||
|
NETLIFY_API_KEY:
|
||||||
|
from_secret: NETLIFY_API_KEY
|
||||||
|
commands:
|
||||||
|
# - git config --global --add safe.directory "/drone/src"
|
||||||
|
- apt-get update && apt-get install -y zip jq tar gzip curl
|
||||||
|
- (cd dist && zip -r -9 ../um-react.zip .)
|
||||||
|
- ./scripts/publish.sh
|
||||||
|
- ./scripts/deploy.sh
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -23,3 +23,7 @@ dist-ssr
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.sw?
|
||||||
|
|
||||||
|
# Files created when running "drone exec" locally
|
||||||
|
/.pnpm-store/
|
||||||
|
/*.zip
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
# Unlock Music 音乐解锁 (React)
|
# Unlock Music 音乐解锁 (React)
|
||||||
|
|
||||||
|
[![Build Status](https://ci.unlock-music.dev/api/badges/um/um-react/status.svg)](https://ci.unlock-music.dev/um/um-react)
|
||||||
|
|
||||||
- 在浏览器中解锁加密的音乐文件。 Unlock encrypted music file in the browser.
|
- 在浏览器中解锁加密的音乐文件。 Unlock encrypted music file in the browser.
|
||||||
- Unlock Music 项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循[授权协议]。
|
- Unlock Music 项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循[授权协议]。
|
||||||
- Unlock Music 的 CLI 版本可以在 [unlock-music/cli] 找到,大批量转换建议使用 CLI 版本。
|
- Unlock Music 的 CLI 版本可以在 [unlock-music/cli] 找到,大批量转换建议使用 CLI 版本。
|
||||||
- 我们新建了 Telegram 群组 [`@unlock_music_chat`] ,欢迎加入!
|
- 我们新建了 Telegram 群组 [`@unlock_music_chat`] ,欢迎加入!
|
||||||
- ~~CI 自动构建已经部署,可以在 [UM-Packages] 下载~~ 目前还没有自动构建
|
- CI 自动构建已经部署,可以在 [Packages][um-react-packages] 下载 目前还没有自动构建
|
||||||
|
|
||||||
[授权协议]: https://git.unlock-music.dev/um/um-react/src/branch/main/LICENSE
|
[授权协议]: https://git.unlock-music.dev/um/um-react/src/branch/main/LICENSE
|
||||||
[unlock-music/cli]: https://git.unlock-music.dev/um/cli
|
[unlock-music/cli]: https://git.unlock-music.dev/um/cli
|
||||||
[`@unlock_music_chat`]: https://t.me/unlock_music_chat
|
[`@unlock_music_chat`]: https://t.me/unlock_music_chat
|
||||||
[UM-Packages]: https://git.unlock-music.dev/um/-/packages/generic/web-build/
|
[um-react-packages]: https://git.unlock-music.dev/um/-/packages/generic/um-react/
|
||||||
|
|
||||||
## 支持的格式
|
## 支持的格式
|
||||||
|
|
||||||
|
67
scripts/deploy.sh
Executable file
67
scripts/deploy.sh
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
BRANCH_NAME="$(git branch --show-current)"
|
||||||
|
|
||||||
|
__netlify_upload() {
|
||||||
|
local production="$DEPLOY_PRODUCTION"
|
||||||
|
[[ -z "$production" ]] && production="false"
|
||||||
|
[[ "$BRANCH_NAME" = "main" ]] && production="true"
|
||||||
|
|
||||||
|
curl -sL \
|
||||||
|
-H "Content-Type: application/zip" \
|
||||||
|
-H "Authorization: Bearer ${NETLIFY_API_KEY}" \
|
||||||
|
--data-binary "@${1}" \
|
||||||
|
"https://api.netlify.com/api/v1/sites/${NETLIFY_SITE_ID}/deploys?branch=${BRANCH_NAME}&production=${production}"
|
||||||
|
}
|
||||||
|
|
||||||
|
__netlify_get_deploy() {
|
||||||
|
local deploy_id="$1"
|
||||||
|
curl -sL \
|
||||||
|
-H "Authorization: Bearer ${NETLIFY_API_KEY}" \
|
||||||
|
"https://api.netlify.com/api/v1/deploys/${deploy_id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
deploy_netlify() {
|
||||||
|
local upload_resp
|
||||||
|
upload_resp="$(__netlify_upload "$1")"
|
||||||
|
|
||||||
|
local error_message="$(echo "$upload_resp" | jq -r ".message // .error_message")"
|
||||||
|
if [[ "$error_message" != "null" ]]; then
|
||||||
|
echo "Deploy to netlify failed:"
|
||||||
|
echo " * ${error_message}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local deploy_id="$(echo "$upload_resp" | jq -r ".id")"
|
||||||
|
local deploy_resp=""
|
||||||
|
local deploy_state=""
|
||||||
|
local retry_count=10
|
||||||
|
while [[ "$retry_count" -gt 0 ]]; do
|
||||||
|
deploy_resp="$(__netlify_get_deploy "$deploy_id")"
|
||||||
|
deploy_state="$(echo "$deploy_resp" | jq -r '.state')"
|
||||||
|
case "$deploy_state" in
|
||||||
|
ready)
|
||||||
|
echo 'Deploy to netlify OK!'
|
||||||
|
echo " * main url: $(echo "$deploy_resp" | jq -r '.ssl_url')"
|
||||||
|
echo " * branch: $(echo "$deploy_resp" | jq -r '.deploy_ssl_url')"
|
||||||
|
echo " * permalink: $(echo "$deploy_resp" | jq -r '.links.permalink')"
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
error)
|
||||||
|
echo "Deploy to netlify failed:"
|
||||||
|
echo " * $(echo "$deploy_resp" | jq -r '.error_message')"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
retry_count="$((retry_count - 1))"
|
||||||
|
sleep 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# For deployment, we care a bit less
|
||||||
|
if [[ -n "${NETLIFY_API_KEY}" && -n "${NETLIFY_SITE_ID}" ]]; then
|
||||||
|
echo "Deploy to netlify..."
|
||||||
|
deploy_netlify um-react.zip
|
||||||
|
fi
|
21
scripts/publish.sh
Executable file
21
scripts/publish.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
BRANCH_NAME="$(git branch --show-current)"
|
||||||
|
|
||||||
|
publish_gitea() {
|
||||||
|
local ZIP_NAME="$1"
|
||||||
|
local URL="${DRONE_GITEA_SERVER}/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}/${DRONE_BUILD_NUMBER}/${ZIP_NAME}"
|
||||||
|
sha256sum "${ZIP_NAME}"
|
||||||
|
curl -sLifu "um-release-bot:${GITEA_API_KEY}" -T "${ZIP_NAME}" "${URL}"
|
||||||
|
echo "Uploaded to: ${URL}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Only publish main branch by default
|
||||||
|
if [[ "${BRANCH_NAME}" = "main" ]]; then
|
||||||
|
echo 'prepare to publish...'
|
||||||
|
|
||||||
|
if [[ -n "${GITEA_API_KEY}" ]]; then
|
||||||
|
echo "Publish to gitea..."
|
||||||
|
publish_gitea "um-react.zip"
|
||||||
|
fi
|
||||||
|
fi
|
1
src/dummy.mjs
Normal file
1
src/dummy.mjs
Normal file
@ -0,0 +1 @@
|
|||||||
|
// This is a dummy module for vite/rollup to resolve.
|
@ -23,6 +23,9 @@ const version = `${pkg.version}-${shortCommit}`;
|
|||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
worker: {
|
||||||
|
format: 'es',
|
||||||
|
},
|
||||||
server: {
|
server: {
|
||||||
fs: {
|
fs: {
|
||||||
// Note:
|
// Note:
|
||||||
@ -85,6 +88,7 @@ export default defineConfig({
|
|||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'~': path.resolve(__dirname, 'src'),
|
'~': path.resolve(__dirname, 'src'),
|
||||||
|
module: path.resolve(__dirname, 'src', 'dummy.mjs'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
|
Loading…
Reference in New Issue
Block a user