From b4585e41a783b8fd7cc27a7048f15e50a4c72904 Mon Sep 17 00:00:00 2001 From: Daniel LaCosse <3759828+daniellacosse@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:04:17 -0400 Subject: [PATCH] move src/build to infrastructure/build (#2068) --- client/electron/build.action.mjs | 4 ++-- client/electron/build_main.action.mjs | 5 +++-- client/electron/start.action.mjs | 6 +++--- .../windows/electron_builder_signing_plugin.cjs | 2 +- client/src/cordova/build.action.mjs | 8 ++++---- client/src/cordova/import_messages.action.mjs | 2 +- client/src/cordova/setup.action.mjs | 10 ++++------ client/src/cordova/test.action.mjs | 4 ++-- client/src/tun2socks/build.action.mjs | 3 ++- client/src/www/build.action.mjs | 2 +- client/src/www/start.action.mjs | 2 +- client/src/www/storybook.action.mjs | 3 +-- client/src/www/test.action.mjs | 4 +--- client/src/www/webpack_cordova.mjs | 2 +- commitlint.config.js | 2 +- {src => infrastructure}/build/download_file.mjs | 0 {src => infrastructure}/build/get_file_checksum.mjs | 0 {src => infrastructure}/build/get_root_dir.mjs | 0 {src => infrastructure}/build/run_action.mjs | 0 {src => infrastructure}/build/spawn_stream.mjs | 0 list.action.mjs | 2 +- package.json | 2 +- server_manager/electron_app/build.action.sh | 2 +- server_manager/electron_app/package.action.sh | 2 +- server_manager/electron_app/start.action.sh | 2 +- server_manager/web_app/build.action.sh | 2 +- server_manager/web_app/start.action.sh | 2 +- third_party/jsign/index.mjs | 6 +++--- 28 files changed, 38 insertions(+), 41 deletions(-) rename {src => infrastructure}/build/download_file.mjs (100%) rename {src => infrastructure}/build/get_file_checksum.mjs (100%) rename {src => infrastructure}/build/get_root_dir.mjs (100%) rename {src => infrastructure}/build/run_action.mjs (100%) rename {src => infrastructure}/build/spawn_stream.mjs (100%) diff --git a/client/electron/build.action.mjs b/client/electron/build.action.mjs index bab8b7f1cf..b6c89bbc3f 100644 --- a/client/electron/build.action.mjs +++ b/client/electron/build.action.mjs @@ -16,11 +16,11 @@ import fs from 'fs/promises'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; import electron, {Platform} from 'electron-builder'; import minimist from 'minimist'; -import {getRootDir} from '../../src/build/get_root_dir.mjs'; -import {runAction} from '../../src/build/run_action.mjs'; import {getBuildParameters} from '../build/get_build_parameters.mjs'; const ELECTRON_BUILD_DIR = 'output'; diff --git a/client/electron/build_main.action.mjs b/client/electron/build_main.action.mjs index d22ba48af5..f715ed5b37 100644 --- a/client/electron/build_main.action.mjs +++ b/client/electron/build_main.action.mjs @@ -16,9 +16,10 @@ import fs from 'fs/promises'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; + import electronMainWebpackConfigs from './webpack_electron_main.mjs'; -import {getRootDir} from '../../src/build/get_root_dir.mjs'; -import {runAction} from '../../src/build/run_action.mjs'; import {getBuildParameters} from '../build/get_build_parameters.mjs'; import {getWebpackBuildMode} from '../build/get_webpack_build_mode.mjs'; import {runWebpack} from '../build/run_webpack.mjs'; diff --git a/client/electron/start.action.mjs b/client/electron/start.action.mjs index 6caa3e9975..bd466bdcc1 100644 --- a/client/electron/start.action.mjs +++ b/client/electron/start.action.mjs @@ -15,11 +15,11 @@ import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; +import {spawnStream} from '@outline/infrastructure/build/spawn_stream.mjs'; import electron from 'electron'; -import {getRootDir} from '../../src/build/get_root_dir.mjs'; -import {runAction} from '../../src/build/run_action.mjs'; -import {spawnStream} from '../../src/build/spawn_stream.mjs'; import {getBuildParameters} from '../build/get_build_parameters.mjs'; /** diff --git a/client/electron/windows/electron_builder_signing_plugin.cjs b/client/electron/windows/electron_builder_signing_plugin.cjs index 8613f811e3..27c2d8301e 100644 --- a/client/electron/windows/electron_builder_signing_plugin.cjs +++ b/client/electron/windows/electron_builder_signing_plugin.cjs @@ -29,7 +29,7 @@ * @param {Object} configuration.options a duplication of electron-builder.json */ async function electronBuilderEntryPoint(configuration) { - const {runAction} = await import('../../../src/build/run_action.mjs'); + const {runAction} = await import('../../../infrastructure/build/run_action.mjs'); await runAction('client/electron/windows/sign_windows_executable', '--target', configuration.path, '--algorithm', configuration.hash); diff --git a/client/src/cordova/build.action.mjs b/client/src/cordova/build.action.mjs index bfdf8666a9..4142fe94e4 100644 --- a/client/src/cordova/build.action.mjs +++ b/client/src/cordova/build.action.mjs @@ -16,13 +16,13 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import url from 'url'; +import {downloadHttpsFile} from '@outline/infrastructure/build/download_file.mjs'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; +import {spawnStream} from '@outline/infrastructure/build/spawn_stream.mjs'; import cordovaLib from 'cordova-lib'; const {cordova} = cordovaLib; -import {downloadHttpsFile} from '../../../src/build/download_file.mjs'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; -import {runAction} from '../../../src/build/run_action.mjs'; -import {spawnStream} from '../../../src/build/spawn_stream.mjs'; import {getBuildParameters} from '../../build/get_build_parameters.mjs'; /** diff --git a/client/src/cordova/import_messages.action.mjs b/client/src/cordova/import_messages.action.mjs index 4d86bdfe4d..d2335c3697 100644 --- a/client/src/cordova/import_messages.action.mjs +++ b/client/src/cordova/import_messages.action.mjs @@ -16,12 +16,12 @@ import {readFile, readdir, mkdir} from 'fs/promises'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; import chalk from 'chalk'; import minimist from 'minimist'; import * as ANDROID_IMPORTER from './android/import_messages.mjs'; import * as IOS_IMPORTER from './apple/import_messages.mjs'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; const ANDROID = 'android'; const IOS = 'ios'; diff --git a/client/src/cordova/setup.action.mjs b/client/src/cordova/setup.action.mjs index 04eebbcb00..6dc596b24c 100644 --- a/client/src/cordova/setup.action.mjs +++ b/client/src/cordova/setup.action.mjs @@ -16,19 +16,17 @@ import os from 'os'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; +import {spawnStream} from '@outline/infrastructure/build/spawn_stream.mjs'; import chalk from 'chalk'; import cordovaLib from 'cordova-lib'; import replace from 'replace-in-file'; import rmfr from 'rmfr'; -const {cordova} = cordovaLib; - -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; -import {runAction} from '../../../src/build/run_action.mjs'; -import {spawnStream} from '../../../src/build/spawn_stream.mjs'; import {getBuildParameters} from '../../build/get_build_parameters.mjs'; - +const {cordova} = cordovaLib; const WORKING_CORDOVA_OSX_COMMIT = '07e62a53aa6a8a828fd988bc9e884c38c3495a67'; /** diff --git a/client/src/cordova/test.action.mjs b/client/src/cordova/test.action.mjs index 02677fcc18..e24bd2d978 100644 --- a/client/src/cordova/test.action.mjs +++ b/client/src/cordova/test.action.mjs @@ -17,11 +17,11 @@ import os from 'os'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; +import {spawnStream} from '@outline/infrastructure/build/spawn_stream.mjs'; import minimist from 'minimist'; import rmfr from 'rmfr'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; -import {spawnStream} from '../../../src/build/spawn_stream.mjs'; const APPLE_ROOT = path.join(getRootDir(), 'client', 'src', 'cordova', 'apple'); const APPLE_LIBRARY_NAME = 'OutlineAppleLib'; diff --git a/client/src/tun2socks/build.action.mjs b/client/src/tun2socks/build.action.mjs index f9beddfe63..90cfbb9a87 100644 --- a/client/src/tun2socks/build.action.mjs +++ b/client/src/tun2socks/build.action.mjs @@ -14,7 +14,8 @@ import url from 'url'; -import {spawnStream} from '../../../src/build/spawn_stream.mjs'; +import {spawnStream} from '@outline/infrastructure/build/spawn_stream.mjs'; + import {getBuildParameters} from '../../build/get_build_parameters.mjs'; /** diff --git a/client/src/www/build.action.mjs b/client/src/www/build.action.mjs index c050411c64..bac0c43e69 100644 --- a/client/src/www/build.action.mjs +++ b/client/src/www/build.action.mjs @@ -16,10 +16,10 @@ import fs from 'fs/promises'; import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; import rmfr from 'rmfr'; import {getBrowserWebpackConfig} from './get_browser_webpack_config.mjs'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; import {getBuildParameters} from '../../build/get_build_parameters.mjs'; import {runWebpack} from '../../build/run_webpack.mjs'; diff --git a/client/src/www/start.action.mjs b/client/src/www/start.action.mjs index cd790dcb92..8f25708e1a 100644 --- a/client/src/www/start.action.mjs +++ b/client/src/www/start.action.mjs @@ -14,11 +14,11 @@ import url from 'url'; +import {runAction} from '@outline/infrastructure/build/run_action.mjs'; import webpack from 'webpack'; import WebpackServer from 'webpack-dev-server'; import {getBrowserWebpackConfig} from './get_browser_webpack_config.mjs'; -import {runAction} from '../../../src/build/run_action.mjs'; /** * @description Starts the web app for development. diff --git a/client/src/www/storybook.action.mjs b/client/src/www/storybook.action.mjs index ba07ac374b..b2adce2edc 100644 --- a/client/src/www/storybook.action.mjs +++ b/client/src/www/storybook.action.mjs @@ -15,14 +15,13 @@ import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; import image from '@rollup/plugin-image'; import {startDevServer} from '@web/dev-server'; import {esbuildPlugin} from '@web/dev-server-esbuild'; import {fromRollup} from '@web/dev-server-rollup'; import {storybookPlugin} from '@web/dev-server-storybook'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; - const WWW_PATH = ['src', 'www']; const STORYBOOK_PATH = [...WWW_PATH, '.storybook']; diff --git a/client/src/www/test.action.mjs b/client/src/www/test.action.mjs index aecb4587e9..e2f12fe452 100644 --- a/client/src/www/test.action.mjs +++ b/client/src/www/test.action.mjs @@ -15,13 +15,11 @@ import path from 'path'; import url from 'url'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; import karma from 'karma'; import minimist from 'minimist'; import puppeteer from 'puppeteer'; - -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; - const KARMA_CONFIG_PATH = ['client', 'src', 'www', 'karma.conf.js']; /** diff --git a/client/src/www/webpack_cordova.mjs b/client/src/www/webpack_cordova.mjs index f6912b4983..3a204fbf58 100644 --- a/client/src/www/webpack_cordova.mjs +++ b/client/src/www/webpack_cordova.mjs @@ -13,13 +13,13 @@ // limitations under the License. import path from 'path'; +import {getRootDir} from '@outline/infrastructure/build/get_root_dir.mjs'; import CopyPlugin from 'copy-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import webpack from 'webpack'; import {merge} from 'webpack-merge'; import {baseConfig, browserConfig, require, __dirname, TS_LOADER, GENERATE_CSS_RTL_LOADER} from './webpack_base.mjs'; -import {getRootDir} from '../../../src/build/get_root_dir.mjs'; const BABEL_LOADER = { loader: 'babel-loader', diff --git a/commitlint.config.js b/commitlint.config.js index 640a4d1cd9..1fda5ff726 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -17,6 +17,7 @@ module.exports = { 'devtools', 'docs', 'infrastructure', + 'infrastructure/build', 'manager', 'manager/linux', 'manager/mac', @@ -24,7 +25,6 @@ module.exports = { 'service', 'service/linux', 'service/windows', - 'src/build', 'storybook', 'www', ], diff --git a/src/build/download_file.mjs b/infrastructure/build/download_file.mjs similarity index 100% rename from src/build/download_file.mjs rename to infrastructure/build/download_file.mjs diff --git a/src/build/get_file_checksum.mjs b/infrastructure/build/get_file_checksum.mjs similarity index 100% rename from src/build/get_file_checksum.mjs rename to infrastructure/build/get_file_checksum.mjs diff --git a/src/build/get_root_dir.mjs b/infrastructure/build/get_root_dir.mjs similarity index 100% rename from src/build/get_root_dir.mjs rename to infrastructure/build/get_root_dir.mjs diff --git a/src/build/run_action.mjs b/infrastructure/build/run_action.mjs similarity index 100% rename from src/build/run_action.mjs rename to infrastructure/build/run_action.mjs diff --git a/src/build/spawn_stream.mjs b/infrastructure/build/spawn_stream.mjs similarity index 100% rename from src/build/spawn_stream.mjs rename to infrastructure/build/spawn_stream.mjs diff --git a/list.action.mjs b/list.action.mjs index 6f08c53899..9f9f70442a 100644 --- a/list.action.mjs +++ b/list.action.mjs @@ -18,7 +18,7 @@ import url from 'url'; import * as globby from 'globby'; -import {getRootDir} from './src/build/get_root_dir.mjs'; +import {getRootDir} from './infrastructure/build/get_root_dir.mjs'; /** * @description returns a list of all valid actions to run diff --git a/package.json b/package.json index 894aafae99..209a30ad0b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "scripts": { "action:help": "npm run action list", "action:list": "npm run action list", - "action": "node ./src/build/run_action.mjs", + "action": "node ./infrastructure/build/run_action.mjs", "clean": "npm run clean --workspaces && rm -rf output node_modules third_party/jsign/*.jar && go run github.com/go-task/task/v3/cmd/task clean", "format:all": "prettier --write \"**/*.{cjs,mjs,html,js,json,md,ts}\"", "format": "pretty-quick --staged --pattern \"**/*.{cjs,mjs,html,js,json,md,ts}\"", diff --git a/server_manager/electron_app/build.action.sh b/server_manager/electron_app/build.action.sh index 9e77a149be..8572c57ed3 100755 --- a/server_manager/electron_app/build.action.sh +++ b/server_manager/electron_app/build.action.sh @@ -50,7 +50,7 @@ if [[ -z "${WEBPACK_MODE:-}" ]]; then fi # Build the Web App. -node src/build/run_action.mjs server_manager/web_app/build +node infrastructure/build/run_action.mjs server_manager/web_app/build # Compile the Electron main process and preload to the app root folder. # Since Node.js on Cygwin doesn't like absolute Unix-style paths, diff --git a/server_manager/electron_app/package.action.sh b/server_manager/electron_app/package.action.sh index d10a377973..4283cdbb77 100755 --- a/server_manager/electron_app/package.action.sh +++ b/server_manager/electron_app/package.action.sh @@ -97,7 +97,7 @@ function main() { *) ;; esac done - node src/build/run_action.mjs server_manager/electron_app/build --buildMode="${BUILD_MODE}" --versionName="${version_name}" + node infrastructure/build/run_action.mjs server_manager/electron_app/build --buildMode="${BUILD_MODE}" --versionName="${version_name}" package_electron finish_yaml_files "${staging_percentage}" } diff --git a/server_manager/electron_app/start.action.sh b/server_manager/electron_app/start.action.sh index 4ab5424951..4f075f484c 100755 --- a/server_manager/electron_app/start.action.sh +++ b/server_manager/electron_app/start.action.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -node src/build/run_action.mjs server_manager/electron_app/build "$@" +node infrastructure/build/run_action.mjs server_manager/electron_app/build "$@" cd "${BUILD_DIR}/server_manager/electron_app/static" diff --git a/server_manager/web_app/build.action.sh b/server_manager/web_app/build.action.sh index 8d2230ded6..573aece060 100755 --- a/server_manager/web_app/build.action.sh +++ b/server_manager/web_app/build.action.sh @@ -19,7 +19,7 @@ set -eu readonly OUT_DIR="${BUILD_DIR}/server_manager/web_app" rm -rf "${OUT_DIR}" -node src/build/run_action.mjs server_manager/web_app/build_install_script +node infrastructure/build/run_action.mjs server_manager/web_app/build_install_script # Node.js on Cygwin doesn't like absolute Unix-style paths. # So, we use a relative path as input to webpack. diff --git a/server_manager/web_app/start.action.sh b/server_manager/web_app/start.action.sh index 8a4cfdd817..be7dbc563c 100755 --- a/server_manager/web_app/start.action.sh +++ b/server_manager/web_app/start.action.sh @@ -18,6 +18,6 @@ set -eu rm -rf "${BUILD_DIR}/server_manager/web_app" -node src/build/run_action.mjs server_manager/web_app/build_install_script +node infrastructure/build/run_action.mjs server_manager/web_app/build_install_script webpack-dev-server --config=server_manager/browser.webpack.js --open diff --git a/third_party/jsign/index.mjs b/third_party/jsign/index.mjs index d5cf3e10b2..07bb201d9c 100644 --- a/third_party/jsign/index.mjs +++ b/third_party/jsign/index.mjs @@ -15,9 +15,9 @@ import {spawn} from 'node:child_process'; import {resolve} from 'node:path'; -import {downloadHttpsFile} from '../../src/build/download_file.mjs'; -import {getFileChecksum} from '../../src/build/get_file_checksum.mjs'; -import {getRootDir} from '../../src/build/get_root_dir.mjs'; +import {downloadHttpsFile} from '../../infrastructure/build/download_file.mjs'; +import {getFileChecksum} from '../../infrastructure/build/get_file_checksum.mjs'; +import {getRootDir} from '../../infrastructure/build/get_root_dir.mjs'; /** * Run jsign.jar to sign `fileToSign` with a list of cli arguments stored in `options`.