mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
Tools: Added script to simplify iOS release
This commit is contained in:
parent
5b295d5f6f
commit
eab9ff175c
56
packages/tools/release-ios.js
Normal file
56
packages/tools/release-ios.js
Normal file
@ -0,0 +1,56 @@
|
||||
const fs = require('fs-extra');
|
||||
const { execCommandVerbose, rootDir, gitPullTry } = require('./tool-utils.js');
|
||||
|
||||
const mobileDir = `${rootDir}/packages/app-mobile`;
|
||||
|
||||
async function updateCodeProjVersions(filePath) {
|
||||
const originalContent = await fs.readFile(filePath, 'utf8');
|
||||
let newContent = originalContent;
|
||||
let newVersion = '';
|
||||
|
||||
// MARKETING_VERSION = 10.1.0;
|
||||
newContent = newContent.replace(/(MARKETING_VERSION = )(\d+\.\d+)\.(\d+)(.*)/g, function(_match, prefix, majorMinorVersion, buildNum, suffix) {
|
||||
const n = Number(buildNum);
|
||||
if (isNaN(n)) throw new Error(`Invalid version code: ${buildNum}`);
|
||||
newVersion = `${majorMinorVersion}.${n + 1}`;
|
||||
return `${prefix}${newVersion}${suffix}`;
|
||||
});
|
||||
|
||||
// CURRENT_PROJECT_VERSION = 58;
|
||||
newContent = newContent.replace(/(CURRENT_PROJECT_VERSION = )(\d+)(.*)/g, function(_match, prefix, projectVersion, suffix) {
|
||||
const n = Number(projectVersion);
|
||||
if (isNaN(n)) throw new Error(`Invalid version code: ${projectVersion}`);
|
||||
return `${prefix}${n + 1}${suffix}`;
|
||||
});
|
||||
|
||||
if (!newVersion) throw new Error('Could not determine new version');
|
||||
if (newContent === originalContent) throw new Error('No change was made to project file');
|
||||
|
||||
await fs.writeFile(filePath, newContent, 'utf8');
|
||||
|
||||
return newVersion;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
await gitPullTry();
|
||||
|
||||
console.info('Updating version numbers...');
|
||||
|
||||
const newVersion = await updateCodeProjVersions(`${mobileDir}/ios/Joplin.xcodeproj/project.pbxproj`);
|
||||
console.info(`New version: ${newVersion}`);
|
||||
|
||||
const tagName = `ios-v${newVersion}`;
|
||||
await execCommandVerbose('git', ['add', '-A']);
|
||||
await execCommandVerbose('git', ['commit', '-m', tagName]);
|
||||
await execCommandVerbose('git', ['tag', tagName]);
|
||||
await execCommandVerbose('git', ['push']);
|
||||
await execCommandVerbose('git', ['push', '--tags']);
|
||||
|
||||
console.info(`To create changelog: node packages/tools/git-changelog.js ${tagName}`);
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error('Fatal error');
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
Loading…
Reference in New Issue
Block a user