feat(release): upload stable latest XPI alias during release:push
- Publish archive-org-link-grabber-latest.xpi alongside versioned artifacts - Document behavior in README
This commit is contained in:
parent
fb7e208252
commit
bc28130855
2 changed files with 20 additions and 1 deletions
|
|
@ -164,7 +164,7 @@ This project is not affiliated with archive.org or aria2. Use responsibly and re
|
|||
- Set environment secrets locally (do not commit): `AMO_JWT_ISSUER=... AMO_JWT_SECRET=...`
|
||||
- Run: `npm run release:sign`
|
||||
- Artifacts land in `releases/<version>/`
|
||||
- Push (self-hosted): `npm run release:push` uploads the signed artifacts in `releases/<version>/` and prepares/uploads `releases/updates.json` automatically (deriving the `update_link` from the manifest’s `applications.gecko.update_url`).
|
||||
- Push (self-hosted): `npm run release:push` uploads the signed artifacts in `releases/<version>/` and prepares/uploads `releases/updates.json` automatically (deriving the `update_link` from the manifest’s `applications.gecko.update_url`). It also uploads a stable alias `archive-org-link-grabber-latest.xpi` that always points to the most recent XPI.
|
||||
- Ensure FTP env vars are set (see `.env.example`).
|
||||
|
||||
Notes: Keep AMO secrets local (see `.env.example`). CI is optional. You can tag releases with `git tag vX.Y.Z` and push tags if desired.
|
||||
|
|
|
|||
|
|
@ -174,6 +174,25 @@ for (const file of files) {
|
|||
run(cmd, [user, pass]);
|
||||
}
|
||||
|
||||
// Upload a copy of the latest XPI under a stable filename for static linking
|
||||
try {
|
||||
const latestAlias = 'archive-org-link-grabber-latest.xpi';
|
||||
const localLatestSrc = path.join(artifactsDir, chosenXpi);
|
||||
const latestUrl = `${baseUrl}/${latestAlias}`;
|
||||
console.log(`Uploading latest alias ${latestAlias} -> ${chosenXpi}`);
|
||||
const latestCmd = [
|
||||
'curl',
|
||||
'--fail',
|
||||
'--ftp-create-dirs',
|
||||
`--user`, `${user}:${pass}`,
|
||||
'--upload-file', JSON.stringify(localLatestSrc),
|
||||
JSON.stringify(latestUrl),
|
||||
].join(' ');
|
||||
run(latestCmd, [user, pass]);
|
||||
} catch (e) {
|
||||
console.warn('Warning: Failed to upload latest alias:', e.message);
|
||||
}
|
||||
|
||||
// Also upload updates.json (self-hosted updates manifest) alongside artifacts
|
||||
const updatesPath = path.join(root, 'releases', 'updates.json');
|
||||
if (fs.existsSync(updatesPath)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue