feat:添加GitHub workflows与issues template

This commit is contained in:
mason369 2023-04-11 14:10:35 +08:00
parent d7dc03b1bc
commit be3452d8af
16 changed files with 1487 additions and 34 deletions

38
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,38 @@
---
name: 错误报告
about: 创建报告以帮助我们改进
title: ''
labels: ''
assignees: ''
---
**描述错误**
清晰简明地描述错误的内容。
**重现步骤**
重现行为的步骤:
1. 进入“...”
2. 点击“...”
3. 滚动至“...”
4. 查看错误
**期望行为**
清晰简明地描述你期望发生的情况。
**屏幕截图**
如果可用,添加屏幕截图以帮助解释您的问题。
**桌面设备(请填写以下信息):**
- 操作系统:[例如iOS]
- 浏览器:[例如Chrome、Safari]
- 版本:[例如22]
**手机设备(请填写以下信息):**
- 设备:[例如iPhone6]
- 操作系统:[例如iOS8.1]
- 浏览器:[例如默认浏览器、Safari]
- 版本:[例如22]
**其他上下文**
在此处添加有关问题的任何其他上下文。

View File

@ -0,0 +1,20 @@
---
name: 功能请求
about: 为此项目提出建议
title: ''
labels: ''
assignees: ''
---
**您的功能请求是否与问题有关?请描述。**
清晰简明地描述问题是什么。例如:我总是感到沮丧,因为[...]
**描述您想要的解决方案**
清晰简明地描述您希望发生的情况。
**描述您考虑过的替代方案**
清晰简明地描述您考虑过的任何替代解决方案或功能。
**其他上下文**
在此处添加有关功能请求的任何其他上下文或屏幕截图。

10
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
day: saturday
time: "15:00"
timezone: Asia/Shanghai
open-pull-requests-limit: 10

29
.github/workflows/Code-review.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Code Review
on:
pull_request:
branches: [ main ] # 只有针对主分支的 PR 会触发此工作流程
jobs:
code-review:
name: Code Review
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3 # 检查代码库,将其检出到 runner 中
- name: Setup Node.js
uses: actions/setup-node@v3 # 安装 Node.js 运行环境和依赖包
with:
node-version: '12.x'
- name: Install dependencies
run:
npm install
npm i vitepress -D
npm run docs:build
- name: Setup code review
uses: reviewdog/action-eslint@v1 # 使用 reviewdog 工具进行代码审查
with:
github_token: ${{ secrets.GITHUB_TOKEN }} # 授权访问 GitHub API
eslint_level: error # 设置 Eslint 输出级别为 error
# 这个 workflow 文件使用 `pull_request` 事件来监听新的 PR 提交并且只有针对主分支的操作才会触发它。code-review job 使用 `actions/checkout` action 将代码库检出到 runner 中,使用 `actions/setup-node` action 安装 Node.js 运行环境和依赖包,接着通过运行 `npm run lint` 进行代码风格检查和运行 `npm test` 命令来运行测试。最后,在 Setup code review 步骤中,我们使用 `reviewdog/action-eslint` action 来进行代码审查,并将输出级别设置为 `error`。
#
# 需要注意的是,在此示例中,我们使用了 Eslint 工具来进行代码风格检查。如果您的项目使用其他工具或规则,请相应地更改该命令或引用其他 action。

20
.github/workflows/First-interaction.yml vendored Normal file
View File

@ -0,0 +1,20 @@
name: First interaction
on:
issues:
types: [opened]
pull_request_target:
types: [opened]
jobs:
welcome:
runs-on: ubuntu-latest
steps:
- name: Welcome new contributor
uses: actions/first-interaction@v1.1.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: |
你好呀!感谢您打开我们项目的第一期。感谢您的反馈,并期待尽快解决此问题。
pr-message: |
恭喜你打开了你的第一个拉取请求!我们的团队将很快对其进行审核并提供任何必要的反馈。感谢您为我们的项目做出贡献!

