Save logs on ci failure

pull/3467/head
Chocobozzz 2020-12-10 11:24:17 +01:00 committed by Chocobozzz
parent 040d6896a3
commit 83ef31fe10
3 changed files with 22 additions and 4 deletions

View File

@ -105,4 +105,5 @@ jobs:
if: failure()
with:
name: test-storages-${{ matrix.test_suite }}
path: test*/logs/*
path: artifacts
retention-days: 7

View File

@ -64,6 +64,10 @@ async function testImage (url: string, imageName: string, imagePath: string, ext
expect(data.length).to.be.below(maxLength, "the generated image is way larger than the recorded fixture")
}
function isGithubCI () {
return !!process.env.GITHUB_WORKSPACE
}
function buildAbsoluteFixturePath (path: string, customCIPath = false) {
if (isAbsolute(path)) return path
@ -151,6 +155,7 @@ export {
getFileSize,
immutableAssign,
testImage,
isGithubCI,
buildAbsoluteFixturePath,
root,
generateHighBitrateVideo,

View File

@ -2,11 +2,11 @@
import { expect } from 'chai'
import { ChildProcess, exec, fork } from 'child_process'
import { copy, pathExists, readdir, readFile, remove } from 'fs-extra'
import { copy, ensureDir, pathExists, readdir, readFile, remove } from 'fs-extra'
import { join } from 'path'
import { randomInt } from '../../core-utils/miscs/miscs'
import { VideoChannel } from '../../models/videos'
import { buildServerDirectory, getFileSize, root, wait } from '../miscs/miscs'
import { buildServerDirectory, getFileSize, isGithubCI, root, wait } from '../miscs/miscs'
interface ServerInfo {
app: ChildProcess
@ -298,11 +298,23 @@ function killallServers (servers: ServerInfo[]) {
}
}
function cleanupTests (servers: ServerInfo[]) {
async function cleanupTests (servers: ServerInfo[]) {
killallServers(servers)
if (isGithubCI()) {
await ensureDir('artifacts')
}
const p: Promise<any>[] = []
for (const server of servers) {
if (isGithubCI()) {
const origin = await buildServerDirectory(server, 'logs/peertube.log')
const destname = `peertube-${server.internalServerNumber}.log`
console.log('Saving logs %s.', destname)
await copy(origin, join('artifacts', destname))
}
if (server.parallel) {
p.push(flushTests(server.internalServerNumber))
}