feat: Add automatic version.js generation
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -35,3 +35,6 @@ yarn-error.log*
|
|||||||
|
|
||||||
# local .env files
|
# local .env files
|
||||||
.env*
|
.env*
|
||||||
|
|
||||||
|
# version file
|
||||||
|
src/version.js
|
||||||
26
generate-version.js
Normal file
26
generate-version.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
const { execSync } = require('child_process');
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Run semantic-release to get the next version number
|
||||||
|
const dryRunOutput = execSync('npx semantic-release --dry-run').toString();
|
||||||
|
|
||||||
|
// Extract the version number from the semantic-release output
|
||||||
|
const versionMatch = dryRunOutput.match(/next version in .* is ([\d.]+)/);
|
||||||
|
if (!versionMatch) {
|
||||||
|
throw new Error('Version number not found in semantic-release output');
|
||||||
|
}
|
||||||
|
const version = versionMatch[1];
|
||||||
|
|
||||||
|
// Create version content
|
||||||
|
const versionContent = `export const APP_VERSION = '${version}';\n`;
|
||||||
|
const versionFilePath = path.resolve(__dirname, 'src/version.js');
|
||||||
|
|
||||||
|
// Write version to file
|
||||||
|
fs.writeFileSync(versionFilePath, versionContent, 'utf8');
|
||||||
|
console.log(`Version file generated with version: ${version}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error generating version file:', error);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
@@ -6,11 +6,12 @@
|
|||||||
"author": "Patrick Toal <ptoal@takeflight.ca>",
|
"author": "Patrick Toal <ptoal@takeflight.ca>",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"generate-version": "node generate-version.js",
|
||||||
"lint": "eslint --ext .js,.ts,.vue ./",
|
"lint": "eslint --ext .js,.ts,.vue ./",
|
||||||
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"dev": "quasar dev",
|
"dev": "npm run generate-version && quasar dev",
|
||||||
"build": "quasar build"
|
"build": "npm run generate-version && quasar build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@quasar/extras": "^1.16.11",
|
"@quasar/extras": "^1.16.11",
|
||||||
|
|||||||
@@ -50,11 +50,6 @@ module.exports = configure(function ({ dev }) {
|
|||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
||||||
build: {
|
build: {
|
||||||
env: {
|
|
||||||
VUE_APP_VERSION: dev
|
|
||||||
? 'dev-' + gitCommitInfo().shortHash
|
|
||||||
: packageJson.version,
|
|
||||||
},
|
|
||||||
target: {
|
target: {
|
||||||
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
|
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
|
||||||
node: 'node16',
|
node: 'node16',
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<q-toolbar-title>{{ pageTitle }}</q-toolbar-title>
|
<q-toolbar-title>{{ pageTitle }}</q-toolbar-title>
|
||||||
<q-space />
|
<q-space />
|
||||||
<div>v{{ VERSION }}</div>
|
<div>v{{ APP_VERSION }}</div>
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
</q-header>
|
</q-header>
|
||||||
<LeftDrawer
|
<LeftDrawer
|
||||||
@@ -22,8 +22,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import LeftDrawer from 'components/LeftDrawer.vue';
|
import LeftDrawer from 'components/LeftDrawer.vue';
|
||||||
|
import APP_VERSION from 'version.js';
|
||||||
const VERSION = process.env.VUE_APP_VERSION;
|
|
||||||
|
|
||||||
const leftDrawerOpen = ref(false);
|
const leftDrawerOpen = ref(false);
|
||||||
function toggleLeftDrawer() {
|
function toggleLeftDrawer() {
|
||||||
|
|||||||
@@ -83,13 +83,14 @@ import { Dialog, Notify } from 'quasar';
|
|||||||
import { useAuthStore } from 'src/stores/auth';
|
import { useAuthStore } from 'src/stores/auth';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { AppwriteException } from 'appwrite';
|
import { AppwriteException } from 'appwrite';
|
||||||
|
import { APP_VERSION } from 'version.js';
|
||||||
|
|
||||||
const email = ref('');
|
const email = ref('');
|
||||||
const token = ref('');
|
const token = ref('');
|
||||||
const userId = ref();
|
const userId = ref();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
console.log('version:' + process.env.VUE_APP_VERSION);
|
console.log('version:' + APP_VERSION);
|
||||||
|
|
||||||
const doTokenLogin = async () => {
|
const doTokenLogin = async () => {
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
|
|||||||
@@ -61,12 +61,13 @@ import { useAuthStore } from 'src/stores/auth';
|
|||||||
import NewPasswordComponent from 'src/components/NewPasswordComponent.vue';
|
import NewPasswordComponent from 'src/components/NewPasswordComponent.vue';
|
||||||
import { Dialog } from 'quasar';
|
import { Dialog } from 'quasar';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
import { APP_VERSION } from 'version.js';
|
||||||
|
|
||||||
const email = ref('');
|
const email = ref('');
|
||||||
const password = ref('');
|
const password = ref('');
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
console.log('version:' + process.env.VUE_APP_VERSION);
|
console.log('version:' + APP_VERSION);
|
||||||
|
|
||||||
const doRegister = async () => {
|
const doRegister = async () => {
|
||||||
if (email.value && password.value) {
|
if (email.value && password.value) {
|
||||||
|
|||||||
Reference in New Issue
Block a user