Coder Social home page Coder Social logo

on-build-config's Introduction

on-build-config

'on-build-config' is the repository for RackHD CI/CD pipelines. Currently, there are 4 pipelines:

Copyright 2017, DELLEMC, Inc.

MasterCI

The entry point of MasterCI: jobs/MasterCI/MasterCI

The pipeline is responsible for RackHD daily release. It includes below 6 main stages:

  1. Unit Test: run unit test for each repository of RackHD
  2. Function Test: run Function Test against RackHD source code
  3. Packages Build: build debian packages of RackHD
  4. Images Build: build ova, vagrant, docker images of RackHD
  5. Post Test: run Function Test against built iamges
  6. Publish: push package and images to public platform

ContinuousFunctionTest

The entry point of ContinuousFunctionTest: jobs/ContinuousTest/Jenkinsfile

The pipeline is responsible for testing the stability of RackHD.

1.It includes one main stage: Function Test. It runs Function Test against RackHD source code.

2.If you want to run the Function Test locally, follow below steps:

a. Setup test environment

   wget https://raw.githubusercontent.com/RackHD/on-build-config/master/deploy_ci_locally/deploy_ci_locally.sh
   # The script does below steps:
   # 1. Clean up environment, such as stopping previous running containers, service mongodb and rabbitmq-server
   # 2. Checkout RackHD source code and run "npm install" under each repository of RackHD
   # 3. Download static files and docker base image
   # 4. Update config file under RackHD/test/config with IP of NIC whose ip starts with 172.31.128
   # 5. Build a docker image which contains RackHD and its dependents
   # 6. Run the build docker image
   # 7. Create the virtual env for test

   # Get help of the script
   ./deploy_ci_locally.sh -h
   # Deploy ci envitonment
   ./deploy_ci_locally.sh deploy -w workspace -p password
   # Cleanup
   ./deploy_ci_locally.sh cleanUp -p password

b. Deploy virtual Nodes or physical Nodes

c. Run test with stack "docker_local_run" (Doc for test: https://github.com/RackHD/RackHD/blob/master/test/README.md)

   # Go to RackHD directory ( If you didn't provide the argument  --RACKHD_DIR(RackHD directory) at step (a) above, RackHD will be clone by default in $WORKSPACE/RackHD/ )
   cd $WORKSPACE/RackHD/test

   #activate virtualenv (it was created in deploy_ci_locally.sh)
   source myenv_on-build-config

   # Run test with script run_tests.py
   # Arguments:
   # -test: Directory of test script
   # -group: target test group, such as smoke
   # -stack: target test stack, such as docker_local_run
   # --sm-amqp-use-user: user for accessing amqp
   # -xunit: generate xunit report
   # -v: Verbosity level of console and log output, 0~9, 0: Minimal logging; 9: Display infra.* and test.* at DEBUG_9 (max output)
   # -extra: comma separated list of extra config files (found in 'config' directory)

   # Run stack init
   python run_tests.py -test deploy/rackhd_stack_init.py -stack docker_local_run --sm-amqp-use-user guest -xunit

   # Run smoke test
   python run_tests.py -test tests -group smoke -stack docker_local_run --sm-amqp-use-user guest -v 4 -xunit

   # Test Install Centos 6.5
   python run_tests.py -test tests/bootstrap/test_api20_linux_bootstrap.py -extra install_centos65_minimum.json -stack docker_local_run --sm-amqp-use-user guest -v 4 -xunit

   # Test Install ESXi 6.0
   python run_tests.py -test tests/bootstrap/test_api20_esxi_bootstrap.py -extra install_esxi6.0_minimum.json -stack docker_local_run --sm-amqp-use-user guest -v 4 -xunit

   # Test Install Ubuntu 14.04
   python run_tests.py -test tests/bootstrap/test_api20_linux_bootstrap.py -extra install_ubuntu14.04_minimum.json -stack docker_local_run --sm-amqp-use-user guest -v 4 -xunit

PR Gate

The entry point of PR Gate: jobs/pr_gate/Jenkinsfile

The pipeline is responsible for testing each pull request of RackHD. Each pull request of each repository of RackHD will trigger the building of the pipeline. It includes 2 main stages:

  1. Unit Test: run Unit Test of repositories which are impacted by the pull request.
  2. Function Test: run Function Test against RackHD source code with the pull request.

SprintRelease

The entry point of SprintRelease: jobs/SprintRelease/Jenkinsfile

The pipeline is responsible for RackHD sprint release(1 week a sprint). It includes below 6 main stages:

  1. Unit Test: run unit test for each repository of RackHD
  2. Function Test: run Function Test against RackHD source code
  3. Packages Build: build debian packages of RackHD
  4. Images Build: build ova, vagrant, docker images of RackHD
  5. Post Test: run Function Test against built iamges
  6. Publish: push package and images to public platform

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

RackHD is a Trademark of Dell EMC

on-build-config's People

Contributors

amymullins avatar anhou avatar benbp avatar changev avatar dalebremner avatar geoff-reid avatar gpaulos avatar hohene avatar hqebupt avatar iceiilin avatar jenkinsrhd avatar jimturnquist avatar jlongever avatar johren avatar keedya avatar king-jam avatar lanchongyizu avatar larry-dean avatar panpan0000 avatar pengtian0 avatar rolandpoulter avatar srinia6 avatar stuart-stanley avatar sunnyqianzhang avatar tannoa2 avatar tldavies avatar yyscamper avatar zyoung51 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.