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
|
// Protractor configuration file, see link for more information
|
||||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||||
|
|
||||||
|
const AlfrescoApi = require('@alfresco/js-api').AlfrescoApiCompatibility;
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
const { SpecReporter } = require('jasmine-spec-reporter');
|
||||||
const CDP = require('chrome-remote-interface');
|
const CDP = require('chrome-remote-interface');
|
||||||
|
const afterLaunch = require('./e2e/e2e-config/hooks/after-launch');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
|
|
||||||
@ -198,5 +200,6 @@ exports.config = {
|
|||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
afterLaunch
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user