From 1dcb0ce6a7123e67f1e4da29b97363ce8102bcf5 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sun, 1 Mar 2026 22:27:01 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 207 ++++++++++++++++++ .gitignore | 1 - .../balanced-match/.github/FUNDING.yml | 2 + .../commitizen/.github/workflows/release.yml | 20 ++ node_modules/fast-uri/.github/.stale.yml | 21 ++ node_modules/fast-uri/.github/dependabot.yml | 13 ++ .../fast-uri/.github/tests_checker.yml | 8 + .../fast-uri/.github/workflows/ci.yml | 101 +++++++++ .../.github/workflows/package-manager-ci.yml | 24 ++ .../json-schema-traverse/.github/FUNDING.yml | 2 + .../.github/workflows/build.yml | 28 +++ .../.github/workflows/publish.yml | 27 +++ node_modules/minimist/.github/FUNDING.yml | 12 + 13 files changed, 465 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build.yml create mode 100644 node_modules/balanced-match/.github/FUNDING.yml create mode 100644 node_modules/commitizen/.github/workflows/release.yml create mode 100644 node_modules/fast-uri/.github/.stale.yml create mode 100644 node_modules/fast-uri/.github/dependabot.yml create mode 100644 node_modules/fast-uri/.github/tests_checker.yml create mode 100644 node_modules/fast-uri/.github/workflows/ci.yml create mode 100644 node_modules/fast-uri/.github/workflows/package-manager-ci.yml create mode 100644 node_modules/json-schema-traverse/.github/FUNDING.yml create mode 100644 node_modules/json-schema-traverse/.github/workflows/build.yml create mode 100644 node_modules/json-schema-traverse/.github/workflows/publish.yml create mode 100644 node_modules/minimist/.github/FUNDING.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c05a066 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,207 @@ +name: Build and Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + + - name: Make gradlew executable + run: chmod +x ./gradlew + + - name: Build with Gradle + run: ./gradlew build + + - name: Prepare release files + run: | + mkdir -p release-files + cp build/libs/*.jar release-files/ 2>/dev/null || true + echo "准备发布的文件:" + ls -la release-files/ + + - name: Upload release artifacts + uses: actions/upload-artifact@v4 + with: + name: release-files + path: release-files/ + retention-days: 7 + + release: + runs-on: ubuntu-latest + needs: build + if: startsWith(github.ref, 'refs/tags/v') + + steps: + - name: Checkout with full history + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: release-files + path: ./dist + + - name: Generate CZ-compliant changelog + id: generate_changelog + run: | + CURRENT_TAG="${{ github.ref_name }}" + PREV_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --skip=1 --max-count=1) 2>/dev/null || echo "") + + # 创建临时文件 + TEMP_FILE=$(mktemp) + + echo "# 🚀 版本 $CURRENT_TAG 发布" > $TEMP_FILE + echo "" >> $TEMP_FILE + echo "## 📋 变更摘要" >> $TEMP_FILE + echo "" >> $TEMP_FILE + + if [ -z "$PREV_TAG" ]; then + echo "### 初始版本发布" >> $TEMP_FILE + echo "" >> $TEMP_FILE + echo "这是项目的第一个正式版本。" >> $TEMP_FILE + echo "" >> $TEMP_FILE + # 获取所有提交并按类型分组 + git log --pretty=format:"%s" --reverse | while read -r line; do + echo "- $line" >> $TEMP_FILE + done + else + echo "### 从 $PREV_TAG 到 $CURRENT_TAG 的变更" >> $TEMP_FILE + echo "" >> $TEMP_FILE + + # 定义符合CZ规范的提交类型映射 + declare -A commit_types + commit_types=( + ["✨ 新功能"]="^(feat|feature)(\(.*\))?:" + ["🐛 修复"]="^(fix|bugfix)(\(.*\))?:" + ["📝 文档"]="^(docs|documentation)(\(.*\))?:" + ["🎨 样式"]="^(style)(\(.*\))?:" + ["🔨 重构"]="^(refactor)(\(.*\))?:" + ["⚡️ 性能"]="^(perf|performance)(\(.*\))?:" + ["✅ 测试"]="^(test)(\(.*\))?:" + ["🔧 构建"]="^(build)(\(.*\))?:" + ["👷 CI"]="^(ci)(\(.*\))?:" + ["📦 依赖"]="^(chore|deps)(\(.*\))?:" + ["⏪ 回退"]="^(revert)(\(.*\))?:" + ) + + # 获取所有提交 + COMMITS=$(git log --pretty=format:"%s" $PREV_TAG..HEAD) + + # 处理每种类型的提交 + for type_name in "${!commit_types[@]}"; do + pattern="${commit_types[$type_name]}" + + # 提取匹配的提交 + matched_commits=$(echo "$COMMITS" | grep -E "$pattern" || true) + + if [ -n "$matched_commits" ]; then + echo "#### $type_name" >> $TEMP_FILE + echo "" >> $TEMP_FILE + + # 处理每条提交,提取scope和subject + echo "$matched_commits" | while read -r commit; do + # 解析scope和subject + if [[ $commit =~ ^[a-z]+\((.*)\):\ (.*) ]]; then + scope="${BASH_REMATCH[1]}" + subject="${BASH_REMATCH[2]}" + echo "- **$scope**: $subject" >> $TEMP_FILE + elif [[ $commit =~ ^[a-z]+:\ (.*) ]]; then + subject="${BASH_REMATCH[1]}" + echo "- $subject" >> $TEMP_FILE + else + echo "- $commit" >> $TEMP_FILE + fi + done + echo "" >> $TEMP_FILE + fi + done + + # 处理破坏性变更(BREAKING CHANGE) + breaking_changes=$(git log --pretty=format:"%b" $PREV_TAG..HEAD | grep -i "BREAKING CHANGE" || true) + if [ -n "$breaking_changes" ]; then + echo "#### ⚠️ 破坏性变更" >> $TEMP_FILE + echo "" >> $TEMP_FILE + echo "$breaking_changes" | while read -r line; do + echo "- $line" >> $TEMP_FILE + done + echo "" >> $TEMP_FILE + fi + + # 处理未分类的提交 + uncategorized="$COMMITS" + for pattern in "${commit_types[@]}"; do + uncategorized=$(echo "$uncategorized" | grep -v -E "$pattern" || true) + done + + if [ -n "$uncategorized" ]; then + echo "#### 📝 其他更改" >> $TEMP_FILE + echo "" >> $TEMP_FILE + echo "$uncategorized" | while read -r commit; do + echo "- $commit" >> $TEMP_FILE + done + echo "" >> $TEMP_FILE + fi + fi + + echo "## 📊 统计信息" >> $TEMP_FILE + echo "" >> $TEMP_FILE + + if [ -z "$PREV_TAG" ]; then + TOTAL_COMMITS=$(git rev-list --count HEAD) + echo "- 总提交数: $TOTAL_COMMITS" >> $TEMP_FILE + echo "- 首次发布" >> $TEMP_FILE + else + COMMITS=$(git rev-list --count $PREV_TAG..HEAD) + echo "- 本次发布提交数: $COMMITS" >> $TEMP_FILE + echo "- 上一个版本: $PREV_TAG" >> $TEMP_FILE + fi + + echo "- 发布日期: $(date '+%Y年%m月%d日')" >> $TEMP_FILE + echo "- 当前版本: $CURRENT_TAG" >> $TEMP_FILE + echo "" >> $TEMP_FILE + echo "---" >> $TEMP_FILE + echo "" >> $TEMP_FILE + echo "### 📜 详细提交历史" >> $TEMP_FILE + echo "" >> $TEMP_FILE + + # 显示所有提交的详细列表,包含scope信息 + if [ -z "$PREV_TAG" ]; then + git log --pretty=format:"- **%h** %s - %an (%ad)" --date=short --reverse | head -100 >> $TEMP_FILE + else + git log --pretty=format:"- **%h** %s - %an (%ad)" --date=short $PREV_TAG..HEAD | head -100 >> $TEMP_FILE + fi + + # 将文件内容输出到变量 + CHANGELOG_CONTENT=$(cat $TEMP_FILE) + echo "changelog<> $GITHUB_OUTPUT + echo "$CHANGELOG_CONTENT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + - name: Create Release + uses: ncipollo/release-action@v1 + with: + artifacts: "dist/*.jar" + tag: ${{ github.ref_name }} + name: "版本 ${{ github.ref_name }}" + body: ${{ steps.generate_changelog.outputs.changelog }} + draft: false + prerelease: false \ No newline at end of file diff --git a/.gitignore b/.gitignore index 99b91f9..60f5c25 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .idea .gradle -.github build run run-data \ No newline at end of file diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000..cea8b16 --- /dev/null +++ b/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/node_modules/commitizen/.github/workflows/release.yml b/node_modules/commitizen/.github/workflows/release.yml new file mode 100644 index 0000000..e03b06d --- /dev/null +++ b/node_modules/commitizen/.github/workflows/release.yml @@ -0,0 +1,20 @@ +name: Release +"on": + push: + branches: + - master +jobs: + release: + name: release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + cache: npm + node-version: lts/* + - run: npm clean-install + - run: npx semantic-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} diff --git a/node_modules/fast-uri/.github/.stale.yml b/node_modules/fast-uri/.github/.stale.yml new file mode 100644 index 0000000..2ee1269 --- /dev/null +++ b/node_modules/fast-uri/.github/.stale.yml @@ -0,0 +1,21 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 15 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - "discussion" + - "feature request" + - "bug" + - "help wanted" + - "plugin suggestion" + - "good first issue" +# Label to use when marking an issue as stale +staleLabel: stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false \ No newline at end of file diff --git a/node_modules/fast-uri/.github/dependabot.yml b/node_modules/fast-uri/.github/dependabot.yml new file mode 100644 index 0000000..35d66ca --- /dev/null +++ b/node_modules/fast-uri/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + open-pull-requests-limit: 10 + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "monthly" + open-pull-requests-limit: 10 diff --git a/node_modules/fast-uri/.github/tests_checker.yml b/node_modules/fast-uri/.github/tests_checker.yml new file mode 100644 index 0000000..769469b --- /dev/null +++ b/node_modules/fast-uri/.github/tests_checker.yml @@ -0,0 +1,8 @@ +comment: | + Hello! Thank you for contributing! + It appears that you have changed the code, but the tests that verify your change are missing. Could you please add them? +fileExtensions: + - '.ts' + - '.js' + +testDir: 'test' \ No newline at end of file diff --git a/node_modules/fast-uri/.github/workflows/ci.yml b/node_modules/fast-uri/.github/workflows/ci.yml new file mode 100644 index 0000000..8871787 --- /dev/null +++ b/node_modules/fast-uri/.github/workflows/ci.yml @@ -0,0 +1,101 @@ +name: CI + +on: + push: + branches: + - main + - next + - 'v*' + paths-ignore: + - 'docs/**' + - '*.md' + pull_request: + paths-ignore: + - 'docs/**' + - '*.md' + +permissions: + contents: read + +jobs: + test-regression-check-node10: + name: Test compatibility with Node.js 10 + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - uses: actions/setup-node@v4 + with: + node-version: '10' + cache: 'npm' + cache-dependency-path: package.json + check-latest: true + + - name: Install + run: | + npm install --ignore-scripts + + - name: Copy project as fast-uri to node_node_modules + run: | + rm -rf ./node_modules/fast-uri/lib && + rm -rf ./node_modules/fast-uri/index.js && + cp -r ./lib ./node_modules/fast-uri/lib && + cp ./index.js ./node_modules/fast-uri/index.js + + - name: Run tests + run: | + npm run test:unit + env: + NODE_OPTIONS: no-network-family-autoselection + + test-browser: + name: Test browser compatibility + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] + browser: ['chromium', 'firefox', 'webkit'] + exclude: + - os: ubuntu-latest + browser: webkit + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - uses: actions/setup-node@v4 + with: + node-version: '24' + cache: 'npm' + cache-dependency-path: package.json + check-latest: true + + - name: Install dependencies + run: | + npm install --ignore-scripts + + - if: ${{ matrix.os == 'windows-latest' }} + run: npx playwright install winldd + + - name: Run browser tests + run: | + npm run test:browser:${{ matrix.browser }} + + test: + needs: + - test-regression-check-node10 + permissions: + contents: write + pull-requests: write + uses: fastify/workflows/.github/workflows/plugins-ci.yml@v5 + with: + license-check: true + lint: true + node-versions: '["16", "18", "20", "22", "24"]' diff --git a/node_modules/fast-uri/.github/workflows/package-manager-ci.yml b/node_modules/fast-uri/.github/workflows/package-manager-ci.yml new file mode 100644 index 0000000..c38d060 --- /dev/null +++ b/node_modules/fast-uri/.github/workflows/package-manager-ci.yml @@ -0,0 +1,24 @@ +name: package-manager-ci + +on: + push: + branches: + - main + - next + - 'v*' + paths-ignore: + - 'docs/**' + - '*.md' + pull_request: + paths-ignore: + - 'docs/**' + - '*.md' + +permissions: + contents: read + +jobs: + test: + permissions: + contents: read + uses: fastify/workflows/.github/workflows/plugins-ci-package-manager.yml@v5 diff --git a/node_modules/json-schema-traverse/.github/FUNDING.yml b/node_modules/json-schema-traverse/.github/FUNDING.yml new file mode 100644 index 0000000..44f80f4 --- /dev/null +++ b/node_modules/json-schema-traverse/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: epoberezkin +tidelift: "npm/json-schema-traverse" diff --git a/node_modules/json-schema-traverse/.github/workflows/build.yml b/node_modules/json-schema-traverse/.github/workflows/build.yml new file mode 100644 index 0000000..f8ef5ba --- /dev/null +++ b/node_modules/json-schema-traverse/.github/workflows/build.yml @@ -0,0 +1,28 @@ +name: build + +on: + push: + branches: [master] + pull_request: + branches: ["*"] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 14.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm test + - name: Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/json-schema-traverse/.github/workflows/publish.yml b/node_modules/json-schema-traverse/.github/workflows/publish.yml new file mode 100644 index 0000000..924825b --- /dev/null +++ b/node_modules/json-schema-traverse/.github/workflows/publish.yml @@ -0,0 +1,27 @@ +name: publish + +on: + release: + types: [published] + +jobs: + publish-npm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 14 + registry-url: https://registry.npmjs.org/ + - run: npm install + - run: npm test + - name: Publish beta version to npm + if: "github.event.release.prerelease" + run: npm publish --tag beta + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + - name: Publish to npm + if: "!github.event.release.prerelease" + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/node_modules/minimist/.github/FUNDING.yml b/node_modules/minimist/.github/FUNDING.yml new file mode 100644 index 0000000..a936622 --- /dev/null +++ b/node_modules/minimist/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/minimist +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']