58
.github/workflows/auto-merge.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: Auto Merge
on:
pull_request:
types:
- labeled
- unlabeled
- synchronize
- opened
- edited
- ready_for_review
- reopened
- unlocked
pull_request_review:
types:
- submitted
status: { }
# 定义作业 jobs包括检查 PR 合规性和自动合并发布版本的 PR 到 master 分支两个步骤
jobs:
# 检查 PR 合规性
check:
runs-on: ubuntu-latest # 运行环境为最新版 ubuntu
# 步骤,包括代码 checkout、Node.js 环境设置、依赖安装、代码 lint、单元测试等操作
steps:
- name: Checkout code # 步骤名称为Checkout code
uses: actions/checkout@v3 # 使用 actions/checkout 动作
- name: Setup Node.js environment # 步骤名称为Setup Node.js environment
uses: actions/setup-node@v3 # 使用 actions/setup-node 动作安装 Node.js 环境
with:
node-version: '14.x'
- name: Install dependencies # 步骤名称为Install dependencies
run: |# 安装依赖
npm install
npm i vitepress -D
# - name: Lint code # 步骤名称为Lint code
# run: |# 执行 lint 命令
# npm run lint
- name: Run unit tests # 步骤名称为Run unit tests
run: |# 执行单元测试,如果没有测试用例返回 0
npm run test || exit 0
# 合并发布版本的 PR 到 master 分支
auto-merge:
runs-on: ubuntu-latest # 运行环境为最新版 ubuntu
# 步骤,使用 pascalgn/automerge-action 动作实现自动合并发布版本的 PR 到 master 分支,并定义了环境变量 GITHUB_TOKEN 和 MERGE_FILTER_AUTHOR 条件过滤器。
steps:
- name: Automerge # 步骤名称为Automerge
uses: pascalgn/automerge-action@v0.15.6 # 使用 pascalgn/automerge-action 动作进行自动合并 PR 操作
env:
GITHUB_TOKEN: '${{ secrets.RELEASE_TOKEN }}' # 设置 GitHub Token 密钥,从 secrets 中获取
MERGE_LABELS: ''
MERGE_FILTER_AUTHOR: 'LingASDJ' # 只有作者是 mason369 的 PR 才会被自动合并。

55
.github/workflows/build-and-deploy.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: build-and-deploy
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
- name: Install and Build
run: |
npm install
npm i vitepress -D
npm run docs:build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
BRANCH: gh-pages
FOLDER: dist
# 判断工作流是否全部成功,如果有任意一个步骤失败,则发送失败邮件;否则发送成功邮件。
# - name: Send Mail 发送邮件
# if: ${{ !cancelled() && success() }}
# uses: bingblue/send-nodemailer@master
# with:
# user: '${{ secrets.EMAIL_USERNAME }}'
# pass: '${{ secrets.EMAIL_PASSWORD }}'
# host: 'smtp.gmail.com'
# port: 465
# secure: true
# from: '构建与部署 <maosenyang00@gmail.com>'
# to: 1960638223@qq.com,1694181697@qq.com
# subject: 'Success部署成功'
# html: '<h2>构建部署执行完毕!</h2>'
# - name: Send Mail 发送邮件
# if: ${{ !cancelled() && failure() }}
# uses: bingblue/send-nodemailer@master
# with:
# user: '${{ secrets.EMAIL_USERNAME }}'
# pass: '${{ secrets.EMAIL_PASSWORD }}'
# host: 'smtp.gmail.com'
# port: 465
# secure: true
# from: '构建与部署 <maosenyang00@gmail.com>'
# to: 1960638223@qq.com,1694181697@qq.com
# subject: 'Failed部署失败'
# html: '<h2>部署失败请重新检查代码。</h2>'

View File

@ -0,0 +1,17 @@
# 监听 main 分支
name: Contributes
on:
push:
branches:
- main
jobs:
# 任务
contrib-readme-en-job:
runs-on: ubuntu-latest
name: A job to automate contrib in readme
steps:
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@v2.3.6
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}

17
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: Release
on:
push:
branches:
- main
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v3
id: release
with:
token: ${{ secrets.RELEASE_TOKEN }}
release-type: node
package-name: standard-version
changelog-types: '[{"type": "types", "section":"Types", "hidden": false},{"type": "revert", "section":"Reverts", "hidden": false},{"type": "feat", "section": "Features", "hidden": false},{"type": "fix", "section": "Bug Fixes", "hidden": false},{"type": "improvement", "section": "Feature Improvements", "hidden": false},{"type": "docs", "section":"Docs", "hidden": false},{"type": "style", "section":"Styling", "hidden": false},{"type": "refactor", "section":"Code Refactoring", "hidden": false},{"type": "perf", "section":"Performance Improvements", "hidden": false},{"type": "test", "section":"Tests", "hidden": false},{"type": "build", "section":"Build System", "hidden": false},{"type": "ci", "section":"CI", "hidden":false},{"type": "update", "section":"update", "hidden":false},{"type": "Update", "section":"Update", "hidden":false},{"type": "mods", "section":"MODS", "hidden":false},{"type": "mod", "section":"MOD", "hidden":false},{"type": "更新", "section":"更新", "hidden":false},{"type": "del", "section":"Delete", "hidden":false}]'

