Giter Site home page Giter Site logo

skyformat99 / automation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from suse-cloud/automation

0.0 1.0 0.0 12.25 MB

Automation scripts for development, testing, and CI

License: Apache License 2.0

Makefile 0.45% Shell 76.82% Perl 5.33% Python 12.60% Ruby 4.80%

automation's Introduction

This repository contains various scripts which SUSE uses to automate development, testing, and CI (continuous integration) of the various components of SUSE Cloud, i.e. OpenStack and Crowbar.

Scripts

This project has several scripts for different automated tasks. Some of them are:

  • create-vm.sh: creates a fresh KVM VM via libvirt.
  • crowbar-prep.sh: prepares a host for Crowbar admin node installation.
  • /scripts/mkcloud: builds a SUSE Cloud environment for development or testing purposes.
  • repochecker: tries to solve runtime dependencies for a given repository
  • mkcloudruns: runs multiple copies of mkcloud for various scenarios. More details are in the README.

Documentation

Find out more about configuration and usage in /docs/mkcloud.md

License

Files in this repository are licensed under the Apache 2.0 license unless stated otherwise. See the LICENSE file for details.

Contributing

This project uses pull requests to process contributions and travis-ci to test that your changes are OK to be merged.

It's recommended to read Contributing to Open Source on GitHub and Forking Projects if you want to get a better understanding of how GitHub pull requests work.

Testing your changes

The syntax of the shell scripts is checked using bashate, you can install it running.

$ sudo pip install bashate

Once you have installed bashate and the changes you wanted, you should check the syntax of the shell scripts running make test. Here is an example output of a successful execution:

$ make test
cd scripts ; for f in *.sh mkcloud mkchroot jenkins/{update_automation,*.sh} ; do echo "checking $f" ; bash -n $f || exit 3 ; bash8 --ignore E010,E020 $f || exit 4 ; done
checking compare-crowbar-upstream.sh
checking create-vm.sh
checking crowbar-prep.sh
checking mkcloud-crowbar-logs.sh
checking qa_crowbarsetup.sh
checking setenv.2.sh
checking setenv.sh
checking mkcloud
checking mkchroot
checking jenkins/update_automation
checking jenkins/qa_openstack.sh
checking jenkins/qa_tripleo.sh
checking jenkins/update_tempest.sh
cd scripts ; for f in *.pl jenkins/{apicheck,jenkins-job-trigger,*.pl} ; do perl -c $f || exit 2 ; done
analyse-py-module-deps.pl syntax OK
jenkins/apicheck syntax OK
jenkins/jenkins-job-trigger syntax OK
jenkins/cloud-trackupstream-matrix.pl syntax OK
jenkins/jenkinsnotify.pl syntax OK
jenkins/openstack-unittest-testconfig.pl syntax OK
jenkins/track-upstream-and-package.pl syntax OK

jenkins jobs

There are manually maintained jobs, and some jobs are now using jenkins-job-builder which defines jobs in yaml format. New jobs should always be defined in yaml format.

The jenkins-job-builder jobs are deployed automatically (once per day) via the jenkins job cloud-update-ci.

They can also be deployed manually via Makefile targets

make cisd_deploy # deploys ci.suse.de jobs
make cioo_deploy # deploys ci.opensuse.org jobs

This requires setting up jenkins job builder locally:

zypper in python-jenkins-job-builder
  • Get the APIKEY from the CI web UI (Profile / Configure / Show API Key)
  • Create jenkins_jobs.ini as described below

Both Makefile targets need a valid jenkins_jobs ini file.

  • make cisd_deploy looks for /etc/jenkins_jobs/jenkins_jobs-cisd.ini
  • make cioo_deploy looks for /etc/jenkins_jobs/jenkins_jobs-cioo.ini

See /scripts/jenkins/jenkins_jobs.ini.sample

To update a single job on ci.suse.de, run:

jenkins-jobs --ignore-cache update \
    jenkins/ci.suse.de/:jenkins/ci.suse.de/templates/ <name-of-one-job>

For this you need a local ini file and add it via the --conf parameter to the above command.

To tune the Parsed Console Output of mkcloud jobs, edit the rules file according to the documented rules file syntax.

automation's People

Contributors

abelnavarro avatar aplanas avatar aspiers avatar bmwiedemann avatar cmurphy avatar dguitarbite avatar dirkmueller avatar evalle avatar felixsch avatar gosipyan avatar itxaka avatar jdsn avatar jgrassler avatar jmichel avatar jsuchome avatar kbaikov avatar maximilianmeister avatar mimi1vx avatar mjura avatar mmnelemane avatar mvidner avatar nicolasbock avatar nkrinner avatar rhafer avatar saschpe avatar sayalilunkad avatar skazi0 avatar toabctl avatar tpatzig avatar vuntz 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.