mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
Copy screenshots to env (#1508)
* add screenshots * Fix protractor file * make 1 test to fail * remove method * fix build number * add log * fix folder path * fix test * fix test * Move saving screenshots to separate file * Remove failing tests
This commit is contained in:
parent
c74eb55653
commit
cf9e3180c9
21
e2e/e2e-config/hooks/after-launch.js
Normal file
21
e2e/e2e-config/hooks/after-launch.js
Normal file
@ -0,0 +1,21 @@
|
||||
const uploadOutput = require('../utils/upload-output');
|
||||
|
||||
const SAVE_SCREENSHOT = process.env.SAVE_SCREENSHOT === 'true';
|
||||
|
||||
async function afterLaunch(statusCode) {
|
||||
|
||||
if (SAVE_SCREENSHOT) {
|
||||
console.log(`Save screenshot is ${SAVE_SCREENSHOT}, trying to save screenshots.`);
|
||||
|
||||
try {
|
||||
await uploadOutput();
|
||||
console.log('Screenshots saved successfully.');
|
||||
} catch (e) {
|
||||
console.log('Error happened while trying to upload screenshots and test reports: ', e);
|
||||
}
|
||||
} else {
|
||||
console.log(`Save screenshot is ${SAVE_SCREENSHOT}, no need to save screenshots.`);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = afterLaunch;
|
10
e2e/e2e-config/utils/build-number.js
Normal file
10
e2e/e2e-config/utils/build-number.js
Normal file
@ -0,0 +1,10 @@
|
||||
const buildNumber = () => {
|
||||
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
|
||||
if (!buildNumber) {
|
||||
process.env.TRAVIS_BUILD_NUMBER = Date.now();
|
||||
}
|
||||
|
||||
return process.env.TRAVIS_BUILD_NUMBER;
|
||||
}
|
||||
|
||||
module.exports = buildNumber;
|
69
e2e/e2e-config/utils/upload-output.js
Normal file
69
e2e/e2e-config/utils/upload-output.js
Normal file
@ -0,0 +1,69 @@
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const AlfrescoApi = require('@alfresco/js-api').AlfrescoApiCompatibility;
|
||||
const buildNumber = require('./build-number');
|
||||
const configScreenshotsPath = path.join(`${path.resolve(__dirname)}/../../../e2e-output/report/screenshots/`);
|
||||
const rimraf = require('rimraf');
|
||||
|
||||
uploadOutput = async function() {
|
||||
|
||||
let alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', hostEcm: process.env.SCREENSHOT_URL });
|
||||
alfrescoJsApi.login(process.env.SCREENSHOT_USERNAME, process.env.SCREENSHOT_PASSWORD);
|
||||
|
||||
await saveScreenshots(alfrescoJsApi);
|
||||
|
||||
rimraf(configScreenshotsPath, function () {
|
||||
console.log('done delete screenshot');
|
||||
});
|
||||
}
|
||||
|
||||
async function saveScreenshots(alfrescoJsApi) {
|
||||
let files = fs.readdirSync(configScreenshotsPath);
|
||||
|
||||
if (files && files.length > 0) {
|
||||
|
||||
let folder;
|
||||
|
||||
try {
|
||||
folder = await alfrescoJsApi.nodes.addNode('-my-', {
|
||||
'name': `screenshot`,
|
||||
'relativePath': `Builds/ACA-${buildNumber()}`,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {
|
||||
'overwrite': true
|
||||
});
|
||||
} catch (error) {
|
||||
folder = await alfrescoJsApi.nodes.getNode('-my-', {
|
||||
'relativePath': `Builds/ACA-${buildNumber()}/screenshot`,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {
|
||||
'overwrite': true
|
||||
});
|
||||
}
|
||||
|
||||
for (const fileName of files) {
|
||||
let pathFile = path.join(configScreenshotsPath, fileName);
|
||||
let file = fs.createReadStream(pathFile);
|
||||
|
||||
let safeFileName = fileName.replace(new RegExp('"', 'g'), '');
|
||||
|
||||
try {
|
||||
await alfrescoJsApi.upload.uploadFile(
|
||||
file,
|
||||
'',
|
||||
folder.entry.id,
|
||||
null,
|
||||
{
|
||||
'name': safeFileName,
|
||||
'nodeType': 'cm:content',
|
||||
'autoRename': true
|
||||
}
|
||||
);
|
||||
}catch(error){
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = uploadOutput;
|
@ -1,9 +1,11 @@
|
||||
// Protractor configuration file, see link for more information
|
||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
||||
const AlfrescoApi = require('@alfresco/js-api').AlfrescoApiCompatibility;
|
||||
const path = require('path');
|
||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
||||
const CDP = require('chrome-remote-interface');
|
||||
const afterLaunch = require('./e2e/e2e-config/hooks/after-launch');
|
||||
const fs = require('fs');
|
||||
require('dotenv').config();
|
||||
|
||||
@ -198,5 +200,6 @@ exports.config = {
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
afterLaunch
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user