joplin/packages/tools/release-server.ts

36 lines
1.3 KiB
TypeScript
Raw Normal View History

import { execCommand2, rootDir, gitPullTry, completeReleaseWithChangelog } from './tool-utils';
2021-01-04 15:01:45 +00:00
const serverDir = `${rootDir}/packages/server`;
async function main() {
2021-05-14 15:17:02 +00:00
const argv = require('yargs').argv;
if (!['release', 'prerelease'].includes(argv.type)) throw new Error('Must specify release type. Either --type=release or --type=prerelease');
const isPreRelease = argv.type === 'prerelease';
2021-01-04 15:01:45 +00:00
await gitPullTry();
process.chdir(serverDir);
const version = (await execCommand2('npm version patch')).trim();
const versionShort = version.substr(1);
2021-05-14 15:17:02 +00:00
const imageVersion = versionShort + (isPreRelease ? '-beta' : '');
2021-01-04 15:01:45 +00:00
const tagName = `server-${version}`;
process.chdir(rootDir);
console.info(`Running from: ${process.cwd()}`);
2021-01-04 15:01:45 +00:00
2021-05-14 15:17:02 +00:00
await execCommand2(`docker build -t "joplin/server:${imageVersion}" -f Dockerfile.server .`);
await execCommand2(`docker tag "joplin/server:${imageVersion}" "joplin/server:latest"`);
await execCommand2(`docker push joplin/server:${imageVersion}`);
if (!isPreRelease) await execCommand2('docker push joplin/server:latest');
2021-01-04 15:01:45 +00:00
const changelogPath = `${rootDir}/readme/changelog_server.md`;
2021-05-14 15:17:02 +00:00
await completeReleaseWithChangelog(changelogPath, version, tagName, 'Server', isPreRelease);
2021-01-04 15:01:45 +00:00
}
main().catch((error) => {
console.error('Fatal error');
console.error(error);
process.exit(1);
});