View File

@ -12,6 +12,11 @@
* RW API Code是一个非官方的第三方RustedWarfare代码网站提供高效和高度学习的服务态度。
* 如果您想合作开发请Fork我们的主要分支机构并申请PullRecust
### 贡献者
<!-- readme: collaborators,contributors -start -->
<!-- readme: collaborators,contributors -end -->
# 开发说明
## 1.前提条件Node.js 18或以上
```文本

1184
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,25 @@
// node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/fonts.css";
// node_modules/vitepress/dist/client/theme-default/index.js
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
// node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/without-fonts.js
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/vars.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/base.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/utils.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/custom-block.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-code.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-doc.css";
import "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
import VPBadge from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPBadge.vue";
import Layout from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/Layout.vue";
import { default as default2 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeHero.vue";
import { default as default3 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
import { default as default4 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
import { default as default5 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
import { default as default6 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPage.vue";
import { default as default7 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
import { default as default8 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
import { default as default9 } from "D:/RTS-Code-V4-Html/node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/base.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
import "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
import VPBadge from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
import Layout from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/Layout.vue";
import { default as default2 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
import { default as default3 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
import { default as default4 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
import { default as default5 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
import { default as default6 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
import { default as default7 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
import { default as default8 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
import { default as default9 } from "D:/repot/RW-API-Code/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
var theme = {
Layout,
enhanceApp: ({ app }) => {

View File

@ -1,6 +1,6 @@
{
"version": 3,
"sources": ["../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js", "../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/without-fonts.js"],
"sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js"],
"sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\n// Note: if we add more optional components here, i.e. components that are not\n// used in the theme by default unless the user imports them, make sure to update\n// the `lazyDefaultThemeComponentsRE` regex in src/node/build/bundle.ts.\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n"],
"mappings": ";AAAA,OAAO;;;ACAP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AAInB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
"names": ["default"]

View File

@ -1,17 +1,17 @@
{
"hash": "85f40fa2",
"browserHash": "3b680fcd",
"hash": "24d4623a",
"browserHash": "3e7593e9",
"optimized": {
"vue": {
"src": "../../../../node_modules/_vue@3.2.47@vue/dist/vue.runtime.esm-bundler.js",
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "01a01595",
"fileHash": "41b04b45",
"needsInterop": false
},
"@theme/index": {
"src": "../../../../node_modules/_vitepress@1.0.0-alpha.65@vitepress/dist/client/theme-default/index.js",
"src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
"file": "@theme_index.js",
"fileHash": "e11163fd",
"fileHash": "d55c8c52",
"needsInterop": false
}
},

View File

@ -1,4 +1,4 @@
// node_modules/_@vue_shared@3.2.47@@vue/shared/dist/shared.esm-bundler.js
// node_modules/@vue/shared/dist/shared.esm-bundler.js
function makeMap(str, expectsLowerCase) {
const map2 = /* @__PURE__ */ Object.create(null);
const list = str.split(",");
@ -242,7 +242,7 @@ var getGlobalThis = () => {
return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
};
// node_modules/_@vue_reactivity@3.2.47@@vue/reactivity/dist/reactivity.esm-bundler.js
// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
function warn(msg, ...args) {
console.warn(`[Vue warn] ${msg}`, ...args);
}
@ -1349,7 +1349,7 @@ var _a;
var tick = Promise.resolve();
_a = "__v_isReadonly";
// node_modules/_@vue_runtime-core@3.2.47@@vue/runtime-core/dist/runtime-core.esm-bundler.js
// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
var stack = [];
function pushWarningContext(vnode) {
stack.push(vnode);
@ -7934,7 +7934,7 @@ var ssrUtils = _ssrUtils;
var resolveFilter = null;
var compatUtils = null;
// node_modules/_@vue_runtime-dom@3.2.47@@vue/runtime-dom/dist/runtime-dom.esm-bundler.js
// node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js
var svgNS = "http://www.w3.org/2000/svg";
var doc = typeof document !== "undefined" ? document : null;
var templateContainer = doc && doc.createElement("template");
@ -9348,7 +9348,7 @@ var initDirectivesForSSR = () => {
}
};
// node_modules/_vue@3.2.47@vue/dist/vue.runtime.esm-bundler.js
// node_modules/vue/dist/vue.runtime.esm-bundler.js
function initDev() {
{
initCustomFormatter();

File diff suppressed because one or more lines are too long