All Projects → naftulikay → Travis Pls

naftulikay / Travis Pls

Licence: other
A utility for disturbing standard output to keep Travis jobs alive.

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Travis Pls

Condition Travis
🚫 semantic-release plugin to check Travis CI environment before publishing.
Stars: ✭ 9 (-83.02%)
Mutual labels:  travis-ci
Kitchen In Travis
Chef cookbook example to run test-kitchen inside Travis CI.
Stars: ✭ 36 (-32.08%)
Mutual labels:  travis-ci
Bad Commit Message Blocker
Inhibits commits with bad messages from getting merged
Stars: ✭ 48 (-9.43%)
Mutual labels:  travis-ci
Svelte Redux Shopping Cart
Example Shopping Cart App using Svelte, Redux, and Webpack
Stars: ✭ 13 (-75.47%)
Mutual labels:  travis-ci
Nem Php
NEM Blockchain NIS API Wrapper and Software Development Kit for PHP
Stars: ✭ 32 (-39.62%)
Mutual labels:  travis-ci
Android Ndk
[Deprecated] Installed android-ndk for speedy cloning into Travis CI worker VM.
Stars: ✭ 38 (-28.3%)
Mutual labels:  travis-ci
Cobalt.rs
Static site generator written in Rust
Stars: ✭ 940 (+1673.58%)
Mutual labels:  travis-ci
Koa Typescript Starter
Integrating TypeScript with KOA2 to hit the ground running faster
Stars: ✭ 51 (-3.77%)
Mutual labels:  travis-ci
Angular Library Starter Kit
Angular 5 Library Starter Kit based on Angular-CLI
Stars: ✭ 35 (-33.96%)
Mutual labels:  travis-ci
Fund Crawler
基于NodeJS的基金数据爬虫,爬取的数据存于github的@nullpointer/fund-data。
Stars: ✭ 46 (-13.21%)
Mutual labels:  travis-ci
Bors Ng
👁 A merge bot for GitHub Pull Requests
Stars: ✭ 878 (+1556.6%)
Mutual labels:  travis-ci
Hint
重构到 ---> https://github.com/hustcc/lint-md
Stars: ✭ 30 (-43.4%)
Mutual labels:  travis-ci
Nagios Plugins
450+ AWS, Hadoop, Cloud, Kafka, Docker, Elasticsearch, RabbitMQ, Redis, HBase, Solr, Cassandra, ZooKeeper, HDFS, Yarn, Hive, Presto, Drill, Impala, Consul, Spark, Jenkins, Travis CI, Git, MySQL, Linux, DNS, Whois, SSL Certs, Yum Security Updates, Kubernetes, Cloudera etc...
Stars: ✭ 1,000 (+1786.79%)
Mutual labels:  travis-ci
Jupiter Brain
Jupiter Brain manages servers
Stars: ✭ 12 (-77.36%)
Mutual labels:  travis-ci
Travis Stats
Travis CI build charts
Stars: ✭ 48 (-9.43%)
Mutual labels:  travis-ci
Flask Bones
An example of a large scale Flask application using blueprints and extensions.
Stars: ✭ 849 (+1501.89%)
Mutual labels:  travis-ci
Big Album Art
[RETIRED] A Flask app to display almost-fullscreen album art for your currently playing Spotify songs. Enjoy the visuals!
Stars: ✭ 38 (-28.3%)
Mutual labels:  travis-ci
Business Search App Java
Showcases object oriented programming in Java, Java Swing, Kotlin, and Android
Stars: ✭ 53 (+0%)
Mutual labels:  travis-ci
Cloud Run Travisci
Example config for deploying from Travis CI to Google Cloud Run
Stars: ✭ 51 (-3.77%)
Mutual labels:  travis-ci
React Drawer
react.js drawer component
Stars: ✭ 42 (-20.75%)
Mutual labels:  travis-ci

travis-pls Build Status

travis-pls

A little script for keeping very long running jobs online in Travis CI.

Use-Case

I run some complicated Packer builds to build AMIs in EC2. It can often take more than 10 minutes for Amazon to assemble a simple AMI image. I also run Packer builds to test changes in pull requests and then use custom logic to tear down the built AMIs until merged to develop or master.

This script allows my Packer Travis builds to run as long as necessary.

The Problem

As described in Travis CI documentation, if a Travis CI build goes longer than 10 minutes without emitting any output, the build is killed by Travis. "It's okay," Travis docs tell us, "you can use the travis_wait command for long running builds."

Here are a few problems with travis_wait:

  • It displays no output at all until the task has completed, and for long running builds, this is a deal breaker. If one test case failed pretty early on in your build, you'll have to wait until the end of the build to see what went wrong 👎
  • It isn't available in your deploy scripts, which still have the 10 minute timeout.

The Solution

A janky Python script which executes any command and arguments passed to it, sending output directly to standard output and error, sending out the following message (by default) every nine minutes to rustle Travis' jimmies:

travis pls

It works. Your builds will now stream your output back to you and will only time out after an hour. If you truly need something that never ever times out, the -m/--max-timeout flag can be set to 0, which will cause your build to last forever. Please don't use this unless you have a paid Travis CI account.

Usage

usage: travis-pls [-h] [-i INTERVAL] [-m MAX_TIMEOUT] command ...

Periodically disturbs Travis to allow long-running builds with stalled output.

positional arguments:
  command               The command to run.
  args                  Arguments for the command.

optional arguments:
  -h, --help            show this help message and exit
  -i INTERVAL, --interval INTERVAL
                        Disturbance interval.
  -m MAX_TIMEOUT, --max-timeout MAX_TIMEOUT
                        The maximum allowed run time in order to be a good
                        internet citizen.

By default, travis-pls will time out after one hour of execution, and will interrupt every 9 minutes to keep the build alive.

Installation

Installation from GitHub is recommended, as the author's personal experience is that PyPI has been historically unreliable, suffering production incidents as a result.

From GitHub:

pip install git+https://github.com/naftulikay/travis-pls

From PyPI:

pip install travispls

License

Licensed at your discretion under either:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].