Skip to main content

citty -- CI driver in your terminal.

Project description

NAME

citty: Continuous Integration in a tty

SYNOPSIS

## Install

$ python setup.py develop   # local

$python setup.py install    # global

## Add projects

$ citty add ~/projects/foo  # "name" is foo

$ citty add ~/projects/foo --name fubar  # "name" is "fubar"

## List projects
$ citty list
            foo : make test  : ~/projects/foo
          fubar : make test  : ~/projects/foo

$ citty list fubar		# match name or path
          fubar : make test  : ~/projects/foo

## Delete projects

$ citty delete foo          # exact name match

$ citty list
          fubar : make test  : ~/projects/foo

$ citty delete --all	# delete ALL the projects


## Run CI in your TTY
$ citty
project1 | fubar       	# <-- displayed in colors

DESCRIPTION

Remember the mantra of Test-Driven Development (TDD)?

Red, Green, Refactor!

Well, that's all I'm trying to do. So I wanted a CI driver that would run my tests, show the status, and get out of the way!

citty runs in a terminal. It uses \r to refresh the same line over and over again. And it prints the name of each project it knows about, in either Coca-Cola RED, DeWalt YELLOW, or John Deere GREEN. (And by "Coca-Cola", "DeWalt", and "John Deere" I mean "ANSI".)

1,000 words or more

Here's a video of citty running inside a :terminal window in Gvim (version 8!), using three "projects" that are really symlinks to the same directory. With the sleep time set to 5 seconds. And a make test that just uses the Bash $RANDOM value to flip a coin to determine success or failure. (Useless, but colorful in citty!)

Video of citty running in Gvim

Coding

There is a subtle and nuanced coding system:

  • Green - Failure is not an option!
  • Yellow - Hold my beer while I pass these tests!
  • Red - It turns out, failure is an option!

Status

How do I determine the status? Using the result code returned from make test.

Testing mechanisms

You can use any testing mechanism you like, as long at it's make test.

Or, you could add a new feature to citty.py. I'll gladly read your PR, but if it includes the words "XML" or "microservice" it's going right in the trash.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citty-0.0.3.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

citty-0.0.3-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file citty-0.0.3.tar.gz.

File metadata

  • Download URL: citty-0.0.3.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.24.0

File hashes

Hashes for citty-0.0.3.tar.gz
Algorithm Hash digest
SHA256 aea0c90b378f8c349b2506f1d19ac827a4ddab6e9567a6da97b8fd3761c022b8
MD5 2198a20f394cf0d7747ec73cb1b9c9e6
BLAKE2b-256 54bff88a7012fb745b076c6a935c5904c64b6888dcad2a844fb338e31cb4ac84

See more details on using hashes here.

File details

Details for the file citty-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: citty-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.24.0

File hashes

Hashes for citty-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 23de272fcf2bcc40746407fda5a7d4349971de2afe31b524be025ab33b22e67e
MD5 7af1ca5005eedc262ad1b08bad7e43ce
BLAKE2b-256 b884e63fed65673008a66985574cac25d9337903a3ee4fc579431f5698c064ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page