34 Commits

Author SHA1 Message Date
monlor
8721073e15 2020-03-06 15:57:27 2020-03-06 15:57:27 +08:00
monlor
38e6e5beec 2020-03-06 15:50:15 2020-03-06 15:50:15 +08:00
monlor
9c1a15900c 2020-03-06 15:31:51 2020-03-06 15:31:51 +08:00
monlor
44765ef57c 2020-03-06 15:21:32 2020-03-06 15:21:33 +08:00
monlor
79a64bf3c0 2020-03-06 15:13:21 2020-03-06 15:13:21 +08:00
monlor
5609506ab1 2020-03-06 15:10:15 2020-03-06 15:10:15 +08:00
monlor
41b60f9401 2020-03-06 14:52:37 2020-03-06 14:52:37 +08:00
monlor
361de1ac89 2020-03-06 14:48:54 2020-03-06 14:48:54 +08:00
monlor
9dcedac61f 2020-03-06 14:43:38 2020-03-06 14:43:38 +08:00
monlor
9ec8d389f8 2020-03-06 14:42:40 2020-03-06 14:42:40 +08:00
monlor
9047504b18 2020-03-06 14:41:07 2020-03-06 14:41:07 +08:00
monlor
e4f5c1acee 2020-03-06 14:30:33 2020-03-06 14:30:33 +08:00
monlor
408a2f7b96 2020-03-06 14:25:22 2020-03-06 14:25:22 +08:00
monlor
a2c692f420 2020-03-06 14:21:11 2020-03-06 14:21:11 +08:00
monlor
07dd0a23f3 2020-03-06 14:17:36 2020-03-06 14:17:36 +08:00
monlor
db9def4c51 2020-03-06 14:08:59 2020-03-06 14:08:59 +08:00
monlor
30fe9ea66a 2020-03-06 14:03:40 2020-03-06 14:03:40 +08:00
monlor
75fe844804 2020-03-06 13:55:38 2020-03-06 13:55:38 +08:00
monlor
f27035c014 2020-03-06 13:35:02 2020-03-06 13:35:03 +08:00
monlor
12e0abf478 2020-03-06 13:29:16 2020-03-06 13:29:16 +08:00
monlor
32e17d5472 2020-03-06 13:13:41 2020-03-06 13:13:41 +08:00
monlor
29b6c598ad 2020-03-06 13:10:13 2020-03-06 13:10:14 +08:00
monlor
7c5840c767 2020-03-06 13:02:36 2020-03-06 13:02:36 +08:00
monlor
308681c76f 2020-03-06 12:08:41 2020-03-06 12:08:42 +08:00
monlor
54d115a1bf 2020-03-06 12:01:13 2020-03-06 12:01:13 +08:00
monlor
7d193990d0 2020-03-06 12:00:01 2020-03-06 12:00:01 +08:00
monlor
d54c894dc0 2020-03-06 11:54:38 2020-03-06 11:54:39 +08:00
monlor
76f69f247e 2020-03-06 11:46:59 2020-03-06 11:46:59 +08:00
monlor
cc2d631c80 2020-03-06 11:40:29 2020-03-06 11:40:30 +08:00
monlor
90f37162ab 2020-03-06 11:32:53 2020-03-06 11:32:54 +08:00
monlor
312db7f2f5 2020-03-06 11:22:32 2020-03-06 11:22:32 +08:00
monlor
6e6f315ae0 修改gitlab-ci 2020-03-06 00:28:11 +08:00
monlor
fdc855596a 新增gitlab ci 2020-03-05 23:25:06 +08:00
monlor
cf77dee5c7 修改ci 2020-03-05 22:48:41 +08:00
12 changed files with 310 additions and 26 deletions

View File

