From 34e6f328b083c675a01b74991a7d730a4b977737 Mon Sep 17 00:00:00 2001 From: Dede Fuji Abdul Date: Thu, 18 Apr 2024 14:31:22 +0700 Subject: [PATCH] Refactor build-and-push.js and deploy.js to improve code structure and update version number in package.json --- build-push.js | 39 ---------------------- deploy.js | 68 +++++++++++++++++++++++++++++++++++++++ package.json | 4 +-- public/version.json | 1 + src/utils/api/api.rest.ts | 8 ++++- src/views/HomeView.vue | 33 ++++++++++++------- 6 files changed, 100 insertions(+), 53 deletions(-) delete mode 100644 build-push.js create mode 100644 deploy.js create mode 100644 public/version.json diff --git a/build-push.js b/build-push.js deleted file mode 100644 index 8ca5aa0..0000000 --- a/build-push.js +++ /dev/null @@ -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 ') - process.exit(1) -} - -buildAndPush(version) diff --git a/deploy.js b/deploy.js new file mode 100644 index 0000000..08f0e47 --- /dev/null +++ b/deploy.js @@ -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 ') + process.exit(1) +} + +buildAndPush(version) diff --git a/package.json b/package.json index e6fc668..a7a9fda 100755 --- a/package.json +++ b/package.json @@ -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", diff --git a/public/version.json b/public/version.json new file mode 100644 index 0000000..ca14c72 --- /dev/null +++ b/public/version.json @@ -0,0 +1 @@ +{"version":"0.0.120-vm"} \ No newline at end of file diff --git a/src/utils/api/api.rest.ts b/src/utils/api/api.rest.ts index 655cca7..20977cf 100755 --- a/src/utils/api/api.rest.ts +++ b/src/utils/api/api.rest.ts @@ -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 } diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 4c56dfd..02dd69f 100755 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -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())