-
This commit is contained in:
0
.taskfile/.env.template
Normal file
0
.taskfile/.env.template
Normal file
12
.taskfile/cmd.yml
Normal file
12
.taskfile/cmd.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
# https://taskfile.dev
|
||||
|
||||
version: "3"
|
||||
|
||||
vars:
|
||||
GREETING: 用于本项目的常用命令编写
|
||||
|
||||
tasks:
|
||||
default:
|
||||
desc: 默认任务
|
||||
cmds:
|
||||
- echo "${GREETING}"
|
||||
50
.taskfile/env.yml
Normal file
50
.taskfile/env.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
version: "3"
|
||||
|
||||
vars:
|
||||
NAMESPACE: "wangsendi"
|
||||
DEVELOPER: "https://yuque.com/wangsendi"
|
||||
TIME_NOW:
|
||||
sh: TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S %Z'
|
||||
|
||||
PATH_REALPATH:
|
||||
sh: pwd
|
||||
PATH_DIRNAME:
|
||||
sh: dirname "{{.PATH_REALPATH}}"
|
||||
PATH_BASENAME:
|
||||
sh: basename "{{.PATH_REALPATH}}"
|
||||
PATH_PROJECT:
|
||||
sh: echo "{{.PATH_BASENAME}}" | cut -d'-' -f2-
|
||||
|
||||
GIT_TAG_LATEST:
|
||||
sh: |
|
||||
_latest_tag=$(git tag --sort=-v:refname | head -n 1 2>/dev/null) || true
|
||||
if [[ "${_latest_tag}" == "" ]]; then
|
||||
git tag v0.0.0 -m "init" 2>/dev/null || true
|
||||
_latest_tag="v0.0.0";
|
||||
fi
|
||||
echo ${_latest_tag}
|
||||
GIT_COMMIT:
|
||||
sh: git log -n 1 --format=%h 2>/dev/null || echo "0000"
|
||||
GIT_SOURCE:
|
||||
sh: grep -A1 '^\[remote' .git/config | grep 'url' | head -n 1 | sed 's|.git$||; s|:|/|; s|git@|https://|' | awk '{print $NF}'
|
||||
GIT_PROJECT:
|
||||
sh: echo "{{.GIT_SOURCE}}" | awk -F/ '{print $NF}'
|
||||
|
||||
tasks:
|
||||
env:
|
||||
desc: "显示环境变量"
|
||||
silent: true
|
||||
cmds:
|
||||
- |
|
||||
echo "NAMESPACE: {{.NAMESPACE}}"
|
||||
echo "DEVELOPER: {{.DEVELOPER}}"
|
||||
echo "TIME_NOW: {{.TIME_NOW}}"
|
||||
echo
|
||||
echo "PATH_REALPATH: {{.PATH_REALPATH}}"
|
||||
echo "PATH_DIRNAME: {{.PATH_DIRNAME}}"
|
||||
echo "PATH_BASENAME: {{.PATH_BASENAME}}"
|
||||
echo "PATH_PROJECT: {{.PATH_PROJECT}}"
|
||||
echo
|
||||
echo "GIT_TAG_LATEST: {{.GIT_TAG_LATEST}}"
|
||||
echo "GIT_COMMIT: {{.GIT_COMMIT}}"
|
||||
echo "GIT_SOURCE: {{.GIT_SOURCE}}"
|
||||
76
.taskfile/git.yml
Normal file
76
.taskfile/git.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
clear:
|
||||
desc: "清除历史提交记录"
|
||||
silent: true
|
||||
cmds:
|
||||
- |
|
||||
_branch_name_current=$(git branch --show-current 2>/dev/null || echo "")
|
||||
_branch_name_backups="local/bak/${_branch_name_current}/$(date +'%Y/%m/%d/%H%M%S')"
|
||||
if [[ "${_branch_name_current}" == "" ]]; then
|
||||
echo "当前分支为空,跳过清除 git 缓存"
|
||||
exit 0
|
||||
fi
|
||||
git add -A && git commit -am "clear commit" || true
|
||||
git rm -r --cached .
|
||||
git branch -m ${_branch_name_backups}
|
||||
git checkout --orphan ${_branch_name_current}
|
||||
git add -A && git commit -am "clear commit" || true
|
||||
git push -f origin ${_branch_name_current}
|
||||
|
||||
reinit:
|
||||
desc: "重新初始化 git"
|
||||
cmds:
|
||||
- |
|
||||
_remote_url=$(git remote get-url origin | head -n1)
|
||||
rm -rf .git
|
||||
git init --initial-branch=main
|
||||
touch README.md
|
||||
git add .
|
||||
git commit -m "first commit"
|
||||
git tag -a {{.GIT_TAG_LATEST}} -m "init"
|
||||
git remote add origin ${_remote_url}
|
||||
git config push.autoSetupRemote true
|
||||
- task: clear
|
||||
|
||||
push:
|
||||
desc: "推送代码"
|
||||
cmds:
|
||||
- |
|
||||
git add .
|
||||
git commit -m "- {{.CLI_ARGS}}" || true
|
||||
git push origin main || true
|
||||
|
||||
tag:next:
|
||||
desc: "创建 tag"
|
||||
vars:
|
||||
GIT_TAG_NEXT:
|
||||
sh: |
|
||||
echo {{.GIT_TAG_LATEST}} | awk -F. '{print $1"."$2"."$3+1}'
|
||||
cmds:
|
||||
- echo '__version__ = "{{.GIT_TAG_NEXT}}"' > $(find . -maxdepth 3 -name version.py) || true
|
||||
- task: push
|
||||
- |
|
||||
git tag -a {{.GIT_TAG_NEXT}} -m "- {{.CLI_ARGS}}"
|
||||
git push origin {{.GIT_TAG_NEXT}}
|
||||
|
||||
keys:gen:
|
||||
desc: "设置并使用部署秘钥"
|
||||
cmds:
|
||||
- |
|
||||
_path_keys=".taskfile/git/keys"
|
||||
mkdir -p ${_path_keys}
|
||||
if [[ ! -f "${_path_keys}/id_ed25519" ]]; then
|
||||
ssh-keygen -t ed25519 -N '' -f ${_path_keys}/id_ed25519 -C "{{.GIT_PROJECT}}"
|
||||
fi
|
||||
chmod 600 ${_path_keys}/id_ed25519
|
||||
chmod 644 ${_path_keys}/id_ed25519.pub
|
||||
|
||||
keys:set:
|
||||
desc: "设置部署秘钥"
|
||||
cmds:
|
||||
- |
|
||||
_path_keys=".taskfile/git/keys"
|
||||
git config push.autoSetupRemote true
|
||||
git config core.sshCommand "ssh -i ${_path_keys}/id_ed25519 -o StrictHostKeyChecking=no -F /dev/null"
|
||||
Reference in New Issue
Block a user