citools Documentation



Similar documents
How to Create a Free Private GitHub Repository Educational Account

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

monoseq Documentation

Putting It All Together. Vagrant Drush Version Control

Django Two-Factor Authentication Documentation

Magento OpenERP Integration Documentation

Using GitHub for Rally Apps (Mac Version)

StriderCD Book. Release 1.4. Niall O Higgins

latest Release 0.2.6

Python DNS Failover Documentation

Memopol Documentation

TaxonHub Client. What is Taxon? TaxonHub Client. The Open Source project. suggest-term. admin. Strategy for version numbers

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

On premise upgrade guide (to 3.3) XperiDo for Microsoft Dynamics CRM

Puppet Firewall Module and Landb Integration

depl Documentation Release depl contributors

Content. Development Tools 2(63)

Dry Dock Documentation

Online Backup - Installation and Setup

Jenkins: The Definitive Guide

Elgg 1.8 Social Networking

Many projects, one code

Backing up with Windows 7

Version Control Your Jenkins Jobs with Jenkins Job Builder

Version Control with. Ben Morgan

Continuous Integration and Delivery at NSIDC

Drupal CMS for marketing sites

Hudson Continous Integration Server. Stefan Saasen,

Web Made Easy. Planning Session

Sonatype CLM for Maven. Sonatype CLM for Maven

Flask-SSO Documentation

Diablo 3 API Documentation

Integrated HD Setup and Installation

How To Manage Your Quarantine On A Blackberry.Com

Packrat: A Dependency Management System for R

Graphviz Website Installation, Administration and Maintenance

User Manual: Using Hadoop with WS-PGRADE. workflow.

Digi Connect Wan 3G Application Guide Update the firmware, backup and restore the configuration of a Digi Connect Wan 3G using a USB flash drive.

ALERT installation setup

Liferay Portal User Guide. Joseph Shum Alexander Chow

Introduction to Version Control with Git

1. Data Domain Pre-requisites. 2. Enabling OST

Hadoop Data Warehouse Manual

Ansible. Configuration management tool and ad hoc solution. Marcel Nijenhof

Installation Guide. (June 2014)

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Multi-touch app development with modern web tools. David Reagan, Advanced Visualization Lab

HIPAA Compliance Use Case

Flexbox (Zimbra) 5.09 Connector for Outlook BACKUP BEFORE YOU BEGIN TO UPGRADE!

MMLIST Listserv User's Guide for ICORS.ORG

ISM Configuration Step by Step Guide HTTP Monitor. Overview. ISM Configuration Step by Step Guide HTTP Monitor

MOOSE-Based Application Development on GitLab

DEPLOYMENT GUIDE. Deploying F5 for High Availability and Scalability of Microsoft Dynamics 4.0

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Advanced Computing Tools for Applied Research Chapter 4. Version control

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Eurobackup PRO Exchange Databases Backup Best Practices

How to Schedule Report Execution and Mailing

Version 3.x. Barracuda Spam & Virus Firewall User s Guide. Barracuda Networks Inc S. Winchester Blvd Campbell, CA

Achieving Continuous Integration with Drupal

ITA Mail Archive Setup Guide

Getting started with 2c8 plugin for Microsoft Sharepoint Server 2010

Creating Microsoft Azure Web Sites

DEPLOYMENT GUIDE DEPLOYING F5 WITH MICROSOFT WINDOWS SERVER 2008

