Skip to content

Commit

Permalink
发布 npm 版本
Browse files Browse the repository at this point in the history
  • Loading branch information
whyour committed Jul 2, 2023
1 parent 6622551 commit 500d7ae
Show file tree
Hide file tree
Showing 8 changed files with 163 additions and 7 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/build_docker_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ jobs:
pnpm install --frozen-lockfile
pnpm build:front
pnpm build:back
- name: publich npm package
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc
npm publish
- name: copy to static repo
env:
Expand Down Expand Up @@ -141,7 +146,6 @@ jobs:
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
Expand Down
20 changes: 20 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
.github/
.vscode/
.history/
back/
cli/
data/
src/
static/**/*.js.map
static/**/*.gz
.editorconfig
.gitignore
.prettierignore
.prettierrc
.umirc.ts
nodemon.json
pnpm-lock.yaml
tsconfig.back.json
tsconfig.json
typings.d.ts
.env
7 changes: 6 additions & 1 deletion back/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@ const lastVersionFile = `https://qn.whyour.cn/version.yaml`;
const rootPath = process.env.QL_DIR as string;
const envFound = dotenv.config({ path: path.join(rootPath, '.env') });

const dataPath = path.join(rootPath, 'data/');
let dataPath = path.join(rootPath, 'data/');

if (process.env.QL_DATA_DIR) {
dataPath = process.env.QL_DATA_DIR;
}

const samplePath = path.join(rootPath, 'sample/');
const configPath = path.join(dataPath, 'config/');
const scriptPath = path.join(dataPath, 'scripts/');
Expand Down
9 changes: 7 additions & 2 deletions back/loaders/initFile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ import dotenv from 'dotenv';
import Logger from './logger';
import { fileExist } from '../config/util';

const rootPath = process.env.QL_DIR as string;;
const dataPath = path.join(rootPath, 'data/');
const rootPath = process.env.QL_DIR as string;
let dataPath = path.join(rootPath, 'data/');

if (process.env.QL_DATA_DIR) {
dataPath = process.env.QL_DATA_DIR;
}

const configPath = path.join(dataPath, 'config/');
const scriptPath = path.join(dataPath, 'scripts/');
const logPath = path.join(dataPath, 'log/');
Expand Down
7 changes: 5 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM node:18-slim as nodebuilder

FROM python:3.10-slim as builder
FROM python:3.10-slim-bullseye as builder
COPY package.json .npmrc pnpm-lock.yaml /tmp/build/
COPY --from=nodebuilder /usr/local/bin/node /usr/local/bin/
COPY --from=nodebuilder /usr/local/lib/node_modules/. /usr/local/lib/node_modules/
Expand All @@ -12,7 +12,7 @@ RUN set -x && \
cd /tmp/build && \
pnpm --registry https://registry.npmmirror.com install --prod

FROM python:3.10-slim
FROM python:3.10-slim-bullseye

ARG QL_MAINTAINER="whyour"
LABEL maintainer="${QL_MAINTAINER}"
Expand All @@ -39,6 +39,9 @@ RUN set -x && \
apt install --no-install-recommends -y git \
curl \
wget \
tzdata \
perl \
openssl \
nginx \
jq \
procps \
Expand Down
18 changes: 17 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
{
"private": true,
"name": "@whyour/qinglong",
"version": "0.5.4",
"description": "Timed task management platform supporting Python3, JavaScript, Shell, Typescript",
"repository": {
"type": "git",
"url": "https://github.com/whyour/qinglong.git"
},
"author": "whyour",
"license": "Apache License 2.0",
"bugs": {
"url": "https://github.com/whyour/qinglong/issues"
},
"scripts": {
"start": "concurrently -n w: npm:start:*",
"start:front": "max dev",
Expand Down Expand Up @@ -28,6 +39,11 @@
"prettier --parser=typescript --write"
]
},
"bin": {
"ql": "shell/update.sh",
"task": "shell/task.sh",
"qinglong": "shell/start.sh"
},
"pnpm": {
"peerDependencyRules": {
"ignoreMissing": [
Expand Down
5 changes: 5 additions & 0 deletions shell/share.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
## 目录
dir_root=$QL_DIR
dir_data=$dir_root/data

if [[ $QL_DATA_DIR ]]; then
dir_data=$QL_DATA_DIR
fi

dir_shell=$dir_root/shell
dir_sample=$dir_root/sample
dir_static=$dir_root/static
Expand Down
98 changes: 98 additions & 0 deletions shell/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#!/usr/bin/env bash

# 前置依赖 nodejs、npm
set -e
set -x

if [[ ! $QL_DIR ]]; then
npm_dir=$(npm root -g)
pnpm_dir=$(pnpm root -g)
if [[ -d "$npm_dir/@whyour/qinglong" ]]; then
QL_DIR="$npm_dir/@whyour/qinglong"
elif [[ -d "$pnpm_dir/@whyour/qinglong" ]]; then
QL_DIR="$pnpm_dir/@whyour/qinglong"
else
echo -e "未找到 qinglong 模块,请先执行 npm i -g @whyour/qinglong 安装"
fi

if [[ $QL_DIR ]]; then
echo -e "请先设置 export QL_DIR=$QL_DIR,环境变量,并添加到系统环境变量,然后再次执行命令 qinglong 启动服务"
fi

exit 1
fi

if [[ ! $QL_DATA_DIR ]]; then
echo -e "请先设置数据存储目录 export QL_DATA_DIR 环境变量,目录必须以斜杠开头的绝对路径,并添加到系统环境变量"
exit 1
fi

# 安装依赖
os_name=$(source /etc/os-release && echo "$ID")

if [[ $os_name == 'alpine' ]]; then
apk update
apk add -f bash \
coreutils \
git \
curl \
wget \
tzdata \
perl \
openssl \
jq \
nginx \
openssh \
procps \
netcat-openbsd
elif [[ $os_name == 'debian' ]] || [[ $os_name == 'ubuntu' ]]; then
apt update
apt install -y git curl wget tzdata perl openssl jq nginx procps netcat
elif [[ $os_name == 'centos' ]]; then
yum update
yum install -y epel-release git curl wget tzdata perl openssl jq nginx procps netcat
else
echo -e "暂不支持此系统部署 $os_name"
exit 1
fi

npm install -g pnpm@8.3.1
cd && pnpm config set registry https://registry.npmmirror.com
pnpm add -g pm2 tsx

cd ${QL_DIR}
cp -f .env.example .env
chmod 777 ${QL_DIR}/shell/*.sh

. ${QL_DIR}/shell/share.sh

make_dir /etc/nginx/conf.d
make_dir /run/nginx
init_nginx
fix_config

pm2 l &>/dev/null

patch_version
if [[ $PipMirror ]]; then
pip3 config set global.index-url $PipMirror
fi
current_npm_registry=$(cd && pnpm config get registry)
is_equal_registry=$(echo $current_npm_registry | grep "${NpmMirror}")
if [[ "$is_equal_registry" == "" ]]; then
cd && pnpm config set registry $NpmMirror
pnpm install -g
fi
update_depend

reload_pm2

nginx -s reload 2>/dev/null || nginx -c /etc/nginx/nginx.conf

if [[ $AutoStartBot == true ]]; then
nohup ql -l bot >$dir_log/bot.log 2>&1 &
fi

if [[ $EnableExtraShell == true ]]; then
nohup ql -l extra >$dir_log/extra.log 2>&1 &
fi

0 comments on commit 500d7ae

Please sign in to comment.