惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
V
Vulnerabilities – Threatpost
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
N
News and Events Feed by Topic
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
博客园 - 叶小钗
B
Blog
Vercel News
Vercel News
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
F
Fortinet All Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
Engineering at Meta
Engineering at Meta
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes
L
LangChain Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Check Point Blog
A
About on SuperTechFans
W
WeLiveSecurity
The GitHub Blog
The GitHub Blog

Mereith's Blog

记一次代理转发问题的排查与解决 PVE DataCenter Manager 端口号跳转错误修复 k8s + jenkins + gitlab 触发器 【转载】没有编程生产力这样的东西 【后续】居然被 ddos 了 居然被 ddos 了 openclash 开启后端口转发失效 nextjs 启动时执行代码 买了太多VPS不知道干什么,干脆做个网站 juhost Level-1 测评 VMISS CN - Hong Kong VMISS JP - Tokyo - BGP 测评 VMISS CN - Hong Kong - BGP HomeLab 的终点是 最近在做的事情 因为选择艰难症,自己写了一套开源博客系统 手撸一个nodejs分布式爬虫,还要可视化 HomeLab 分享 我的个人工作流——开源项目推荐 动手写一个超简单的编译器 safari 插件开发 Safari Extensions Preferences 按钮无响应 设置移动端软键盘回车按钮文案 nginx proxy manager 非标准端口反代 Host 不对 监控 k8s ingress 自动添加域名 DNS 解析 使用 ingress 注解给 traefik ingress 添加中间件 使用流水线功能为文章添加固定结尾 为 VanBlog 添加一个小挂件 基于React/umi/egg自建博客系统 如何正确停止 NodeJS 子进程 k8s pod 替换策略 让威联通、pve 共享 ups 实现断电关机 Ubuntu 配置 samba 混合云部署k3s集群(基于wireguard) pve 无法启动 grub lvmid not found error antd Password 关闭自动补全 code-server node not found pve no quorum 错误 || 无法登录 pve Cannot Initiate CMAP Service pve 节点删不干净 PVE 指针(鼠标)漂移 pve 重启网络 Proxmox VE 直通显卡 ProxmoxVE (PVE) 7.0 换源升级 用 SOCAT 端口转发 git 无法 pull 仓库refusing to merge unrelated histories 用 vuepress 搭建私人知识库 js 防抖节流中的 this 与箭头函数 Dockerfile 给 Ubuntu 换源 docker 内访问宿主机 docker 删除无用镜像 css 实现展开收起动画 nginx 301 问题 Node.js 流式编程 关于我重写了三次博客项目这件事 css flex 布局超出隐藏 css 隐藏滚动条 css 文字超出隐藏并显示省略号 css 填充 svg 颜色 css 黑白滤镜 nginx 反代丢端口 docker-compose 部署 matomo 分析系统 基于 strapi 开发应用 strapi 关闭 Content Security Policy nginx 反代 rewite url ssh 通过跳板机访问目标机器 Cent os 7 安装 zsh 5.6 以上版本 win11 任务栏不合并 bash 数组操作 vim 修改文件格式为 unix k8s 集群 control-plane-endpoint 主机名 git https 保存密码 Bash 判断命令存在 & 重定向 python 导出项目依赖 cent os 7 安装 gcc 版本 9 System limit for number of file watchers reached cent os 7 安装 git 2.x css 下划线中间向两边滑动效果 linux 挂载 SMB/CIFS linux 清除 ACL windows 命令行安装 inf 驱动 css 文字不可选择 iperf3 网络测速工具 cent os 换源 k8s 1.21.3 从 docker 迁移到 containerd 解决Nginx安装错误:No package nginx available 问题 从pve的硬盘里导出数据 Errors were encountered while processing adguardhome配合clash pve中使用LXC容器安装OMV LXC直通硬盘 nginx反代模版 docker常用开启容器的命令 PVE的LXC容器中安装Docker ProxmoxVE系统分区相关 基于clash搭建旁路网关 Portainer添加节点 linux声卡设置及录音音 OpenWrt用VLAN PVE换源及去掉订阅提示和改端口 adguardhome踩坑
Tagger - 让版本标签管理更简单
wanglu@mereith.com (mereith) · 2024-11-07 · via Mereith's Blog

请注意,本文编写于 575 天前,最后修改于 575 天前,其中某些信息可能已经过时。

平时开发经常需要根据特定的 tag 来触发 github/gitlab/jenkins 流水线,但是版本管理比较麻烦,手动找 tag 经常搞得很随意,也不想每一个项目都配置一遍脚本,于是就写了个通用的工具(下面的文章主体是 AI 根据项目 README 生成的 👍)。

项目地址: https://github.com/Mereithhh/tagger

Why

在日常的开发工作中,版本管理是一个不可或缺的环节。特别是在使用 CI/CD 流水线的项目中,我们经常需要通过 Git 标签来触发部署流程。但是手动管理版本标签往往会遇到以下问题:

  1. 容易忘记打标签,导致部署流程中断
  2. 手动输入版本号容易出错
  3. 团队成员使用不同的版本号格式,不够统一
  4. 在多个项目间切换时,需要记住每个项目的最新版本号

正是为了解决这些痛点,我开发了 Tagger 这个小工具。它能够自动查找仓库中的最新标签,并按照语义化版本规范(Semantic Versioning)自动递增版本号。

Tagger 的主要特性

  • 自动识别最新版本标签
  • 支持语义化版本的三个层级:主版本、次版本和修订版本
  • 可自定义标签前缀和后缀
  • 支持设置默认配置
  • 跨平台支持(Linux、macOS 和 Windows)

快速上手

安装

在 Linux 或 macOS 上,只需要运行以下命令:

curl -s https://get.mereith.com/tagger/tagger.sh | sh

Windows 用户可以使用 PowerShell 脚本:

Invoke-WebRequest -Uri https://get.mereith.com/tagger/tagger.ps1 -OutFile tagger.ps1; .\tagger.ps1

基本使用

最简单的用法是直接运行 tagger 命令,它会自动将修订版本号加一:

# 如果最新标签是 v0.0.1,运行后会生成 v0.0.2 tagger

如果你需要升级次版本或主版本:

# 升级次版本:v0.0.1 -> v0.1.0 tagger minor # 升级主版本:v0.0.1 -> v1.0.0 tagger major

自定义标签格式

有时候我们需要在版本号前后添加特定的标识,比如:

# 添加环境标识:prod-0.0.1 tagger -p prod- # 添加阶段标识:v0.0.1-beta tagger -s -beta # 组合使用:rc-0.0.1-alpha tagger -p rc- -s -alpha

设置默认值

如果你的项目总是使用相同的前缀或后缀,可以设置默认值:

# 设置默认前缀 tagger set-default-prefix release- # 设置默认后缀 tagger set-default-suffix -stable

设置后,直接运行 tagger 就会使用这些默认值。

与 CI/CD 集成

Tagger 最适合与 CI/CD 流水线配合使用。例如,你可以用来触发流水线。

也你可以在代码合并到主分支后自动运行 Tagger 来创建新的版本标签,进而触发部署流程。

总结

Tagger 虽然是一个简单的工具,但它能够有效地解决版本标签管理的痛点。通过自动化和标准化的方式管理版本标签,不仅可以提高工作效率,还能减少人为错误。特别是在现代 CI/CD 环境中,它能够很好地配合自动化流程,让版本管理变得更加轻松。

希望 Tagger 能够帮助到你的开发工作!如果你有任何建议或问题,欢迎在 GitHub 上提出 issue。