-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[enhancement] Integrate with reportage and TypeScript #432
Comments
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
…tage-config-js, reportage-nginx-conf plugins and update tester packages
t2ym
added a commit
that referenced
this issue
Jul 26, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
[enhancement] Integrate with reportage and TypeScript
[monitoring] Introduce monitoring mode
Motivations
reportage
test runnerDesign Principles
monitoring
mode is disabled, the build is the same as before the mode is introducedmonitoring
mode is enabled, some security features are temporarily loosened so thatreportage
can work withthin-hook
applicationsComponents and Features
NEW
enableMonitoring
: Enable/Disable monitoring mode['mode'].enableMonitoring
:true
orfalse
NEW
monitor
: Startmonitor
serversmonitor
NEW
monitorServer
: Startmonitor
HTTPS servermonitorServer
called frommonitor
config:
bootstrap-js
: Allow no-hook scripts from reporter server['bootstrap-js'].additionalParameters
:true
onenableMonitoring
['bootstrap-js'].enableMonitoring
['bootstrap-js'].reporterOrigin
[path.base]/[path.config]/bootstrap-js/parameters.js
:hook.parameters.noHook
forreporterOrigin
ifenableMonitoring
istrue
config:
policy
: Allow no-hook scripts from reporter server['policy'].enableMonitoring
['policy'].reporterOrigin
: Allow reporter and test scripts to run as no-hook[path.base]/[path.config]/wildcardWhitelist.js
: Inmonitoring
mode, allowreportage
's reporterOrigin scripts to run as no-hookNEW
generate-version
: Flexible customization of app version at['hook-min-js'].searchParams.version
@thin-hook/generate-version
generate-version
['generate-version']
init
NEW
reportage-nginx-conf
: Generate[path.base]/nginx.conf
forreportage
reporter serverreportage-nginx-conf
@thin-hook/reportage-nginx-conf
['reportage-nginx-conf']
[path.base]/[path.config]/reportage-nginx-conf/nginx.conf
: template for[path.base]/nginx.conf
reportage
NEW
reportage-config-js
: Generate[path.base]/[path.test]/reportage.config.js
forreportage
reportage-config-js
@thin-hook/reportage-config-js
['reportage-config-js']
[path.base]/[path.config]/reportage-config-js/reportage.config.js
: template for[path.base]/[path.test]/reportage.config.js
[path.base]/[path.test]/package.json
: Set"type"
:"module"
to load[path.base]/[path.test]/*.js as ES modules
reportage
NEW sample tests for
reportage
[path.base]/[path.test]/suites-loader.js
[path.base]/[path.test]/common-suite.js
[path.base]/[path.test]/basic-suite.js
NEW
reportage-nginx-mkdir-log
: Create[path.base]/[path.test]/log
directoryreportage-nginx-mkdir-log
NEW
reportage-nginx-start
: Start nginx in backgroundreportage-nginx-start
['reportage-nginx-conf']
NEW
reportage-nginx-stop
: Stop nginxreportage-nginx-stop
['reportage-nginx-conf']
NEW
reportage-nginx-foreground
: Start nginx in foregroundreportage-nginx-foreground
['reportage-nginx-conf']
NEW
reportage-run
: Startreportage
CLI testreportage-run
['reportage-config-js']
NEW
reportage-browser
: Launch Chrome browser locally on Linux withreportage
configurationsreportage-browser
['reportage-config-js']
NEW
reportage-browser-wsl
: Launch Chrome for Windows from within Ubuntu WSL withreportage
configurationsreportage-browser-wsl
['reportage-config-js']
NEW
reportage-browser-windows-cmd
: Generate a Windows cmd file for launching Chrome for Windows withreportage
configurations for VMwarereportage-browser-windows-command
['reportage-config-js']
generate-cert-sh
: Support wildcard host names forreportage
@thin-hook/generate-cert-sh
[path.base]/[path.keys]/generate_cert.sh
:1.localhost
...32.localhost
,*.${SERVER_HOST}
[path.base]/[path.keys]/[certificates.CA]/wildcard.${HOST}.[key|crt]
cache-bundle-automation
: DeprecatecacheBundleUploadService
and useerrorReportService
insteadcache-bundle-automation
cache-bundle-js
: Supportmonitor
mode@thin-hook/cache-bundle-js
: Inmonitoring
mode, skip collecting data forcache-bundle.json
update-html-hash
: DeprecatecacheBundleUploadService
and useerrorReportService
insteadupdate-html-hash
integrity-service-helpers
: Skip building if already builtintegrity-service-helpers
[path.backend]/integrity-service-helpers
validation-console
: Skip building if already builtvalidation-console
[path.backend]/validatioin-console
cacheBundleGeneration.js
: Avoid deprecated puppeteer APIpage.waitFor()
[path.backend]/cacheBundleGeneration.js
integrityService.js
: Supportmonitor
mode[path.backend]/integrityService.js
: Inmonitor
mode, skip the host name (authority
) check and the hash (ClientIntegrity
) validation forreportage
to workcache-automation-js
: Supportmonitor
mode[path.base]/[path.config]/cache-automation-js/monitoring-automation.js
: importreportage
reporter script[path.base]/[path.config]/cache-automation-js/automation.js
: includemonitoring-automation.js
ifenableMonitoring
istrue
[enhancement] TypeScript support
Motivations
Design Principles
transpile
phase is newly introduced to preprocess the sources into executable JavaScripttranspile
phase can be eitherroot
orraw
directoryComponents and Features
NEW
transpileTarget
: Configure where to performtranspile
phase tasks;raw
orroot
['path'].transpileTarget
:raw
orroot
NEW
build-compat-libs
: Build compatible libraries for thin-hook (ES2018)build-compat-libs
['path'].compatLib
[path.base]/[path.compatLib]/build-compat-libs.sh
: any build scripts can be added[path.base]/[path.compatLib]/build-react.sh
: React with ESM exports[path.base]/[path.compatLib]/build-material-web.sh
:@material/web
with ES2018 targetprepare
NEW
non-js-imports
: Support importing non-js contents from modulesnon-js-imports
@thin-hook/non-js-imports
['non-js-imports']
transpile
NEW
frontend-modules-raw
: Install frontend modules in[path.base]/[path.raw]/
frontend-modules-raw
prepare
NEW
frontend-modules-locked-production
: Install frontend modules in[path.base]/[path.root]/
frontend-modules-locked-production
postTranspile
NEW
compile-scss
: Compile scss to css in[path.base]/[path[path.tranpileTarget]]/
compile-scss
['non-js-imports'].scssDirectories
: get the list of directories with scss filessass
transpile
NEW
typescript
: Compile TypeScript in[path.base]/[path[path.tranpileTarget]]/
typescript
typescript
transpile
Updated
inject
phasesinject
: Introduce monitoring mode and TypeScript supportinit
: typically [generate-version
]prepare
: typilcally [build-compat-libs
,frontend-modules-raw
]transpile
: typilcally [compile-scss
,typescript
,non-js-imports
]postTranspile
: typically [frontend-modules-locked-production
]reportage
: typically [reportage-nginx-mkdir-log
,reportage-nginx-conf
,reportage-config-js
]monitoring
: typically [dummy-script-hashes-integrity
,clean-gzip-json
,dummy-integrity
,cache-bundle-automation-json
]prepareRoot
: list of phases for preparing[path.base]/[path.root]
transpileTarget
:root
: typically [prepare
,clean
,transpile
,postTranspile
]transpileTarget
:raw
: typically [prepare
,transpile
,clean
,postTranspile
]enableMonitoring
:false
: typically [init
, ...prepareRoot
,backend
,plugin
,cache
,frontend
]enableMonitoring
:true
: typically [init
, ...prepareRoot
,backend
,reportage
,plugin
,monitoring
]The text was updated successfully, but these errors were encountered: