目录
renovate[bot]

chore: Configure Renovate (#16)

Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


Detected Package Files

  • .github/workflows/node-release-no-provenance.yml (github-actions)
  • .github/workflows/node-release.yml (github-actions)
  • .github/workflows/node-test-mysql.yml (github-actions)
  • .github/workflows/node-test-parallel.yml (github-actions)
  • .github/workflows/node-test.yml (github-actions)
  • .github/workflows/npm-release.yml (github-actions)
  • scripts/npm-release/package.json (npm)
  • scripts/release/package.json (npm)

Configuration Summary

Based on the default config’s presets, Renovate will:

  • Start dependency updates only once this onboarding PR is merged
  • Hopefully safe environment variables to allow users to configure.
  • Show all Merge Confidence badges for pull requests.
  • Enable Renovate Dependency Dashboard creation.
  • Use semantic commit type fix for dependencies and chore for all others if semantic commits are in use.
  • Ignore node_modules, bower_components, vendor and various test/tests (except for nuget) directories.
    • Group known monorepo packages together.
    • Use curated list of recommended non-monorepo package groupings.
  • Show only the Age and Confidence Merge Confidence badges for pull requests.
    • Apply crowd-sourced package replacement rules.
    • Apply crowd-sourced workarounds for known problems with packages.
  • Ensure that every dependency pinned by digest and sourced from GitHub.com contains a link to the commit-to-commit diff
    • Correctly link to the source code for golang.org/x packages
    • Link to pkg.go.dev/… for golang.org/x packages’ title

🔡 Do you want to change how Renovate upgrades your dependencies? Add your custom config to renovate.json in this branch. Renovate will update the Pull Request description the next time it runs.


What to Expect

With your current configuration, Renovate will create 12 Pull Requests:

fix(deps): update semantic-release monorepo
chore(deps): update actions/checkout action to v6
  • Schedule: [“at any time”]
  • Branch name: renovate/actions-checkout-6.x
  • Merge into: master
  • Upgrade actions/checkout to v6
chore(deps): update actions/github-script action to v8
  • Schedule: [“at any time”]
  • Branch name: renovate/actions-github-script-8.x
  • Merge into: master
  • Upgrade actions/github-script to v8
chore(deps): update actions/setup-node action to v6
  • Schedule: [“at any time”]
  • Branch name: renovate/actions-setup-node-6.x
  • Merge into: master
  • Upgrade actions/setup-node to v6
chore(deps): update codecov/codecov-action action to v5
  • Schedule: [“at any time”]
  • Branch name: renovate/codecov-codecov-action-5.x
  • Merge into: master
  • Upgrade codecov/codecov-action to v5
chore(deps): update dependency @​types/node to v24
  • Schedule: [“at any time”]
  • Branch name: renovate/node-24.x
  • Merge into: master
  • Upgrade @types/node to ^24.0.0
chore(deps): update dependency @​types/semantic-release to v21
  • Schedule: [“at any time”]
  • Branch name: renovate/semantic-release-21.x
  • Merge into: master
  • Upgrade @​types/semantic-release to ^21.0.0
fix(deps): update dependency @​actions/core to v2
  • Schedule: [“at any time”]
  • Branch name: renovate/actions-core-2.x
  • Merge into: master
  • Upgrade @actions/core to ^2.0.0
fix(deps): update dependency @​actions/exec to v2
  • Schedule: [“at any time”]
  • Branch name: renovate/actions-exec-2.x
  • Merge into: master
  • Upgrade @actions/exec to ^2.0.0
fix(deps): update dependency conventional-changelog-conventionalcommits to v9
fix(deps): update dependency undici to v7
  • Schedule: [“at any time”]
  • Branch name: renovate/undici-7.x
  • Merge into: master
  • Upgrade undici to ^7.0.0
fix(deps): update semantic-release monorepo (major)

🚸 Branch creation will be limited to maximum 2 per hour, so it doesn’t swamp any CI resources or overwhelm the project. See docs for prhourlylimit for details.


❓ Got questions? Check out Renovate’s Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


This PR was generated by Mend Renovate. View the repository job log.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

2个月前75次提交

node-modules/github-actions

为开源项目提供常见的可复用的 GitHub Actions Workflow

功能列表

  • 单元测试
  • 自动发包
  • 自动初始化仓库配置

单元测试

自动跑 Lint 和 Cov 单测

参考示例:https://github.com/artus-cli/examples/actions

  • 配置 npm scripts
{
  "name": "your-project",
  "scripts": {
    "lint": "eslint .",
    "test": "mocha",
    "ci": "c8 npm test"
  }
}
  • 创建 .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [ master, main ]
  pull_request:
    branches: [ master, main, next, beta, '*.x' ]

jobs:
  Job:
    name: Node.js
    uses: node-modules/github-actions/.github/workflows/node-test.yml@master
    # 支持以下自定义配置,一般用默认值即可
    # with:
    #   os: 'ubuntu-latest, macos-latest, windows-latest'
    #   version: '18, 20, 22'
    #   test: 'npm run ci'
    # secrets:
    #   CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

开启 MySQL 和 Redis 服务依赖

name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  Job:
    name: Node.js
    uses: node-modules/github-actions/.github/workflows/node-test-mysql.yml@master
    # with:
    #   os: 'ubuntu-latest'
    #   version: '18, 20, 22'
    # secrets:
    #   CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

开启并行测试

name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  Job:
    name: Node.js
    uses: node-modules/github-actions/.github/workflows/node-test-parallel.yml@master
    # with:
    #   os: 'ubuntu-latest'
    #   version: '18, 20, 22'
    #   parallel: 3
    # secrets:
    #   CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

发布 NPM 包

使用 semantic-release 自动发布 NPM 包。

功能详情

  • 根据 Git 日志自动计算版本号
  • 自动生成 ChangeLog 文件
  • 自动创建 GitHub Release 说明
  • 自动打 Tag 标签
  • 自动发布到 Registry,支持 NPM 和 GitHub
  • 自动触发 CNPM 同步

支持合并到主干分支后自动发布,也支持手动发布。

手动发布方式:访问仓库的 Actions 页面,左侧选择 Release Workflow,点击右侧的 Run Workflow 即可。

版本号规则

根据 Commit Message 自动计算下一个版本号:

  • major 大版本:BREAKING CHANGE:,必须加到 commit body 里面而不是第一行标题,否则不生效
perf(pencil): remove graphiteWidth option

BREAKING CHANGE: The graphiteWidth option has been removed.
The default graphite width of 10mm is always used for performance reason.
feat: support WebStream

BREAKING CHANGE: Drop Node.js < 18 support

注意:

  • 不支持发布 0.x 版本,master 首次发布将是 1.0.0 版本
  • 如果你不期望直接发布,请在 beta 分支提交代码运行,将发布 1.0.0-beta.1 版本
  • 多版本发布实践参见 semantic-release 文档

配置方式

  • 创建 GitHub Token

    • 因为生成的 CHANGELOG.md 和 package.json 需回写 GitHub,而默认的 GITHUB_TOKEN 没有该权限。如会被保护分支规则拦截。
    • 因此需要创建一个新的 Token,参见文档
  • 配置 Token

    • 在项目或组织维度配置 GIT_TOKEN
    • 参见文档
  • 创建 .github/workflows/release.yml

name: Release
on:
  # 合并后自动发布
  push:
    branches: [ master, main, next, beta, '*.x' ]
  # 手动发布
  # workflow_dispatch: {}

permissions:
  contents: write
  deployments: write
  issues: write
  pull-requests: write
  id-token: write

jobs:
  release:
    name: NPM
    uses: node-modules/github-actions/.github/workflows/npm-release.yml@master
    secrets:
      GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
    # with:
      # checkTest: false
      # dryRun: true

发布到 GitHub Package

修改 package.json

{
  "publishConfig": {
    "access": "public",
    "registry": "https://npm.pkg.github.com"
  },
}
关于
134.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号