build: add script to auto bump android version

This commit is contained in:
Johannes Millan 2024-11-08 10:28:00 +01:00
parent c9f1ac3503
commit 869fd120bf
3 changed files with 86 additions and 1 deletions

View file

@ -0,0 +1,77 @@
const fs = require('fs');
const path = require('path');
// Read the version from package.json
const packageJson = require('../package.json');
const version = packageJson.version;
// Define the path to build.gradle
const gradleFilePath = path.join(__dirname, '..', 'android', 'app', 'build.gradle');
// Read the build.gradle file
let gradleFileContent = fs.readFileSync(gradleFilePath, 'utf8');
// Update the versionCode and versionName
const versionCodeDroid = version
.split('.')
.map((num) => num.padStart(2, '0'))
.join('');
gradleFileContent = gradleFileContent.replace(
/versionCode \d+/g,
`versionCode ${versionCodeDroid}`,
);
gradleFileContent = gradleFileContent.replace(
/versionName "[^"]+"/g,
`versionName "${version}"`,
);
// Write the updated content back to build.gradle
fs.writeFileSync(gradleFilePath, gradleFileContent, 'utf8');
console.log(`Updated build.gradle to version ${version}`);
// CREATE fastlane changelog file
// Define the paths
const changelogPath = path.join(__dirname, '..', 'CHANGELOG.md');
const outputDir = path.join(
__dirname,
'..',
'fastlane',
'metadata',
'android',
'en-US',
'changelogs',
);
const outputFilePath = path.join(outputDir, `${versionCodeDroid}.txt`);
// Read the changelog.md file
const changelogContent = fs.readFileSync(changelogPath, 'utf8');
// Extract the latest changes
const lines = changelogContent.split('\n').slice(2); // Remove the first two lines;
let latestChanges = '';
let headerCount = 0;
for (const line of lines) {
if (line.startsWith('# [') || line.startsWith('## [')) {
headerCount++;
if (headerCount === 1) break;
}
latestChanges += line + '\n';
}
// Remove all links from the extracted text
latestChanges = latestChanges
.replace(/\[([^\]]+)\]\([^\)]+\)/g, '$1')
.replace(/\s*\([a-f0-9]{7}\)\s*$/gm, '');
// Ensure the output directory exists
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
// Write the latest changes to the versioned changelog file
fs.writeFileSync(outputFilePath, latestChanges, 'utf8');
console.log(`Wrote latest changes to ${outputFilePath}`);
// console.log(latestChanges);