mirror of
https://github.com/nimbold/Firelink.git
synced 2026-08-28 11:37:17 +00:00
fix(release): audit untagged companion packages
This commit is contained in:
@@ -51,8 +51,12 @@ jobs:
|
|||||||
- name: Verify non-publishing package version
|
- name: Verify non-publishing package version
|
||||||
if: github.event_name == 'workflow_dispatch' && !inputs.publish_release
|
if: github.event_name == 'workflow_dispatch' && !inputs.publish_release
|
||||||
run: node scripts/verify-release-version.js --allow-untagged
|
run: node scripts/verify-release-version.js --allow-untagged
|
||||||
- name: Verify Companion release identity
|
- name: Verify tagged Companion release identity
|
||||||
|
if: github.event_name == 'push' || inputs.publish_release
|
||||||
run: node scripts/verify-companion-release.js
|
run: node scripts/verify-companion-release.js
|
||||||
|
- name: Verify non-publishing Companion package metadata
|
||||||
|
if: github.event_name == 'workflow_dispatch' && !inputs.publish_release
|
||||||
|
run: node scripts/verify-companion-release.js --allow-untagged
|
||||||
- uses: dtolnay/rust-toolchain@stable
|
- uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
with:
|
||||||
targets: ${{ matrix.target }}
|
targets: ${{ matrix.target }}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ function exactVersionTag(extensionRoot, expectedTag) {
|
|||||||
export function verifyCompanionRelease({
|
export function verifyCompanionRelease({
|
||||||
repositoryRoot = defaultRepositoryRoot,
|
repositoryRoot = defaultRepositoryRoot,
|
||||||
resolveExactTag = exactVersionTag,
|
resolveExactTag = exactVersionTag,
|
||||||
|
requireExactTag = true,
|
||||||
} = {}) {
|
} = {}) {
|
||||||
const extensionRoot = path.join(repositoryRoot, 'Extensions', 'Browser');
|
const extensionRoot = path.join(repositoryRoot, 'Extensions', 'Browser');
|
||||||
const packagePath = path.join(extensionRoot, 'package.json');
|
const packagePath = path.join(extensionRoot, 'package.json');
|
||||||
@@ -53,6 +54,9 @@ export function verifyCompanionRelease({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const expectedTag = `v${packageVersion}`;
|
const expectedTag = `v${packageVersion}`;
|
||||||
|
if (!requireExactTag) {
|
||||||
|
return { tag: null, version: packageVersion };
|
||||||
|
}
|
||||||
const tag = resolveExactTag(extensionRoot, expectedTag);
|
const tag = resolveExactTag(extensionRoot, expectedTag);
|
||||||
if (!tag) {
|
if (!tag) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
@@ -68,8 +72,13 @@ export function verifyCompanionRelease({
|
|||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
try {
|
try {
|
||||||
const { tag, version } = verifyCompanionRelease();
|
const requireExactTag = !process.argv.includes('--allow-untagged');
|
||||||
console.log(`Companion release ${version} matches exact tag ${tag}.`);
|
const { tag, version } = verifyCompanionRelease({ requireExactTag });
|
||||||
|
console.log(
|
||||||
|
requireExactTag
|
||||||
|
? `Companion release ${version} matches exact tag ${tag}.`
|
||||||
|
: `Non-publishing Companion package metadata agrees at version ${version}.`
|
||||||
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error instanceof Error ? error.message : String(error));
|
console.error(error instanceof Error ? error.message : String(error));
|
||||||
process.exitCode = 1;
|
process.exitCode = 1;
|
||||||
|
|||||||
@@ -84,6 +84,27 @@ test('rejects an untagged Companion commit', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('accepts aligned untagged Companion metadata for a non-publishing audit', () => {
|
||||||
|
const root = createFixture('2.0.7', '2.0.7');
|
||||||
|
let tagLookupCalled = false;
|
||||||
|
try {
|
||||||
|
assert.deepEqual(
|
||||||
|
verifyCompanionRelease({
|
||||||
|
repositoryRoot: root,
|
||||||
|
requireExactTag: false,
|
||||||
|
resolveExactTag: () => {
|
||||||
|
tagLookupCalled = true;
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{ tag: null, version: '2.0.7' }
|
||||||
|
);
|
||||||
|
assert.equal(tagLookupCalled, false);
|
||||||
|
} finally {
|
||||||
|
fs.rmSync(root, { recursive: true, force: true });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test('rejects a Companion tag for another version', () => {
|
test('rejects a Companion tag for another version', () => {
|
||||||
const root = createFixture('2.0.7', '2.0.7');
|
const root = createFixture('2.0.7', '2.0.7');
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user