@@ -22,8 +22,8 @@ jobs:
run: | run: |
git fetch origin ${BRANCH_NAME} git fetch origin ${BRANCH_NAME}
git checkout ${BRANCH_NAME} git checkout ${BRANCH_NAME}
git clone -b ${BRANCH_NAME} ${CO_REF}
bash ./tools/gitsync.sh pack bash ./tools/gitsync.sh pack
bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${GH_REF}
bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${CO_REF} bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${CO_REF}
test-job: test-job:
@@ -38,7 +38,23 @@ jobs:
run: | run: |
git fetch origin ${BRANCH_NAME} git fetch origin ${BRANCH_NAME}
git checkout ${BRANCH_NAME} git checkout ${BRANCH_NAME}
git clone -b ${BRANCH_NAME} ${CO_REF}
bash ./tools/gitsync.sh pack
bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${CO_REF}
dev-job:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Pack And Deploy
env:
BRANCH_NAME: dev
run: |
git fetch origin ${BRANCH_NAME}
git checkout ${BRANCH_NAME}
git clone -b ${BRANCH_NAME} ${CO_REF}
bash ./tools/gitsync.sh pack bash ./tools/gitsync.sh pack
bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${GH_REF}
bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${CO_REF} bash ./tools/gitsync.sh deploy mbfiles ${BRANCH_NAME} ${CO_REF}

View File

@@ -6,12 +6,19 @@ on:
branchs: branchs:
- master - master
- test - test
- dev
tags-ignore:
- deploy-*
- test-*
- master-*
ignore-paths: ignore-paths:
- '.github' - '.github'
- 'README.md' - 'README.md'
pull_request: pull_request:
branchs: branchs:
- master - master
- test
- dev
jobs: jobs:
publish: publish:
@@ -26,6 +33,6 @@ jobs:
- name: Pack And Deploy - name: Pack And Deploy
run: | run: |
git clone -b `basename ${BRANCH_NAME}` ${CO_REF}
bash ./tools/gitsync.sh pack bash ./tools/gitsync.sh pack
bash ./tools/gitsync.sh deploy mbfiles `basename ${BRANCH_NAME}` ${GH_REF}
bash ./tools/gitsync.sh deploy mbfiles `basename ${BRANCH_NAME}` ${CO_REF} bash ./tools/gitsync.sh deploy mbfiles `basename ${BRANCH_NAME}` ${CO_REF}

79
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,79 @@
image: lholota/bash-git:latest
stages:
- deploy
deploy:branchs:
stage: deploy
only:
- master
- test
script:
- apk add git-lfs
- git clone -b ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
# - bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
- bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${CO_REF}/monlor/mbfiles.git
- bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GH_REF}/monlor/mbfiles.git
# deploy:dev:
# stage: deploy
# only:
# - dev
# script:
# - apk add git-lfs
# - git clone -b ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
# - bash -e ./tools/gitsync.sh pack
# - bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
deploy:master:
stage: deploy
only:
- tags
tags:
- deploy-*
script:
- apk add git-lfs
- git fetch origin master
- git checkout master
- git clone -b master ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
- bash ./tools/gitsync.sh deploy mbfiles master ${CO_REF}/monlor/mbfiles.git
cache:
key: master
untracked: true
deploy:test:
stage: deploy
only:
- tags
tags:
- deploy-*
script:
- apk add git-lfs
- git fetch origin test
- git checkout test
- git clone -b test ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
- bash ./tools/gitsync.sh deploy mbfiles test ${CO_REF}/monlor/mbfiles.git
cache:
key: test
untracked: true
syncode:github:
stage: deploy
only:
- master
- test
- dev
script:
- git fetch origin ${CI_COMMIT_REF_NAME}
- git checkout ${CI_COMMIT_REF_NAME}
- git push ${GH_REF}/monlor/MIXBOX.git ${CI_COMMIT_REF_NAME}:${CI_COMMIT_REF_NAME}
# cache:
# key: ${CI_COMMIT_REF_NAME}
# untracked: true
# paths:
# - mbfiles/

View File

