40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
// build-and-push.js
|
|
const { exec } = require('child_process')
|
|
|
|
function buildAndPush(version) {
|
|
const build_app = `npm run build`
|
|
const docker_image_tag = `defuj/apkt-eis:${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}`
|
|
|
|
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 <version>')
|
|
process.exit(1)
|
|
}
|
|
|
|
buildAndPush(version)
|