From 4bdf940bdd6e915df02bf0d6797b94f43aac37ec Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:15:02 +0100 Subject: [PATCH 1/7] Separate web and app targets --- .env.production.app | 3 +++ .env.production.web | 3 +++ package.json | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .env.production.app create mode 100644 .env.production.web diff --git a/.env.production.app b/.env.production.app new file mode 100644 index 00000000..f9fd3136 --- /dev/null +++ b/.env.production.app @@ -0,0 +1,3 @@ +NODE_ENV=production +VUE_APP_PLATFORM=web +VUE_APP_TARGET=electron-renderer \ No newline at end of file diff --git a/.env.production.web b/.env.production.web new file mode 100644 index 00000000..e9a62687 --- /dev/null +++ b/.env.production.web @@ -0,0 +1,3 @@ +NODE_ENV=production +VUE_APP_PLATFORM=web +VUE_APP_TARGET=web \ No newline at end of file diff --git a/package.json b/package.json index 964ee06a..f1feb62f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "dist:win": "electron-builder --win --config app/builder-config-x86_64.yaml", "dist:dmg": "electron-builder --mac --config app/builder-config-x86_64.yaml", "dist:appx": "electron-builder --win --config app/builder-config-appx.yaml", - "build": "vue-cli-service build", + "build:web": "vue-cli-service build --mode production.web", + "build:app": "vue-cli-service build --mode production.app", "electron:run": "electron .", "electron:dev": "electron app/app.dev.js", "serve": "vue-cli-service serve" From adfec0bbfe6744e9345dfe82677d1e3ece095dd2 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:15:15 +0100 Subject: [PATCH 2/7] JS file for electron-renderer specific code --- src/main.app.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main.app.js diff --git a/src/main.app.js b/src/main.app.js new file mode 100644 index 00000000..a7b44007 --- /dev/null +++ b/src/main.app.js @@ -0,0 +1,7 @@ +//import { Titlebar, Color } from 'custom-electron-titlebar' + +//new Titlebar({ +// backgroundColor: Color.fromHex('#ffffff') +//}); + +console.log("Loaded main.app.js for electron-renderer functionality") \ No newline at end of file From 396adca35f1022bd30fd9639e6ccedfa393e7146 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:15:32 +0100 Subject: [PATCH 3/7] Separate app and web builds --- vue.config.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vue.config.js b/vue.config.js index ad3386d1..1cf8436d 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,3 +1,15 @@ module.exports = { + configureWebpack: config => { + config.target = process.env.VUE_APP_TARGET || 'web', + config.entry = (process.env.VUE_APP_TARGET == 'electron-renderer') + ? { + main: './src/main.js', + app: './src/main.app.js' + } + :{ + main: './src/main.js', + } + }, + outputDir: (process.env.VUE_APP_TARGET == 'electron-renderer') ? './app/dist' : './dist', publicPath: '' } \ No newline at end of file From 814df5f27a2a32595c981091994bc1db53c3a3dd Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:15:41 +0100 Subject: [PATCH 4/7] Update electron app source directory --- app/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/app.js b/app/app.js index d1fe5162..48316176 100644 --- a/app/app.js +++ b/app/app.js @@ -70,7 +70,7 @@ const app = electron.app const BrowserWindow = electron.BrowserWindow // Set the window content -let url = `file://${path.join(__dirname, '../dist/index.html')}` +let url = `file://${path.join(__dirname, '/dist/index.html')}` let mainWindow // Set the application menu From a154c9dd15d028388f8e5acc31df41474444d15f Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:21:48 +0100 Subject: [PATCH 5/7] Ignore app dist folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index afc1c793..be92d222 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store node_modules /dist +/app/dist /release-builds /installers/release-builds From f1d30471096a5b043ba345e06a986a6132814ea5 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 21:21:59 +0100 Subject: [PATCH 6/7] Draft updated CI --- .gitlab-ci.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8c018f33..3dd719a1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,7 @@ build: image: electronuserland/builder:wine script: - npm install - - npm run build + - npm run build:web artifacts: name: "build" paths: @@ -25,11 +25,27 @@ build: - tags - web +# Build electron webapp +build:electron: + stage: build + image: electronuserland/builder:wine + script: + - npm install + - npm run build:app + artifacts: + name: "build" + paths: + - app/dist/ + only: + - stable + - tags + - web + # Platform-specific Electron builds package: stage: package dependencies: - - build + - build:electron image: electronuserland/builder:wine retry: 2 script: From 793c8e2c7edf44966b3925968933b2bc1d804a60 Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Sun, 2 Jun 2019 22:03:49 +0100 Subject: [PATCH 7/7] Condensed build:app into package --- .gitlab-ci.yml | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3dd719a1..9a3f8a91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,5 @@ stages: - build - - package - meta # Cache modules in between jobs @@ -9,7 +8,7 @@ cache: paths: - node_modules/ -# Build basic webapp +# Basic webapp build build: stage: build image: electronuserland/builder:wine @@ -25,30 +24,13 @@ build: - tags - web -# Build electron webapp -build:electron: +# Electron app build +package: stage: build image: electronuserland/builder:wine script: - npm install - npm run build:app - artifacts: - name: "build" - paths: - - app/dist/ - only: - - stable - - tags - - web - -# Platform-specific Electron builds -package: - stage: package - dependencies: - - build:electron - image: electronuserland/builder:wine - retry: 2 - script: - npm run release - mv ./release-builds/*.AppImage . - mv ./release-builds/*.deb .