From 78612703550c3cdb5681656980f109d679b93e1e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 3 Sep 2021 14:42:31 -0500 Subject: [PATCH] Build config: add FE_BUILD_DIR to configure the output path --- .gitlab-ci.yml | 2 +- app/soapbox/build_config.js | 13 +++++++++---- webpack/configuration.js | 9 ++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 963e63284..bd83ffd0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,9 +88,9 @@ pages: stage: deploy script: - yarn build - - mv static public variables: NODE_ENV: production + FE_BUILD_DIR: public artifacts: paths: - public diff --git a/app/soapbox/build_config.js b/app/soapbox/build_config.js index 53d05170f..5748bd371 100644 --- a/app/soapbox/build_config.js +++ b/app/soapbox/build_config.js @@ -9,6 +9,7 @@ const { trim } = require('lodash'); const { BACKEND_URL, FE_BASE_PATH, + FE_BUILD_DIR, } = process.env; const sanitizeURL = url => { @@ -19,9 +20,12 @@ const sanitizeURL = url => { } }; -// Run Soapbox FE from a subdirectory. -const getFeBasePath = () => { - return `/${trim(FE_BASE_PATH, '/')}`; +const sanitizeBasename = path => { + return `/${trim(path, '/')}`; +}; + +const sanitizePath = path => { + return trim(path, '/'); }; // JSON.parse/stringify is to emulate what @preval is doing and avoid any @@ -30,5 +34,6 @@ const sanitize = obj => JSON.parse(JSON.stringify(obj)); module.exports = sanitize({ BACKEND_URL: sanitizeURL(BACKEND_URL), - FE_BASE_PATH: getFeBasePath(), + FE_BASE_PATH: sanitizeBasename(FE_BASE_PATH), + FE_BUILD_DIR: sanitizePath(FE_BUILD_DIR) || 'static', }); diff --git a/webpack/configuration.js b/webpack/configuration.js index eb0442989..439a57ce1 100644 --- a/webpack/configuration.js +++ b/webpack/configuration.js @@ -1,12 +1,15 @@ const { join } = require('path'); const { env } = require('process'); -const { FE_BASE_PATH } = require(join(__dirname, '..', 'app', 'soapbox', 'build_config')); +const { + FE_BASE_PATH, + FE_BUILD_DIR, +} = require(join(__dirname, '..', 'app', 'soapbox', 'build_config')); const settings = { source_path: 'app', - public_root_path: 'static', - test_root_path: 'static-test', + public_root_path: FE_BUILD_DIR, + test_root_path: `${FE_BUILD_DIR}-test`, cache_path: 'tmp/cache/webpacker', resolved_paths: [], static_assets_extensions: [ '.jpg', '.jpeg', '.png', '.tiff', '.ico', '.svg', '.gif', '.eot', '.otf', '.ttf', '.woff', '.woff2', '.mp3', '.ogg', '.oga' ],