修复CI依赖准备顺序
修复依赖图测试import排序门禁 在后端构建门禁前预取锁定Cargo依赖 新增Backend-CI执行顺序回归测试 同步更新Gitea-CI开发运维约定
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { resolve } from 'node:path';
|
||||
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
const workflow = readFileSync(
|
||||
resolve(process.cwd(), '.gitea/workflows/project-ci.yml'),
|
||||
'utf8',
|
||||
);
|
||||
|
||||
function backendStepIndex(stepName: string) {
|
||||
const backendJobStart = workflow.indexOf(' backend-tests:');
|
||||
const nativeShellJobStart = workflow.indexOf(' native-shell-tests:');
|
||||
expect(backendJobStart).toBeGreaterThanOrEqual(0);
|
||||
expect(nativeShellJobStart).toBeGreaterThan(backendJobStart);
|
||||
|
||||
return workflow
|
||||
.slice(backendJobStart, nativeShellJobStart)
|
||||
.indexOf(` - name: ${stepName}`);
|
||||
}
|
||||
|
||||
describe('project CI workflow', () => {
|
||||
it('prepares locked server-rs dependencies before the first Cargo build gate', () => {
|
||||
const prepareDependencies = backendStepIndex(
|
||||
'Prepare server-rs Rust dependencies',
|
||||
);
|
||||
const checkBoundaries = backendStepIndex('Check server-rs boundaries');
|
||||
const runWorkspaceTests = backendStepIndex('Run server-rs workspace tests');
|
||||
|
||||
expect(prepareDependencies).toBeGreaterThanOrEqual(0);
|
||||
expect(checkBoundaries).toBeGreaterThan(prepareDependencies);
|
||||
expect(runWorkspaceTests).toBeGreaterThan(checkBoundaries);
|
||||
expect(workflow).toContain('cargo fetch --locked');
|
||||
expect(workflow).toContain('for attempt in $(seq 1 5); do');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user