1
0
mirror of synced 2025-12-23 11:54:18 -05:00

don't need disk caching for site data (#26333)

* reinstate

* start server manually

* routing tests too

* skip more

* sleep more and fail if not 200

* use e2etest for content/ too

* automatically start server for jest

* does this work?

* feedbacked

* rename things

* getting it to work

* add dev dependency

* install the right version

* don't need to start that

* fix package lock

* update readme about it

* feedbacked

* don't need disk caching for site-data
This commit is contained in:
Peter Bengtsson
2022-03-19 12:05:27 -04:00
committed by GitHub
parent ae8a928909
commit b685b6fda7
3 changed files with 2 additions and 54 deletions

View File

@@ -135,11 +135,6 @@ jobs:
- name: Run build script
run: npm run build
- name: Warm possible disk caching
env:
NODE_ENV: test
run: ./script/warm-before-tests.mjs
- name: Run tests
env:
DIFF_FILE: get_diff_files.txt

View File

@@ -1,5 +1,3 @@
import fs from 'fs'
import os from 'os'
import path from 'path'
import flat from 'flat'
import { get, set } from 'lodash-es'
@@ -7,30 +5,7 @@ import languages from './languages.js'
import dataDirectory from './data-directory.js'
import encodeBracketedParentheses from './encode-bracketed-parentheses.js'
const TEMP_DIRECTORY = process.env.RUNNER_TEMP || os.tmpdir()
function diskMemoize(prefix, fn) {
const useCache = process.env.NODE_ENV !== 'development'
return (dir) => {
const cacheFileName = `${prefix}.${dir.replace(/[^\w]+/g, '-').toLowerCase() || 'en'}.json`
if (useCache) {
try {
return JSON.parse(fs.readFileSync(cacheFileName, 'utf-8'))
} catch (err) {
if (!(err.code === 'ENOENT' || err instanceof SyntaxError)) throw err
}
}
const result = fn(dir)
if (useCache) {
fs.writeFileSync(cacheFileName, JSON.stringify(result), 'utf-8')
console.log(`Disk-cache miss on ${cacheFileName}`, new Date())
}
return result
}
}
const loadSiteDataFromDir = diskMemoize(path.join(TEMP_DIRECTORY, 'docs-site-data'), (dir) => {
const loadSiteDataFromDir = (dir) => {
return {
site: {
data: dataDirectory(path.join(dir, 'data'), {
@@ -39,7 +14,7 @@ const loadSiteDataFromDir = diskMemoize(path.join(TEMP_DIRECTORY, 'docs-site-dat
}),
},
}
})
}
export default function loadSiteData() {
// load English site data

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env node
// [start-readme]
//
// It runs the warmServer() function because that function can do things
// like writing to disk as a caching mechanism.
// When jest runs tests, it starts multiple concurrent processes,
// even if it runs it serially (`--runInBand`) so it's highly likely
// that two concurrent processes both attempt to writing to
// the same exact file. By running this script before anything
// begins, we can be certain that files that should have been created
// are created.
//
// [end-readme]
import warmServer from '../lib/warm-server.js'
main()
async function main() {
await warmServer()
}