Installation Guide. (You can get these files from

What's New In DITA CMS 4.0

LAVA Project Update. Paul Larson

Mahara: MyPortfolio. Create content Build pages Share. A user guide for beginners. What is Mahara?

Introducing Xcode Source Control

A Manual on use of ABCD central and VHL-Site modules for Developing Library Information Discovery and Information Literacy Tools

Collaborative Software Development Using R-Forge

Building a Continuous Integration Pipeline with Docker

Raspberry Pi Kernel-o-Matic

SagePay payment gateway package for django-oscar Documentation

Version Control using Git and Github. Joseph Rivera

FEEG Applied Programming 3 - Version Control and Git II

2. Findings Summary. Resolved Issues

Barracuda Spam Firewall User s Guide

SP-initiated SSO for Smartsheet is automatically enabled when the SAML feature is activated.

ICINGA2 OPEN SOURCE MONITORING

Saruman Documentation

Version Control with Subversion

Online Backup Client User Manual

Using Microsoft Azure for Students

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations

Hudson configuration manual

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

VOC Documentation. Release 0.1. Russell Keith-Magee

Archive One Policy V4.2 Quick Start Guide October 2005

Basic Router and Switch Instructions (Cisco Devices)

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

Continuous Integration

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Software Configuration Management and Continuous Integration

Record Tagging for Microsoft Dynamics CRM

1. Product Information

jenkins, drupal & testing automating every phing! miggle

Installation Runbook for F5 Networks BIG-IP LBaaS Plugin for OpenStack Kilo

Transcription:

citools Documentation Release 0.1 Centrum Holdings September 20, 2015

Contents 1 On (continuous) versioning 3 2 Meta packages 5 3 (Django) web environment 7 4 Build process 9 5 Testing 11 6 Working with databases 13 7 Distribution and Deployment 15 i

ii

citools Documentation, Release 0.1 Ultimate goal of Continuous Integration tools is to provide integration button, magic key hit that will do everything needed for product to build & deploy. While there are some tools available, none of those fullfills our real-world needs. Basic idea is simple: use setup.py in similar fashion as Makefiles or ant, but take advantage of setuptools plugin system to provide globally available commands, easily configurable for every project. We are making some assumptions about project structure and needs. If you need to configure something more, let us know, or just fork us at github and send us Your pull request. Licensed under BSD, this library is maintained by Ella team from Centrum Holdings. For feedback, ideas, bug reports and friends, let us know in mailing list. Contents 1

citools Documentation, Release 0.1 2 Contents

CHAPTER 1 On (continuous) versioning Idea is simple: if you should be able to deploy software any time, every revision must have a release number. Thus, we have a stable version prefix, which we assume to be set by tag. Last digit in version is build number, thus number of commits since last tag 1. Number of digits in your version is arbitrary, but must be at least three (two for version prefix, like projectname-1, and one for build number). Then, version must be replaced in all files needed. We re now rewriting in following form in following places: 1. VERSION in $project/ init.py is set to version tuple (not string). We re assuming layout as in our djangobase-library (which is actually not much about Django). 2. versionstr (if found) in setup.py is replaced to string (not tuple). This is for libraries that must not import library itself and set version to $library. versionstr dynamically 3. TODO: debian,) 1 (TODO: Following is actually not yet supported; we re now assuming only version setting tags) Last tag means last tag that is setting project version. We support other tags, so either you must use $projectname-$version tags, or pass version_regexp argument to setuptools.setup in setup.py, which must be in form TODO 3

citools Documentation, Release 0.1 4 Chapter 1. On (continuous) versioning

CHAPTER 2 Meta packages There may be need for creating meta packages, that do not contain any code, but just specifies which packages should be bundled together (and in which version). Citools supports this behaviour by automatic computation of metapackage version and specifying exact version (especially for debian). You must only specify repositories You depend upon in arguments for setuptools.setup (only git supported for now):: dependency_repositories = [ ssh://server/my/library1, http://github.com/myuser/library/, ] By running setup.py compute_meta_version_git, library version will be computed as it s own version + sum of all versions of all child libraries. Specification via setup.py argument will be deprecated, you should use command line arguments instead. 5

citools Documentation, Release 0.1 6 Chapter 2. Meta packages

CHAPTER 3 (Django) web environment 7

citools Documentation, Release 0.1 8 Chapter 3. (Django) web environment

CHAPTER 4 Build process 9

citools Documentation, Release 0.1 10 Chapter 4. Build process

CHAPTER 5 Testing 11

citools Documentation, Release 0.1 12 Chapter 5. Testing

CHAPTER 6 Working with databases Downloading and restoring backup: [backup] realm=backuprealm username=blah password=xxx uri=https://my.backup.server.cz/my/dir/backup_archive.tar.gz tempdir=/if/you/need/bigger/tempdir/to/unpack/archive/ [database] file=my/database/backup/db.sql name=dbname username=buildbot password=xxx citools -c /etc/$project/citools.ini db_restore Supported backup formats are.tar.gz bz2,.sql.gz bz2 and plain.sql. When you use tar archive with more databases, you can restore more databases at once, if you define more sections with prefix database in your ini config file: [backup] realm=myrealm username=blah password=xxx uri=https://my.backup.server.cz/my/dir/backup_archive.tar.gz tempdir=/if/you/need/bigger/tempdir/to/unpack/archive/ [database_first] file=path/in/tarfile/database_first.sql name=database_first username=firstman password="" [database_second] file=path/in/tarfile/database_second.sql name=database_second username=secondman password=xxx when run as setup.py db_restore, /etc/$project/citools.ini is the default 13

citools Documentation, Release 0.1 14 Chapter 6. Working with databases

CHAPTER 7 Distribution and Deployment 15