cddb07a176
build container image / cpu (push) Waiting to run
build container image / cuda (push) Waiting to run
build container image / rocm (push) Waiting to run
docs / deploy (push) Blocked by required conditions
docs / changes (push) Waiting to run
docs / check-and-build (push) Blocked by required conditions
frontend tests / frontend-tests (push) Waiting to run
openapi checks / openapi-checks (push) Waiting to run
python tests / py3.12: macos-default (push) Waiting to run
python tests / py3.11: windows-cpu (push) Waiting to run
python tests / py3.12: windows-cpu (push) Waiting to run
python tests / py3.11: linux-cpu (push) Waiting to run
python tests / py3.12: linux-cpu (push) Waiting to run
typegen checks / typegen-checks (push) Waiting to run
uv lock checks / uv-lock-checks (push) Waiting to run
frontend checks / frontend-checks (push) Waiting to run
lfs checks / lfs-check (push) Waiting to run
python checks / python-checks (push) Waiting to run
python tests / py3.11: macos-default (push) Waiting to run
71 lines
2.3 KiB
JavaScript
71 lines
2.3 KiB
JavaScript
import { readFileSync } from 'node:fs';
|
|
|
|
const deployTarget = process.env.DEPLOY_TARGET ?? 'custom';
|
|
const base = deployTarget === 'ghpages' ? '/InvokeAI' : '';
|
|
const withBase = (path) => `${base}${path}`;
|
|
|
|
const expectations = [
|
|
{
|
|
file: 'index.html',
|
|
includes: [
|
|
`href="${withBase('/_astro/')}`,
|
|
`src="${withBase('/_astro/')}`,
|
|
`href="${withBase('/start-here/installation/')}`,
|
|
],
|
|
excludes: deployTarget === 'custom' ? ['href="/InvokeAI/', 'src="/InvokeAI/'] : ['href="/_astro/', 'src="/_astro/'],
|
|
},
|
|
{
|
|
file: 'contributing/index.html',
|
|
includes: [`href="${withBase('/contributing/new-contributor-guide/')}`],
|
|
excludes: [
|
|
deployTarget === 'custom'
|
|
? 'href="/InvokeAI/contributing/new-contributor-guide/"'
|
|
: 'href="/contributing/new-contributor-guide/"',
|
|
'newContributorChecklist.md',
|
|
],
|
|
},
|
|
{
|
|
file: 'contributing/contribution_guides/newContributorChecklist/index.html',
|
|
includes: [
|
|
`Redirecting to: ${withBase('/contributing/new-contributor-guide')}`,
|
|
`content="0;url=${withBase('/contributing/new-contributor-guide')}`,
|
|
`href="${withBase('/contributing/new-contributor-guide')}`,
|
|
],
|
|
excludes: deployTarget === 'custom'
|
|
? [
|
|
'Redirecting to: /InvokeAI/contributing/new-contributor-guide',
|
|
'content="0;url=/InvokeAI/contributing/new-contributor-guide',
|
|
'href="/InvokeAI/contributing/new-contributor-guide',
|
|
]
|
|
: [
|
|
'Redirecting to: /contributing/new-contributor-guide',
|
|
'content="0;url=/contributing/new-contributor-guide',
|
|
'href="/contributing/new-contributor-guide',
|
|
],
|
|
},
|
|
];
|
|
|
|
const errors = [];
|
|
|
|
for (const { file, includes = [], excludes = [] } of expectations) {
|
|
const html = readFileSync(new URL(`../dist/${file}`, import.meta.url), 'utf8');
|
|
|
|
for (const expected of includes) {
|
|
if (!html.includes(expected)) {
|
|
errors.push(`${file} is missing ${expected}`);
|
|
}
|
|
}
|
|
|
|
for (const unexpected of excludes) {
|
|
if (html.includes(unexpected)) {
|
|
errors.push(`${file} still contains ${unexpected}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
throw new Error(`${deployTarget} output validation failed:\n- ${errors.join('\n- ')}`);
|
|
}
|
|
|
|
console.log(`${deployTarget} output links and assets look correct.`);
|