Compare commits

...

5 Commits

Author SHA1 Message Date
3f5dfa640a 黑暗模式下适配
All checks were successful
CI Pipeline / build (push) Successful in 4m32s
2025-09-13 14:52:00 +08:00
05d28f977f 导航栏优化 2025-09-13 14:24:32 +08:00
01fcc938a4 完成footer部分
Some checks failed
CI Pipeline / build (push) Failing after 3m44s
2025-09-12 10:43:05 +08:00
b3b125bf43 添加simulator
All checks were successful
CI Pipeline / build (push) Successful in 4m37s
2025-09-11 15:21:31 +08:00
aca36f4e99 添加simulator部分 2025-09-11 15:19:28 +08:00
23 changed files with 257 additions and 136 deletions

View File

@@ -19,18 +19,11 @@ export default defineConfig({
}, },
nav: [ nav: [
// { text: '文档', link: '/document/index' }, // { text: '文档', link: '/document/index' },
{ //
text: '文档', { text: 'Devstar', link: '/devstar' },
items: [
{
text: 'Devstar介绍文档',
link: '/devstar/index'
},
]
},
{ text: 'Cloudbuild', link: '/cloudbuild' }, { text: 'Cloudbuild', link: '/cloudbuild' },
{ text: 'Simulator', link: '/simulator' }, { text: 'Simulator', link: '/simulator' },
{ text: 'Enterprise', link: '/enterprise/index' }, { text: 'Enterprise', link: '/enterprise' },
], ],
sidebar: { sidebar: {
'/devstar/': sidebarDocument(), // 直接返回 SidebarItem[] '/devstar/': sidebarDocument(), // 直接返回 SidebarItem[]
@@ -44,10 +37,10 @@ export default defineConfig({
// [Copyright © 2025-present Devstar Contributors](https://github.com/mengning/DevStar) // [Copyright © 2025-present Devstar Contributors](https://github.com/mengning/DevStar)
// { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' } // { copyright: 'Copyright © 2025-present devstar contributors', link: 'https://github.com/mengning/DevStar' }
// ] as any, // ] as any,
footer: { // footer: {
message: '<a href="/copyright/index">苏ICP备2024068144号-1 ©Mengning Software. 2025- All rights reserved.</a>', // message: '<a href="/copyright/index">苏ICP备2024068144号-1 ©Mengning Software. 2025- All rights reserved.</a>',
copyright: '' // 留空避免重复 // copyright: ''
}, // },
// 设置搜索框的样式 // 设置搜索框的样式
search: { search: {
provider: "local", provider: "local",
@@ -75,7 +68,7 @@ function sidebarDocument(): DefaultTheme.SidebarItem[] {
return [ return [
{ {
text: 'Devstar是什么', text: 'Devstar是什么',
link: '/document/index', link: '/devstar/index',
items: [] items: []
} as any, } as any,
{ {
@@ -86,7 +79,7 @@ function sidebarDocument(): DefaultTheme.SidebarItem[] {
{ text: '对比Gitea与其它Git托管工具', link: 'https://docs.gitea.com/zh-cn/installation/comparison' }, { text: '对比Gitea与其它Git托管工具', link: 'https://docs.gitea.com/zh-cn/installation/comparison' },
{ text: '数据库准备', link: 'https://docs.gitea.com/zh-cn/installation/database-prep' }, { text: '数据库准备', link: 'https://docs.gitea.com/zh-cn/installation/database-prep' },
// { text: '数据库准备', link: '/document/installation/from-source' }, // { text: '数据库准备', link: '/document/installation/from-source' },
{ text: '使用shell脚本安装', link: '/document/installation/install-via-shell-script' }, { text: '使用shell脚本安装', link: '/devstar/installation/install-via-shell-script' },
{ text: '使用二进制文件安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-binary' }, { text: '使用二进制文件安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-binary' },
{ text: '包管理器安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-package' }, { text: '包管理器安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-package' },
{ text: '使用源代码安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-source' }, { text: '使用源代码安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-source' },
@@ -130,7 +123,7 @@ function sidebarDocument(): DefaultTheme.SidebarItem[] {
collapsible: true, // 使整个组可折叠 collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开 collapsed: true, // 默认展开
items: [ items: [
{ text: '结合AI快速开始', link: 'document/usage/quick-start-with-ai' }, { text: '结合AI快速开始', link: 'devstar/usage/quick-start-with-ai' },
{ {
text: 'Actions', text: 'Actions',
collapsible: true, // 使整个组可折叠 collapsible: true, // 使整个组可折叠

View File

@@ -4,6 +4,11 @@
/* 基础缩进量 */ /* 基础缩进量 */
} }
/* 设置首页的高度 */
#VPContent.VPContent.is-home {
height: 980px !important;
}
/* 侧边栏 */ /* 侧边栏 */
.VPSidebar { .VPSidebar {
background-color: white !important; background-color: white !important;
@@ -13,6 +18,16 @@
background-color: white !important; background-color: white !important;
} }
/* 去除掉每个h2标题上面的线 */
.vp-doc h2 {
border-top: none;
}
/* 去除掉页面底部导航的横线 */
nav.prev-next {
border-top: none !important;
}
/* 首页图片 */ /* 首页图片 */
img.VPImage.image-src { img.VPImage.image-src {
max-width: 500px !important; max-width: 500px !important;
@@ -41,6 +56,7 @@ img.VPImage.image-src {
margin-right: 20px !important; margin-right: 20px !important;
} }
.VPHero .text { .VPHero .text {
font-size: 50px !important; font-size: 50px !important;
} }

View File

@@ -1,5 +1,5 @@
# 分布式编译系统CloudBuild # 分布式编译系统CloudBuild
![alt text](/public/cloudbuild/promotional-graphic-cloudbuild.jpg)
## 为什么需要分布式编译技术 ## 为什么需要分布式编译技术
- 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义 - 大型项目过长的编译耗时将会给开发、测试和调试都带来延迟,所以缩短大型项目的编译时间的分布式编译系统有重要意义
- 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间 - 使用分布式编译系统编译项目可以利用计算机集群提高编译效率,缩短项目编译时间
@@ -25,3 +25,55 @@ CloudBuild主程序分为三个部分Client、Server、Executor。
### 系统分层结构 ### 系统分层结构
![alt text](/public/cloudbuild/layered-system-architecture.png) ![alt text](/public/cloudbuild/layered-system-architecture.png)
## 运行原理与流程
### 分布式编译原理
![alt text](/public/cloudbuild/compiler-principles.png)
### CloudBuild客户端
CloudBuild客户端基于Ninja改造有下面这些优势
- 兼容使用Ninja编译的项目
- 使用远程执行的方式提高编译时并发度
- 使用编译缓存减少需要编译的任务数量
### CloudBuild服务端
- 使用远程执行的方法提高编译时并发度,实现了任务分发至远程节点同步执行
- 使用分布式任务调度提高任务调度效率和计算节点资源利用率,避免集中式调度的任务阻塞问题
- 使用编译缓存结合内容寻址存储技术减少网络传输量、避免重复上传与重复编译
### CloudBuild优势
- 低成本组成executor的机器不需要使用专门的高性能计算型机器可使用多个平价的空闲机器
- 高效CloudBuild实现分布式编译的功能相比单机大大提升并发度
- 兼容NinjaCloudBuild客户端基于Ninja改造对于使用Ninja构建和可以转换为Ninja构建的项目不用额外修改构建清单
### CloudBuild执行流程
- 客户端: 生成远程任务->生成任务依赖->发送任务与依赖
- 服务端:检查任务缓存->检查依赖完整性->调度任务
- 编译结点:还原文件目录->还原文件目录->返回编译结果
## AOSP和LLVM上的应用
### LLVM上的应用效果
![alt text](/public/cloudbuild/table1.png)
### AOSP上的应用效果
![alt text](/public/cloudbuild/table2.png)
### CloudBuild硬件资源利用率
4核CPU利用率:
![alt text](/public/cloudbuild/CPU-utilization-4.png)
8核CPU利用率:
![alt text](/public/cloudbuild/CPU-utilization-8.png)
16核CPU利用率:
![alt text](/public/cloudbuild/CPU-utilization-16.png)
## CloudBuild使用方法
### CloudBuild安装
![alt text](/public/cloudbuild/cloudbuild-installation.png)
CloudBuild项目地址https://gitee.com/cloudbuild888/cloudbuild.git
### CloudBuild分布式编译
![alt text](/public/cloudbuild/cloudbuild-distributed-compilation.png)
LLVM项目地址https://gitee.com/mirrors/LLVM.git

View File

@@ -2,7 +2,6 @@
<section class="tencent-showcase"> <section class="tencent-showcase">
<div class="ten_main"> <div class="ten_main">
<div class="ten_links"> <div class="ten_links">
<!-- 公司简介卡片 -->
<a <a
href="/devstar" href="/devstar"
class="ten_img" class="ten_img"
@@ -11,7 +10,7 @@
> >
<img <img
src="/public/promotional-graphic-devstar.png" src="/public/promotional-graphic-devstar.png"
alt="公司简介" alt="devstar"
class="tencent-image" class="tencent-image"
:class="{ 'image-hover': hoverItem === 'about' }" :class="{ 'image-hover': hoverItem === 'about' }"
> >
@@ -20,7 +19,6 @@
</div> </div>
</a> </a>
<!-- 企业文化卡片 -->
<a <a
href="/cloudbuild" href="/cloudbuild"
class="ten_img" class="ten_img"
@@ -29,7 +27,7 @@
> >
<img <img
src="/public/promotional-graphic-cloudbuild.jpg" src="/public/promotional-graphic-cloudbuild.jpg"
alt="企业文化" alt="cloudbuild"
class="tencent-image" class="tencent-image"
:class="{ 'image-hover': hoverItem === 'culture' }" :class="{ 'image-hover': hoverItem === 'culture' }"
> >
@@ -38,7 +36,6 @@
</div> </div>
</a> </a>
<!-- 办公地点卡片 -->
<a <a
href="/simulator" href="/simulator"
class="ten_img" class="ten_img"
@@ -47,7 +44,7 @@
> >
<img <img
src="/public/promotional-graphic-simulator.jpg" src="/public/promotional-graphic-simulator.jpg"
alt="办公地点" alt="simulator"
class="tencent-image" class="tencent-image"
:class="{ 'image-hover': hoverItem === 'office' }" :class="{ 'image-hover': hoverItem === 'office' }"
> >
@@ -58,11 +55,51 @@
</div> </div>
</div> </div>
</section> </section>
<div class="wrap-footer">
<div class="footer">
<!-- 左侧区域第一张图内容 -->
<div class="footer-left">
<div class="gitee-brand">
<div class="logo-circle">
<span class="logo-char">
<img src="/public/mnsoftware.png" alt="">
</span>
</div>
</div>
<div class="copyright">
<span class="brand-name">梦宁软件</span>
<span>梦宁软件江苏有限公司版权所有</span>
</div>
</div>
<!-- 右侧区域第二张图内容 -->
<div class="footer-right">
<div class="qr-container">
<div class="qr-code">
<div class="qr-icon">
<span class="qr-char">
<img src="/public/QR-code.jpg" alt="">
</span>
</div>
</div>
<div class="qr-label">微信公众号</div>
</div>
</div>
</div>
<div class="footer-area">
<p>
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">苏ICP备2024068144号-1</a>
©
<a href="/copyright" rel="noopener noreferrer">Mengning Software</a>.
2025- All rights reserved.
</p>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
name: 'TencentShowcase', name: 'Showcase',
data() { data() {
return { return {
hoverItem: null hoverItem: null
@@ -74,7 +111,7 @@ export default {
<style scoped> <style scoped>
/* 基础布局 */ /* 基础布局 */
.tencent-showcase { .tencent-showcase {
background: white; height: 200px;
} }
.ten_main { .ten_main {
@@ -104,11 +141,11 @@ export default {
transform: translateY(-5px); transform: translateY(-5px);
} }
/* 图片样式 - 严格按第一张图要求 */ /* 图片样式 */
.tencent-image { .tencent-image {
width: 100%; width: 100%;
height: 200px; height: 200px;
object-fit: contain; /* object-fit: contain; */
object-position: center; object-position: center;
background-color: #f5f7fa; background-color: #f5f7fa;
/* padding: 20px; */ /* padding: 20px; */
@@ -121,7 +158,7 @@ export default {
background-color: #e3f2fd; background-color: #e3f2fd;
} }
/* 文字区域 - 按第三张图效果 */ /* 文字区域 */
.ten_img_txt { .ten_img_txt {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
@@ -148,7 +185,7 @@ export default {
padding-bottom: 8px; padding-bottom: 8px;
} }
/* 悬浮时显示的下划线 - 按第三张图要求 */ /* 悬浮时显示的下划线 */
.text-hover h2::after { .text-hover h2::after {
content: ""; content: "";
position: absolute; position: absolute;
@@ -158,6 +195,115 @@ export default {
height: 2px; height: 2px;
background: white; background: white;
} }
.wrap-footer {
margin-top: 50px;
}
.footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 20px 20px 0;
/* padding: 20px; */
/* background-color: white; */
width: 100%;
box-sizing: border-box;
}
/* 左侧品牌区域样式 */
.footer-left {
display: flex;
align-items: center;
margin-left: -40px;
}
.gitee-brand {
display: flex;
align-items: center;
}
.logo-circle {
width: 200px;
height: 100px;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
margin-right: -10px;
}
.brand-name {
font-size: 16px;
font-weight: 600;
color: #000;
padding-right: 10px;
}
.copyright {
color: #999;
font-size: 14px;
margin-left: -40px;
}
/* 右侧二维码区域样式 */
.footer-right {
display: flex;
}
.qr-container {
display: flex;
flex-direction: column;
align-items: center;
}
.qr-code {
width: 100px;
height: 100px;
background-color: #f5f5f5;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 8px;
position: relative;
overflow: hidden;
}
.qr-icon {
width: 100px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
}
.qr-char {
color: white;
font-weight: bold;
font-size: 20px;
}
.qr-label {
font-size: 14px;
color: #999;
}
.footer-area {
text-align: center;
padding: 10px 0;
font-size: 14px;
color: #999;
}
.footer-area a {
text-decoration: none;
color: inherit;
}
.footer-area a:hover {
text-decoration: underline;
color: #2563eb;
}
/* 响应式设计 */ /* 响应式设计 */
@media (max-width: 768px) { @media (max-width: 768px) {
@@ -173,4 +319,8 @@ export default {
height: 180px; height: 180px;
} }
} }
.dark .brand-name {
color: #DFDFD6;
}
</style> </style>

View File

@@ -1,7 +1,5 @@
# 结合AI快速开始 # 结合AI快速开始
## 快速开始
- 确定需求Al生成代码Chat with the Al in VSCode/Cursor/Trae/Qode/ Claude Code etc. - 确定需求Al生成代码Chat with the Al in VSCode/Cursor/Trae/Qode/ Claude Code etc.
- 初步验证结果人工检查和测试代码Code Review/Test Code - 初步验证结果人工检查和测试代码Code Review/Test Code
- 将代码提交到Git仓库发起Pull Request合并代码请求Chat with DevStar MCP Server - 将代码提交到Git仓库发起Pull Request合并代码请求Chat with DevStar MCP Server

BIN
docs/public/QR-code.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@@ -1,104 +0,0 @@
---
sidebar_position: 1
slug: /
---
# What is Gitea Runner
Act runner is a runner for Gitea based on [Gitea fork](https://gitea.com/gitea/act) of [act](https://github.com/nektos/act). This documentation is a copy of https://gitea.com/gitea/act_runner/src/branch/main/README.md . And it should be updated once that README changed.
## Installation
### Prerequisites
Docker Engine Community version is required for docker mode. To install Docker CE, follow the official [install instructions](https://docs.docker.com/engine/install/).
### Download pre-built binary
Visit [here](https://dl.gitea.com/act_runner/) and download the right version for your platform.
### Build from source
```bash
make build
```
### Build a docker image
```bash
make docker
```
### Register
```bash
./act_runner register
```
And you will be asked to input:
1. Gitea instance URL, like `http://192.168.8.8:3000/`. You should use your gitea instance ROOT_URL as the instance argument
and you should not use `localhost` or `127.0.0.1` as instance IP;
2. Runner token, you can get it from `http://192.168.8.8:3000/-/admin/actions/runners`;
3. Runner name, you can just leave it blank;
4. Runner labels, you can just leave it blank.
The process looks like:
```text
INFO Registering runner, arch=amd64, os=darwin, version=0.1.5.
WARN Runner in user-mode.
INFO Enter the Gitea instance URL (for example, https://gitea.com/):
http://192.168.8.8:3000/
INFO Enter the runner token:
fe884e8027dc292970d4e0303fe82b14xxxxxxxx
INFO Enter the runner name (if set empty, use hostname: Test.local):
INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-latest:docker://gitea/runner-images:ubuntu-latest):
INFO Registering runner, name=Test.local, instance=http://192.168.8.8:3000/, labels=[ubuntu-latest:docker://gitea/runner-images:ubuntu-latest ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04 ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04].
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.
```
You can also register with command line arguments.
```bash
./act_runner register --instance http://192.168.8.8:3000 --token <my_runner_token> --no-interactive
```
If the registry succeed, it will run immediately. Next time, you could run the runner directly.
### Run
```bash
./act_runner daemon
```
### Run with docker
```bash
docker run -e GITEA_INSTANCE_URL=https://your_gitea.com -e GITEA_RUNNER_REGISTRATION_TOKEN=<your_token> -v /var/run/docker.sock:/var/run/docker.sock --name my_runner gitea/act_runner:nightly
```
### Configuration
You can also configure the runner with a configuration file.
The configuration file is a YAML file, you can generate a sample configuration file with `./act_runner generate-config`.
```bash
./act_runner generate-config > config.yaml
```
You can specify the configuration file path with `-c`/`--config` argument.
```bash
./act_runner -c config.yaml register # register with config file
./act_runner -c config.yaml daemon # run with config file
```
You can read the latest version of the configuration file online at [config.example.yaml](internal/pkg/config/config.example.yaml).
### Example Deployments
Check out the [examples](https://gitea.com/gitea/act_runner/src/branch/main/examples) directory for sample deployment types.

View File

@@ -0,0 +1,16 @@
# simulator
![alt text](/public/simulator/image.png)
## 从vECU到整车仿真
![alt text](/public/simulator/image-1.png)
<br>
<br>
![alt text](/public/simulator/image-2.png)
## 整车系统级软硬件联合仿真
![alt text](/public/simulator/image-3.png)
应用场景
- 算法及软件的快速测试验证用台架RT-ECU作为开发控制器的快速样件
- 控制器的常规HIL测试
- 整车级多控制器的交互测试