]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/extra-utils/server/servers.ts
Move typescript utils in its own directory
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / server / servers.ts
CommitLineData
254d3579
C
1import { ensureDir } from 'fs-extra'
2import { isGithubCI } from '../miscs'
3import { PeerTubeServer, RunServerOptions } from './server'
89231874 4
2e980ed3 5async function createSingleServer (serverNumber: number, configOverride?: Object, options: RunServerOptions = {}) {
254d3579 6 const server = new PeerTubeServer({ serverNumber })
0e1dc3e7 7
2e980ed3 8 await server.flushAndRun(configOverride, options)
af4ae64f 9
254d3579 10 return server
913b1d71
C
11}
12
0305db28 13function createMultipleServers (totalServers: number, configOverride?: Object, options: RunServerOptions = {}) {
254d3579 14 const serverPromises: Promise<PeerTubeServer>[] = []
86ebdf8c 15
254d3579 16 for (let i = 1; i <= totalServers; i++) {
0305db28 17 serverPromises.push(createSingleServer(i, configOverride, options))
0e1dc3e7
C
18 }
19
254d3579 20 return Promise.all(serverPromises)
7bc29171
C
21}
22
254d3579
C
23async function killallServers (servers: PeerTubeServer[]) {
24 return Promise.all(servers.map(s => s.kill()))
0e1dc3e7
C
25}
26
254d3579 27async function cleanupTests (servers: PeerTubeServer[]) {
9293139f 28 await killallServers(servers)
86ebdf8c 29
83ef31fe
C
30 if (isGithubCI()) {
31 await ensureDir('artifacts')
32 }
33
6c5065a0 34 let p: Promise<any>[] = []
86ebdf8c 35 for (const server of servers) {
89d241a7 36 p = p.concat(server.servers.cleanupTests())
86ebdf8c
C
37 }
38
39 return Promise.all(p)
40}
41
0e1dc3e7
C
42// ---------------------------------------------------------------------------
43
44export {
254d3579
C
45 createSingleServer,
46 createMultipleServers,
86ebdf8c 47 cleanupTests,
254d3579 48 killallServers
0e1dc3e7 49}