Refactor build-and-push.js and deploy.js to improve code structure and update version number in package.json
This commit is contained in:
parent
fedbdfff16
commit
34e6f328b0
@ -1,39 +0,0 @@
|
||||
// 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)
|
68
deploy.js
Normal file
68
deploy.js
Normal file
@ -0,0 +1,68 @@
|
||||
// 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 <version>')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
buildAndPush(version)
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eis",
|
||||
"version": "0.0.117",
|
||||
"version": "0.0.120-vm",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
@ -13,7 +13,7 @@
|
||||
"type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false",
|
||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
||||
"format": "prettier --write src/",
|
||||
"build-push": "node build-push.js"
|
||||
"deploy": "node deploy.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/client": "^3.8.10",
|
||||
|
1
public/version.json
Normal file
1
public/version.json
Normal file
@ -0,0 +1 @@
|
||||
{"version":"0.0.120-vm"}
|
@ -5,6 +5,10 @@ const instance = axios.create({
|
||||
baseURL: url
|
||||
})
|
||||
|
||||
const ax = axios.create({
|
||||
baseURL: window.location.origin
|
||||
})
|
||||
|
||||
const getUid = async () => await instance.get('/uid')
|
||||
const getUidRegional = async (regional: number) => await instance.get('/uid?regional=' + regional)
|
||||
const getRegional = async () => await instance.get('/regional')
|
||||
@ -13,6 +17,7 @@ const getJenisTransaksi = async () => await instance.get('/jenisTransaksi')
|
||||
const getUp3 = async (uid: number) => await instance.get('/up3?uid=' + uid)
|
||||
const getUlp = async (up3: number) => await instance.get('/ulp?up3=' + up3)
|
||||
const getPosko = async (uppp: number) => await instance.get('/posko?up3=' + uppp)
|
||||
const getVersion = async () => await ax.get('/version.json')
|
||||
export {
|
||||
getUid,
|
||||
getUp3,
|
||||
@ -21,5 +26,6 @@ export {
|
||||
getMedia,
|
||||
getJenisTransaksi,
|
||||
getUidRegional,
|
||||
getRegional
|
||||
getRegional,
|
||||
getVersion
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { useMenuStore } from '@/stores/menu'
|
||||
import { RouterView } from 'vue-router'
|
||||
import { useDialogStore } from '@/stores/dialog'
|
||||
import { onMounted } from 'vue'
|
||||
import { version } from '../../package.json'
|
||||
import { getVersion } from '@/utils/api/api.rest'
|
||||
const menu = useMenuStore()
|
||||
const dialog = useDialogStore()
|
||||
|
||||
@ -23,17 +23,28 @@ const showDialogUpdate = () => {
|
||||
dialog.open = true
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const localVersion = localStorage.getItem('version')
|
||||
if (localVersion) {
|
||||
if (localVersion !== version) {
|
||||
localStorage.setItem('version', version)
|
||||
showDialogUpdate()
|
||||
const checkVersion = () => {
|
||||
getVersion().then((response) => {
|
||||
if (response.data.version) {
|
||||
const version = response.data.version
|
||||
const localVersion = localStorage.getItem('version')
|
||||
if (localVersion) {
|
||||
if (localVersion !== version) {
|
||||
localStorage.setItem('version', version)
|
||||
showDialogUpdate()
|
||||
}
|
||||
} else {
|
||||
localStorage.setItem('version', version)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
localStorage.setItem('version', version)
|
||||
}
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
checkVersion()
|
||||
}, 60000)
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => checkVersion())
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
Loading…
x
Reference in New Issue
Block a user