mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
Improve build stages (#3744)
* travis precache * rb change * remove ut * add cache warm up * Prepare cache fix * add test * use env variabble to tag * use env to label stages * move lint step at start * use dist for e2e * upload dist in alfresco * modify permissions * travis script node * remove polyfills * revert some changes * fix demo shell run test * solve download * revert debatable gallery change
This commit is contained in:
19
scripts/copy-dist-node.sh
Normal file
19
scripts/copy-dist-node.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
cd $DIR/../
|
||||
|
||||
echo "====== COPY new build in node_modules ===== "
|
||||
|
||||
rm -rf ../node_modules/@alfresco
|
||||
|
||||
mkdir -p $DIR/../node_modules/@alfresco/adf-core
|
||||
mkdir -p $DIR/../node_modules/@alfresco/adf-content-services
|
||||
mkdir -p $DIR/../node_modules/@alfresco/adf-process-services
|
||||
mkdir -p $DIR/../node_modules/@alfresco/adf-insights
|
||||
|
||||
cp -R $DIR/../lib/dist/core/* $DIR/../node_modules/@alfresco/adf-core
|
||||
cp -R $DIR/../lib/dist/content-services/* $DIR/../node_modules/@alfresco/adf-content-services
|
||||
cp -R $DIR/../lib/dist/process-services/* $DIR/../node_modules/@alfresco/adf-process-services
|
||||
cp -R $DIR/../lib/dist/insights/* $DIR/../node_modules/@alfresco/adf-insights
|
84
scripts/download-build-in-cs.js
Executable file
84
scripts/download-build-in-cs.js
Executable file
@@ -0,0 +1,84 @@
|
||||
var program = require('commander');
|
||||
var AlfrescoApi = require('alfresco-js-api-node');
|
||||
var http = require('http');
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var archiver = require('archiver');
|
||||
var unzipper = require('unzipper');
|
||||
|
||||
var exec = require('child_process').exec;
|
||||
|
||||
replaceHrefInIndex = (folder) => {
|
||||
fs.readFile(`demo-shell/${folder}/index.html`, 'utf8', function (err, data) {
|
||||
if (err) {
|
||||
return console.log(err);
|
||||
}
|
||||
|
||||
var result = data.replace(`base href="/"`, `base href=\"/${folder}/\"`);
|
||||
|
||||
fs.writeFile(`demo-shell/${folder}/index.html`, result, 'utf8', function (err) {
|
||||
if (err) return console.log(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-p, --password [type]', 'password')
|
||||
.option('-u, --username [type]', 'username')
|
||||
.option('--base-href [type]', '')
|
||||
.option('-f, --folder [type]', 'Name of the folder')
|
||||
.option('-host, --host [type]', 'URL of the CS')
|
||||
.parse(process.argv);
|
||||
|
||||
let alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: program.host
|
||||
});
|
||||
|
||||
alfrescoJsApi.login(program.username, program.password);
|
||||
|
||||
let zipDemoNode;
|
||||
|
||||
try {
|
||||
zipDemoNode = await alfrescoJsApi.nodes.getNode('-my-', {
|
||||
'relativePath': `Builds/${program.folder}/demo.zip`
|
||||
});
|
||||
} catch (error) {
|
||||
console.log('error: ' + error);
|
||||
}
|
||||
|
||||
const url = await alfrescoJsApi.content.getContentUrl(zipDemoNode.entry.id, true);
|
||||
|
||||
console.log('Download zip');
|
||||
|
||||
let outputFolder = program.baseHref ? program.baseHref : 'dist';
|
||||
|
||||
var file = fs.createWriteStream('demo.zip');
|
||||
http.get(`http://${url}`, (response) => {
|
||||
response.pipe(file);
|
||||
file.on('finish', async () => {
|
||||
console.log('Unzip Demo ' + path.join(__dirname, '../demo.zip'));
|
||||
fs.createReadStream(path.join(__dirname, '../demo.zip'))
|
||||
.pipe(unzipper.Extract({path: path.join(__dirname, '../demo-shell')}))
|
||||
.on('finish', () => {
|
||||
exec(`mv demo-shell/demo.zip demo-shell/${outputFolder}`, (err, stdout, stderr) => {
|
||||
if (err) {
|
||||
console.log(`err: ${err}`);
|
||||
return;
|
||||
}
|
||||
|
||||
if(program.baseHref) {
|
||||
replaceHrefInIndex(outputFolder);
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
main();
|
16
scripts/lint.sh
Executable file
16
scripts/lint.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd "$DIR/../"
|
||||
|
||||
echo "====== lint Lib ====="
|
||||
|
||||
npm run lint-lib || exit 1
|
||||
|
||||
echo "====== lint E2E ====="
|
||||
|
||||
npm run lint-e2e
|
||||
|
||||
echo "====== lint Demo shell ====="
|
||||
|
||||
ng lint dev --fix
|
@@ -3,10 +3,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
cd $DIR/..
|
||||
|
||||
echo "====== lint ====="
|
||||
|
||||
npm run lint-lib || exit 1
|
||||
|
||||
echo "====== clean ====="
|
||||
|
||||
rm -rf node_modules/@alfresco
|
||||
|
@@ -13,6 +13,7 @@ eval GIT_ISH=""
|
||||
eval SINGLE_TEST=""
|
||||
eval EXEC_VERSION_JSAPI=false
|
||||
eval JSAPI_VERSION=""
|
||||
eval EXECLINT=true
|
||||
|
||||
eval projects=( "core"
|
||||
"content-services"
|
||||
@@ -53,13 +54,11 @@ enable_testbrowser(){
|
||||
|
||||
test_project() {
|
||||
echo "====== test project: $1 ====="
|
||||
ng lint $1 || exit 1
|
||||
ng test $1 --watch=false || exit 1
|
||||
}
|
||||
|
||||
debug_project() {
|
||||
echo "====== debug project: $1 ====="
|
||||
ng lint $1 || exit 1
|
||||
ng test $1 || exit 1
|
||||
}
|
||||
|
||||
@@ -92,6 +91,10 @@ exec_install(){
|
||||
EXEC_INSTALL=false
|
||||
}
|
||||
|
||||
skip_lint(){
|
||||
EXECLINT=false
|
||||
}
|
||||
|
||||
while [[ $1 == -* ]]; do
|
||||
case "$1" in
|
||||
-h|--help|-\?) show_help; exit 0;;
|
||||
@@ -107,12 +110,17 @@ while [[ $1 == -* ]]; do
|
||||
-c|--clean) clean; shift;;
|
||||
-si|--skipinstall) exec_install; shift;;
|
||||
-sb|--skipbuild) exclude_build; shift;;
|
||||
-sl|--skip-lint) skip_lint; shift;;
|
||||
-*) echo "invalid option: $1" 1>&2; show_help; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
cd "$DIR/../"
|
||||
|
||||
if [[ EXECLINT == "true" ]]; then
|
||||
npm run lint-lib || exit 1
|
||||
fi
|
||||
|
||||
if $EXEC_CLEAN == true; then
|
||||
echo "====== Clean components ====="
|
||||
npm install rimraf -g
|
||||
|
@@ -4,6 +4,8 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd "$DIR/../"
|
||||
BROWSER_RUN=false
|
||||
DEVELOPMENT=false
|
||||
EXECLINT=true
|
||||
LITESERVER=false
|
||||
|
||||
show_help() {
|
||||
echo "Usage: ./scripts/test-e2e-lib.sh -host adf.domain.com -u admin -p admin -e admin"
|
||||
@@ -20,6 +22,7 @@ show_help() {
|
||||
echo "-host or --host URL of the Front end to test"
|
||||
echo "-save save the error screenshot in the remote env"
|
||||
echo "-timeout or --timeout override the timeout foe the wait utils"
|
||||
echo "-sl --skip-lint skip lint"
|
||||
echo "-h or --help"
|
||||
}
|
||||
|
||||
@@ -70,6 +73,14 @@ set_selenium(){
|
||||
SELENIUM_SERVER=$1
|
||||
}
|
||||
|
||||
skip_lint(){
|
||||
EXECLINT=false
|
||||
}
|
||||
|
||||
lite_server(){
|
||||
LITESERVER=true
|
||||
}
|
||||
|
||||
while [[ $1 == -* ]]; do
|
||||
case "$1" in
|
||||
-h|--help|-\?) show_help; exit 0;;
|
||||
@@ -81,10 +92,12 @@ while [[ $1 == -* ]]; do
|
||||
-b|--browser) set_browser; shift;;
|
||||
-dev|--dev) set_development; shift;;
|
||||
-s|--spec) set_test $2; shift 2;;
|
||||
-ud|--use-dist) lite_server; shift;;
|
||||
-save) set_save_screenshot; shift;;
|
||||
-proxy|--proxy) set_proxy $2; shift 2;;
|
||||
-s|--seleniumServer) set_selenium $2; shift 2;;
|
||||
-host|--host) set_host $2; shift 2;;
|
||||
-sl|--skip-lint) skip_lint; shift;;
|
||||
-*) echo "invalid option: $1" 1>&2; show_help; exit 1;;
|
||||
esac
|
||||
done
|
||||
@@ -104,14 +117,22 @@ export FOLDER=$FOLDER'/'
|
||||
export SELENIUM_SERVER=$SELENIUM_SERVER
|
||||
export NAME_TEST=$NAME_TEST
|
||||
|
||||
npm run lint-e2e || exit 1
|
||||
if [[ EXECLINT == "true" ]]; then
|
||||
npm run lint-e2e || exit 1
|
||||
fi
|
||||
|
||||
if [[ $DEVELOPMENT == "true" ]]; then
|
||||
echo "====== Run against local development ====="
|
||||
echo "====== Run against local development ====="
|
||||
npm run e2e-lib || exit 1
|
||||
else
|
||||
webdriver-manager update --gecko=false --versions.chrome=2.38
|
||||
./node_modules/protractor/bin/protractor protractor.conf.js || exit 1
|
||||
webdriver-manager update --gecko=false --versions.chrome=2.38
|
||||
if [[ $LITESERVER == "true" ]]; then
|
||||
echo "====== Run dist in lite-server ====="
|
||||
ls demo-shell/dist
|
||||
npm run lite-server-e2e>/dev/null & ./node_modules/protractor/bin/protractor protractor.conf.js || exit 1
|
||||
else
|
||||
./node_modules/protractor/bin/protractor protractor.conf.js || exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
93
scripts/upload-build-in-cs.js
Executable file
93
scripts/upload-build-in-cs.js
Executable file
@@ -0,0 +1,93 @@
|
||||
var program = require('commander');
|
||||
var AlfrescoApi = require('alfresco-js-api-node');
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var archiver = require('archiver');
|
||||
|
||||
writeZipLib = async function (zipFolder) {
|
||||
|
||||
if (!fs.existsSync(zipFolder)) {
|
||||
fs.mkdirSync(zipFolder);
|
||||
}
|
||||
|
||||
// create a file to stream archive data to.
|
||||
let output = fs.createWriteStream(path.join(zipFolder, `demo.zip`));
|
||||
let archive = archiver('zip', {
|
||||
zlib: {level: 9} // Sets the compression level.
|
||||
});
|
||||
|
||||
archive.pipe(output);
|
||||
archive.directory(path.join(__dirname, `../demo-shell/dist/`), `demo.zip`);
|
||||
|
||||
return archive.finalize();
|
||||
};
|
||||
|
||||
async function main() {
|
||||
|
||||
program
|
||||
.version('0.1.0')
|
||||
.option('-p, --password [type]', 'password')
|
||||
.option('-u, --username [type]', 'username')
|
||||
.option('-f, --folder [type]', 'Name of the folder')
|
||||
.option('-host, --host [type]', 'URL of the CS')
|
||||
.parse(process.argv);
|
||||
|
||||
let alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: program.host
|
||||
});
|
||||
|
||||
let zipFolder = path.join(__dirname, '../demo-shell/zip/');
|
||||
|
||||
await this.writeZipLib(zipFolder);
|
||||
|
||||
let files = fs.readdirSync(path.join(__dirname, '../demo-shell/zip'));
|
||||
|
||||
if (files && files.length > 0) {
|
||||
|
||||
alfrescoJsApi.login(program.username, program.password);
|
||||
let folder;
|
||||
|
||||
if (!program.folder) {
|
||||
program.folder = Date.now();
|
||||
}
|
||||
|
||||
try {
|
||||
folder = await alfrescoJsApi.nodes.addNode('-my-', {
|
||||
'name': program.folder,
|
||||
'relativePath': `Builds`,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {
|
||||
'overwrite': true
|
||||
});
|
||||
} catch (error) {
|
||||
console.log('error' + error);
|
||||
}
|
||||
|
||||
for (const fileName of files) {
|
||||
|
||||
let pathFile = path.join(__dirname, '../demo-shell/zip/demo.zip');
|
||||
|
||||
console.log('Upload ' + pathFile);
|
||||
let file = fs.createReadStream(pathFile);
|
||||
|
||||
try {
|
||||
await alfrescoJsApi.upload.uploadFile(
|
||||
file,
|
||||
'',
|
||||
folder.entry.id,
|
||||
null,
|
||||
{
|
||||
'name': file.name,
|
||||
'nodeType': 'cm:content'
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.log('error' + error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
Reference in New Issue
Block a user