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:
Eugenio Romano
2018-09-05 12:40:03 +01:00
committed by GitHub
parent c0acc53eb9
commit c6f56a2c2a
37 changed files with 10383 additions and 1450 deletions
+55 -63
View File
@@ -4,7 +4,7 @@ sudo: required
node_js:
# Use the explicit NodeJS LTS version 8.9.4 to avoid any automatic upgrade of the version.
- '8.9.4'
addons:
chrome: stable
before_script:
@@ -17,84 +17,74 @@ before_install:
- sh -e /etc/init.d/xvfb start
- sleep 3 # give xvfb some time to start
env:
matrix:
- MODULE=core
- MODULE=insights
- MODULE=process-services
- MODULE=content-services
- MODULE=demo-shell
- MODULE=packaging
install:
- if ([ "$MODULE" != "demo-shell" ]); then
if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/npm-build-all.sh || exit 1;);
else
(./scripts/npm-build-all.sh -vjsapi alpha -sb || exit 1;);
fi
fi
script:
- if ([ "$MODULE" == "core" ]); then
(./scripts/npm-build-all.sh -si -sb -t "core" || exit 1;);
fi
- if ([ "$MODULE" == "process-services" ]); then
(./scripts/npm-build-all.sh -si -sb -t "process-services" || exit 1;);
fi
- if ([ "$MODULE" == "insights" ]); then
(./scripts/npm-build-all.sh -si -sb -t "insights" || exit 1;);
fi
- if ([ "$MODULE" == "content-services" ]); then
(./scripts/npm-build-all.sh -si -sb -t "content-services" || exit 1;);
fi
- if ([ "$MODULE" == "packaging" ]); then
(npm run build-lib || exit 1;);
fi
- if ([ "$MODULE" == "demo-shell" ]); then
if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/start.sh -t -ss || exit 1;);
else
(./scripts/start.sh -dev -t -ss -vjsapi alpha || exit 1;);
fi
fi
jobs:
include:
- stage: Warm Up Cache
script: if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/npm-build-all.sh || exit 1;);
else
(./scripts/npm-build-all.sh -vjsapi alpha -sb --skip-lint || exit 1;);
fi
- stage: Lint
script: (./scripts/lint.sh)
- stage: Unit test
env: STAGE=core
script: (./scripts/npm-build-all.sh -si -sb -t "core" --skip-lint || exit 1;);
- stage: Unit test
env: STAGE=process-services
script: (./scripts/npm-build-all.sh -si -sb -t "process-services" --skip-lint|| exit 1;);
- stage: Unit test
env: STAGE=insights
script: (./scripts/npm-build-all.sh -si -sb -t "insights" --skip-lint || exit 1;);
- stage: Unit test
env: STAGE=content-services
script: (./scripts/npm-build-all.sh -si -sb -t "content-services" --skip-lint|| exit 1;);
- stage: Unit test
env: STAGE=demo-shell
script: if ([ "$TRAVIS_BRANCH" = "master" ]); then
(./scripts/start.sh -t -ss || exit 1;);
else
(./scripts/start.sh -dev -t -ss -vjsapi alpha || exit 1;);
fi
- stage: Packaging test
script: (npm run build-lib || exit 1;);
- stage: Test Update version 2.0.0
env: STAGE=test-BC
script: ./scripts/test-e2e-bc.sh
- # Test expors
- stage: Test Update version 2.0.0
env: STAGE=test-export
script: npm run test-export
- # Test Update generator-ng2-alfresco-app
- stage: Update children projects dependency #Update generator-ng2-alfresco-app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n generator-ng2-alfresco-app
- # Test Update alfresco-content-app
- stage: Update children projects dependency # Test Update alfresco-content-app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n alfresco-content-app
- # Test Update adf-app-manager-ui
- stage: Update children projects dependency # Test Update adf-app-manager-ui
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n adf-app-manager-ui
- # Test Update aalfresco-ng2-components
- stage: Update children projects dependency # Test Update aalfresco-ng2-components
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n alfresco-ng2-components
- # Test Update alfresco-modeler-app
- stage: Update children projects dependency # Test Update alfresco-modeler-app
if: tag =~ .*beta.*
script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n alfresco-modeler-app
- stage: e2e Test
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder core
- # Test process-services
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder process-services
- # Test content-services
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder content-services
- # Test insights
script: ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -dev -timeout 40000 --folder insights
- stage: Create Shell dist
script: ./copy-dist-node.sh; npm run build:dist; node ./scripts/upload-build-in-cs.js -u $E2E_USERNAME -p $E2E_PASSWORD --host $E2E_HOST -f $TRAVIS_BUILD_NUMBER
- stage: e2e Test # Test core
env: STAGE=core
script: node ./scripts/download-build-in-cs.js --username $E2E_USERNAME --password $E2E_USERNAME --host $E2E_HOST --folder $TRAVIS_BUILD_NUMBER; ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save --folder core --skip-lint --use-dist
- stage: e2e Test # Test process-services
env: STAGE=process-services
script: node ./scripts/download-build-in-cs.js --username $E2E_USERNAME --password $E2E_USERNAME --host $E2E_HOST --folder $TRAVIS_BUILD_NUMBER; ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save --folder process-services --skip-lint --use-dist
- stage: e2e Test # Test content-services
env: STAGE=content-services
script: node ./scripts/download-build-in-cs.js --username $E2E_USERNAME --password $E2E_USERNAME --host $E2E_HOST --folder $TRAVIS_BUILD_NUMBER; ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save --folder content-services --skip-lint --use-dist
- stage: e2e Test # Test insights
env: STAGE=insights
script: node ./scripts/download-build-in-cs.js --username $E2E_USERNAME --password $E2E_USERNAME --host $E2E_HOST --folder $TRAVIS_BUILD_NUMBER; ./scripts/test-e2e-lib.sh -host localhost:4200 -proxy $E2E_HOST -u $E2E_USERNAME -p $E2E_PASSWORD -e $E2E_EMAIL -b -save -folder insights --skip-lint --use-dist
- stage: Create Docker PR
script: ./scripts/test-dist.sh -n $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1)
script: node ./scripts/download-build-in-cs.js --username $E2E_USERNAME --password $E2E_USERNAME --host $E2E_HOST --folder $TRAVIS_BUILD_NUMBER --base-href $TRAVIS_BUILD_NUMBER; -n $TRAVIS_BUILD_NUMBER && (./scripts/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1)
- stage: Deploy Docker PR
script: node ./scripts/pr-deploy.js -n $TRAVIS_BUILD_NUMBER -u $RANCHER_TOKEN -p $RANCHER_SECRET -s $REPO_RANCHER --image "docker:$REPO_DOCKER/adf/demo-shell:$TRAVIS_BUILD_NUMBER" --env $ENVIRONMENT_NAME -r $ENVIRONMENT_URL || exit 1
@@ -129,3 +119,5 @@ after_success:
cache:
directories:
- node_modules
- lib/dist
- demo-shell/dist