mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-06 10:48:12 +02:00
Build cloud images independently for each master commit through a reusable workflow. Preserve production release dependencies and image runtime checks, and write cloud registry caches per commit with bounded ancestor imports to prevent overlapping builds from replacing each other's cache. Co-Authored-By: Paperclip <noreply@paperclip.ing>
27 lines
958 B
JavaScript
27 lines
958 B
JavaScript
import { readFile } from 'node:fs/promises';
|
|
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
const workflows = [
|
|
'.github/workflows/refresh-lockfile.yml',
|
|
'.github/workflows/pr-trusted.yml',
|
|
'.github/workflows/docker.yml',
|
|
'.github/workflows/docker-cloud.yml',
|
|
];
|
|
|
|
test('lockfile repair workflows resolve dependencies instead of updating metadata only', async () => {
|
|
for (const workflow of workflows) {
|
|
const contents = await readFile(workflow, 'utf8');
|
|
const repairCommands = contents
|
|
.split('\n')
|
|
.filter((line) => line.includes('pnpm install') && line.includes('--no-frozen-lockfile'));
|
|
|
|
assert.ok(repairCommands.length > 0, `${workflow} must contain a lockfile repair command`);
|
|
for (const command of repairCommands) {
|
|
assert.match(command, /--resolution-only/);
|
|
assert.match(command, /--ignore-scripts/);
|
|
assert.doesNotMatch(command, /--lockfile-only/);
|
|
}
|
|
}
|
|
});
|