Build and Release #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write # Required for creating releases and uploading assets | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Build toolkit web version | |
| run: bun run toolkit:build | |
| - name: Build toolkit for extension | |
| run: bun run toolkit:build:extension | |
| - name: Build Chrome extension | |
| run: bun run ext:build:chrome | |
| - name: Build Firefox extension (MV3) | |
| run: bun run ext:build:firefox | |
| - name: Create Chrome extension zip | |
| run: | | |
| cd packages/extension | |
| bun run zip:chrome | |
| - name: Create Firefox extension zip | |
| run: | | |
| cd packages/extension | |
| bun run zip:firefox | |
| - name: Create web toolkit archive | |
| run: | | |
| cd packages/toolkit/dist | |
| tar -czf ../../../json-toolkit-web.tar.gz * | |
| - name: Get version from tag | |
| id: get_version | |
| run: | | |
| if [[ $GITHUB_REF == refs/tags/* ]]; then | |
| echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
| else | |
| echo "VERSION=dev-$(date +%Y%m%d-%H%M%S)" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Prepare extension files for release | |
| run: | | |
| echo "Preparing extension files..." | |
| # List all files in extension output directory for debugging | |
| echo "Extension output directory contents:" | |
| ls -la packages/extension/.output/ | |
| # Find and rename extension zip files | |
| CHROME_ZIP=$(find packages/extension/.output -name "*chrome*.zip" | head -1) | |
| FIREFOX_ZIP=$(find packages/extension/.output -name "*firefox*.zip" -not -name "*sources*" | head -1) | |
| if [ -n "$CHROME_ZIP" ] && [ -f "$CHROME_ZIP" ]; then | |
| cp "$CHROME_ZIP" "./json-toolkit-chrome.zip" | |
| echo "✓ Chrome extension: $(basename "$CHROME_ZIP") → json-toolkit-chrome.zip" | |
| else | |
| echo "❌ Chrome extension zip not found" | |
| exit 1 | |
| fi | |
| if [ -n "$FIREFOX_ZIP" ] && [ -f "$FIREFOX_ZIP" ]; then | |
| cp "$FIREFOX_ZIP" "./json-toolkit-firefox.zip" | |
| echo "✓ Firefox extension: $(basename "$FIREFOX_ZIP") → json-toolkit-firefox.zip" | |
| else | |
| echo "❌ Firefox extension zip not found" | |
| exit 1 | |
| fi | |
| # Verify web toolkit archive exists | |
| if [ ! -f "json-toolkit-web.tar.gz" ]; then | |
| echo "❌ Web toolkit archive not found" | |
| exit 1 | |
| fi | |
| echo "✓ All files prepared for release" | |
| - name: Create GitHub Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v2 | |
| if: github.ref_type == 'tag' | |
| with: | |
| tag_name: ${{ steps.get_version.outputs.VERSION }} | |
| name: JSON Toolkit ${{ steps.get_version.outputs.VERSION }} | |
| draft: true | |
| prerelease: false | |
| body: | | |
| ## JSON Toolkit ${{ steps.get_version.outputs.VERSION }} | |
| ### 📦 下载说明 | |
| - **Chrome 扩展**: 下载 `json-toolkit-chrome.zip`,解压后在 Chrome 扩展管理页面加载 | |
| - **Firefox 扩展**: 下载 `json-toolkit-firefox.zip`,解压后在 Firefox 插件管理页面安装 | |
| - **Web 版本**: 下载 `json-toolkit-web.tar.gz`,解压后部署到 Web 服务器 | |
| ### ✨ 功能特点 | |
| - 🔧 智能 JSON 编辑器 - 多视图模式,语法高亮,格式化工具 | |
| - 🔐 JWT 令牌解码器 - 完整解析,签名验证,到期时间检查 | |
| - ⚡ 代码生成器 - 多语言支持,类型安全,即时预览 | |
| - 🔄 JSON 差异对比 - 并排对比,高亮显示差异 | |
| - 🎲 智能 Mock 数据生成器 - 智能字段识别,丰富数据类型 | |
| - 🔧 URL 参数转换器 - 双向转换,编码处理 | |
| - 🌐 浏览器集成 - 右键上下文菜单,智能 JSON 修复 | |
| ### 🚀 安装指南 | |
| #### Chrome/Edge 安装 | |
| 1. 下载 `json-toolkit-chrome.zip` | |
| 2. 打开 Chrome 扩展管理页面 (`chrome://extensions/`) | |
| 3. 开启右上角的 "开发者模式" | |
| 4. 点击 "加载已解压的扩展程序",选择解压后的文件夹 | |
| #### Firefox 安装 | |
| 1. 下载 `json-toolkit-firefox.zip` | |
| 2. 打开 Firefox 插件管理页面 (`about:addons`) | |
| 3. 点击设置图标,选择 "从文件安装插件" | |
| 4. 选择下载的 `.zip` 文件 | |
| #### Web 版本部署 | |
| 1. 下载 `json-toolkit-web.tar.gz` | |
| 2. 解压到你的 Web 服务器目录 | |
| 3. 访问 `index.html` 即可使用 | |
| --- | |
| **完整更新日志和技术细节请查看项目 README** | |
| files: | | |
| json-toolkit-chrome.zip | |
| json-toolkit-firefox.zip | |
| json-toolkit-web.tar.gz | |