@@ -1,6 +1,6 @@
# MIXBOX # MIXBOX
![](https://github.com/monlor/MIXBOX/workflows/Main-CI/badge.svg) ![](https://github.com/monlor/MIXBOX/workflows/Master-CI/badge.svg)
> MIXBOX是一款全新的完全基于Shell脚本的工具箱为在路由器上实现程序的快速配置及运行管理欢迎大佬们stars、fork及pr. > MIXBOX是一款全新的完全基于Shell脚本的工具箱为在路由器上实现程序的快速配置及运行管理欢迎大佬们stars、fork及pr.

View File

@@ -4,4 +4,4 @@ needver=""
supports="linux_arm,linux_mips,linux_x86_64" supports="linux_arm,linux_mips,linux_x86_64"
appinfo="一款支持多平台多架构的Shell工具箱" appinfo="一款支持多平台多架构的Shell工具箱"
newinfo="新增base64_encode工具" newinfo="新增base64_encode工具"
version="0.1.9.1" version="0.1.9.2"

View File

@@ -9,11 +9,11 @@ wgetsh() {
[ ! -d "$wgetfiledir" ] && mkdir -p $wgetfiledir [ ! -d "$wgetfiledir" ] && mkdir -p $wgetfiledir
[ ! -d ${mbtmp} ] && mkdir -p ${mbtmp} [ ! -d ${mbtmp} ] && mkdir -p ${mbtmp}
rm -rf ${mbtmp}/${wgetfilename} rm -rf ${mbtmp}/${wgetfilename}
if command -v wget-ssl &> /dev/null; then if command -v curl &> /dev/null; then
result1=$(curl -skL --connect-timeout 10 -m 20 -w %{http_code} -o "${mbtmp}/${wgetfilename}" "$wgeturl")
else
wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O "${mbtmp}/${wgetfilename}" "$wgeturl" wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O "${mbtmp}/${wgetfilename}" "$wgeturl"
[ $? -eq 0 ] && result="200" [ $? -eq 0 ] && result="200"
else
result1=$(curl -skL --connect-timeout 10 -m 20 -w %{http_code} -o "${mbtmp}/${wgetfilename}" "$wgeturl")
fi fi
[ -f "${mbtmp}/${wgetfilename}" ] && result2=$(du -sh "${mbtmp}/${wgetfilename}" 2> /dev/null | awk '{print$1}') [ -f "${mbtmp}/${wgetfilename}" ] && result2=$(du -sh "${mbtmp}/${wgetfilename}" 2> /dev/null | awk '{print$1}')
if [ "$result" = "200" ] && [ "$result2" != '0' ]; then if [ "$result" = "200" ] && [ "$result2" != '0' ]; then
@@ -40,7 +40,7 @@ base_encode() {
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo -n "" echo -n ""
else else
if command -v base64-encode &> /dev/null; then if base64-encode &> /dev/null; then
echo -n "$*" | base64-encode echo -n "$*" | base64-encode
else else
echo -n "$*" | baseutil --b64 echo -n "$*" | baseutil --b64
@@ -52,7 +52,7 @@ base_decode() {
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo -n "" echo -n ""
else else
if command -v base64-decode &> /dev/null; then if base64-decode &> /dev/null; then
echo -n "$*" | base64-decode echo -n "$*" | base64-decode
else else
echo -n "$*" | baseutil --b64 -d echo -n "$*" | baseutil --b64 -d

View File

@@ -0,0 +1,81 @@
# 定义 stages阶段。任务将按此顺序执行。
stages:
- build
- test
- deploy
# 定义 job任务
job1:
stage: test
tags:
- XX #只有标签为XX的runner才会执行这个任务
only:
- dev #只有dev分支提交代码才会执行这个任务。也可以是分支名称或触发器名称
- /^future-.*$/ #正则表达式只有future-开头的分支才会执行
script:
- echo "I am job1"
- echo "I am in test stage"
# 定义 job
job2:
stage: test #如果此处没有定义stage其默认也是test
only:
- master #只有master分支提交代码才会执行这个任务
script:
- echo "I am job2"
- echo "I am in test stage"
allow_failure: true #允许失败,即不影响下步构建
# 定义 job
job3:
stage: build
except:
- dev #除了dev分支其它分支提交代码都会执行这个任务
script:
- echo "I am job3"
- echo "I am in build stage"
when: always #不管前面几步成功与否永远会执行这一步。它有几个值on_success (默认值)\on_failure\always\manual手动执行
# 定义 job
.job4: #对于临时不想执行的job可以选择在前面加个"."这样就会跳过此步任务否则你除了要注释掉这个jobj外还需要注释上面为deploy的stage
stage: deploy
script:
- echo "I am job4"
# 模板,相当于公用函数,有重复任务时很有用
.job_template: &job_definition # 创建一个锚,'job_definition'
image: ruby:2.1
services:
- postgres
- redis
test1:
<<: *job_definition # 利用锚'job_definition'来合并
script:
- test1 project
test2:
<<: *job_definition # 利用锚'job_definition'来合并
script:
- test2 project
#下面几个都相当于全局变量都可以添加到具体job中这时会被子job的覆盖
before_script:
- echo "每个job之前都会执行"
after_script:
- echo "每个job之后都会执行"
variables: #变量
DATABASE_URL: "postgres://postgres@postgres/my_database" #在job中可以用${DATABASE_URL}来使用这个变量。常用的预定义变量有CI_COMMIT_REF_NAME项目所在的分支或标签名称CI_JOB_NAME任务名称CI_JOB_STAGE任务阶段
GIT_STRATEGY: "none" #GIT策略定义拉取代码的方式有3种clone/fetch/none默认为clone速度最慢每步job都会重新clone一次代码。我们一般将它设置为none在具体任务里设置为fetch就可以满足需求毕竟不是每步都需要新代码那也不符合我们测试的流程
cache: #缓存
#因为缓存为不同管道和任务间共享可能会覆盖所以有时需要设置key
key: ${CI_COMMIT_REF_NAME} # 启用每分支缓存。
#key: "$CI_JOB_NAME/$CI_COMMIT_REF_NAME" # 启用每个任务和每个分支缓存。需要注意的是如果是在windows中运行这个脚本需要把$换成%
untracked: true #缓存所有Git未跟踪的文件
paths: #以下2个文件夹会被缓存起来下次构建会解压出来
- node_modules/
- dist/

79
backup/.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,79 @@
image: lholota/bash-git:latest
stages:
- deploy
deploy:branchs:
stage: deploy
only:
- master
- test
script:
- apk add git-lfs
- git clone -b ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
# - bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
- bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${CO_REF}/monlor/mbfiles.git
- bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GH_REF}/monlor/mbfiles.git
# deploy:dev:
# stage: deploy
# only:
# - dev
# script:
# - apk add git-lfs
# - git clone -b ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
# - bash -e ./tools/gitsync.sh pack
# - bash ./tools/gitsync.sh deploy mbfiles ${CI_COMMIT_REF_NAME} ${GL_REF}/monlor/mbfiles.git
deploy:master:
stage: deploy
only:
- tags
tags:
- deploy-*
script:
- apk add git-lfs
- git fetch origin master
- git checkout master
- git clone -b master ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
- bash ./tools/gitsync.sh deploy mbfiles master ${CO_REF}/monlor/mbfiles.git
cache:
key: master
untracked: true
deploy:test:
stage: deploy
only:
- tags
tags:
- deploy-*
script:
- apk add git-lfs
- git fetch origin test
- git checkout test
- git clone -b test ${GL_REF}/monlor/mbfiles.git
- bash -e ./tools/gitsync.sh pack
- bash ./tools/gitsync.sh deploy mbfiles test ${CO_REF}/monlor/mbfiles.git
cache:
key: test
untracked: true
syncode:github:
stage: deploy
only:
- master
- test
- dev
script:
- git fetch origin ${CI_COMMIT_REF_NAME}
- git checkout ${CI_COMMIT_REF_NAME}
- git push ${GH_REF}/monlor/MIXBOX.git ${CI_COMMIT_REF_NAME}:${CI_COMMIT_REF_NAME}
# cache:
# key: ${CI_COMMIT_REF_NAME}
# untracked: true
# paths:
# - mbfiles/

View File

@@ -47,11 +47,11 @@ fi
logsh "【Tools】" "下载工具箱文件..." logsh "【Tools】" "下载工具箱文件..."
rm -rf ${mbtmp}/mixbox.tar.gz > /dev/null 2>&1 rm -rf ${mbtmp}/mixbox.tar.gz > /dev/null 2>&1
if command -v wget-ssl &> /dev/null; then if command -v curl &> /dev/null; then
result=$(curl -w %{http_code} -skLo ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz)
else
wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz
[ $? -eq 0 ] && result="200" [ $? -eq 0 ] && result="200"
else
result=$(curl -w %{http_code} -skLo ${mbtmp}/mixbox.tar.gz ${mburl}/appstore/mixbox_${model}.tar.gz)
fi fi
[ "$result" != "200" ] && logsh "【Tools】" "文件下载失败!" && exit 1 [ "$result" != "200" ] && logsh "【Tools】" "文件下载失败!" && exit 1
logsh "【Tools】" "解压工具箱文件" logsh "【Tools】" "解压工具箱文件"

View File

@@ -59,22 +59,34 @@ gerneral_applist() {
pack() { pack() {
local pack_dir="${1:-mbfiles}"
rm -rf appstore/ rm -rf appstore/
rm -rf mbfiles/
echo "开始打包插件..." echo "开始打包插件..."
mkdir appstore mkdir appstore
ls apps/ | while read line; do ls apps/ | while read line; do
# 取用缓存数据
if [ -f ${pack_dir}/applist.txt ]; then
version_old=`cat ${pack_dir}/applist.txt | grep "$line|" | cut -d'|' -f4`
version_new=`cat apps/$line/config/$line.uci | grep "version=" | cut -d'=' -f2 | sed -e 's/"//g'`
[ "$version_new" = "$version_old" ] && echo "$line未更新,跳过打包..." && continue
fi
pack_app $line pack_app $line
done done
gerneral_applist gerneral_applist
mkdir mbfiles test ! -d ${pack_dir}/appstore && mkdir -p ${pack_dir}/appstore
cp -rf appsbin/ mbfiles/appsbin/ test ! -d ${pack_dir}/temp && mkdir -p ${pack_dir}/temp
cp -rf temp/ mbfiles/temp/ test ! -d ${pack_dir}/appsbin && mkdir -p ${pack_dir}/appsbin
cp -rf install.sh mbfiles/
mv -f appstore/ mbfiles/appstore/ cp -rf appsbin/* ${pack_dir}/appsbin/
mv -f applist.txt mbfiles/ cp -rf temp/* ${pack_dir}/temp/
cp -rf install.sh ${pack_dir}/
mv -f appstore/* ${pack_dir}/appstore/
mv -f applist.txt ${pack_dir}/
rm -rf appstore/
} }
@@ -107,13 +119,23 @@ deploy() {
sed -Ei "s#mbfiles/git/raw/[a-z]+#mbfiles/git/raw/$2#" $1/install.sh sed -Ei "s#mbfiles/git/raw/[a-z]+#mbfiles/git/raw/$2#" $1/install.sh
cd $1 cd $1
if [ ! -d ".git" ]; then
git init git init
fi
git config --local user.email "monlor@qq.com" git config --local user.email "monlor@qq.com"
git config --local user.name "monlor" git config --local user.name "monlor"
git lfs install
rm -rf .gitattributes
git lfs track "*_linux_*"
git lfs track "*_darwin_*"
if git status &> /dev/null; then
git add . git add .
git commit -m "$(TZ='Asia/Shanghai' date "+%Y-%m-%d %H:%M:%S")" -a git commit -m "$(TZ='Asia/Shanghai' date "+%Y-%m-%d %H:%M:%S")" -a
git push "$3" master:"$2" -f fi
git lfs push "$3" --all
git push "$3"
} }
case $1 in case $1 in