// build-and-push.js const { exec, writeFile } = require('child_process') const fs = require('fs') function buildAndPush(version) { var packageFile = require('./package.json') packageFile = { ...packageFile, version: version } const packageJsonPath = './package.json' fs.writeFile(packageJsonPath, JSON.stringify(packageFile), (err) => { if (err) { console.error('Error writing package-new.json', err) return } console.log('package-new.json updated successfully') const versionData = { version: version } const versionJsonPath = './public/version.json' fs.writeFile(versionJsonPath, JSON.stringify(versionData), (err) => { if (err) { console.error('Error writing version.json', err) return } console.log('version.json updated successfully') const build_app = `npm run build` const docker_image_tag = `defuj/apkt-eis:v${version}` const docker_account = { username: 'defuj', token: 'dckr_pat_U_kP14Ws82lJun9f-B4mRpJfjW0' } const docker_logout = `docker logout` const docker_login = `docker login -u ${docker_account.username} -p ${docker_account.token}` const docker_build = `docker build . -t ${docker_image_tag}` const docker_push = `docker push ${docker_image_tag}` // const command = `${build_app} && ${docker_logout} && ${docker_login} && ${docker_build} && ${docker_push}` const command = `${docker_logout} && ${docker_login}` exec(command, (error, stdout, stderr) => { if (error) { console.error(`Error: ${error.message}`) return } if (stderr) { console.error(`stderr: ${stderr}`) return } console.log(`stdout: ${stdout}`) }) }) }) } // Ambil argumen versi dari command line const version = process.argv[2] if (!version) { console.error('Usage: node build-push.js ') process.exit(1) } buildAndPush(version)