Coder Social home page Coder Social logo

trigr's Introduction

trigr

https://c1.staticflickr.com/1/246/449673647_4d9a1b900e.jpg

Who needs another automation server?

TLDR: What if there was a automation server that was distributed? Moving from central source control from csv / svn to git / mecurial.

Waiting for remote build fails suck! It would be nice to use the extra resources sitting on the average developer machine to automatically compile, test and package applications while sitting in a meeting or at lunch. Trigr is mainly an event dispatch system. File changes, commits ect. The goal is to be able to run code based on a set of events. The curated DSL and API should make build and deploy scripting easier. If the built in extensions / DSL is used it should work the same on a local development machine as a remote build server.

Add automation project

When first starting the server there is not configuration. This will produce a message. However it is easy to add a project with a simple curl command. .. code-bloack:: bash

curl "http://localhost:8080/project/new?id=trigr&path=/my_home/lhj/my_codes_path/trigr"

To save the project in the configuration file add a persist flag to the end of the url.

.. code-bloack:: bash

   curl "http://localhost:8080/project/new?id=trigr&path=/my_home/lhj/my_code_paths/trigr&persist=true"

To watch the output of the automation use the trigr command line tool.

.. code-bloack:: bash
   ./build/darwin/trigr trigr -tlog

   connecting to ws://localhost:8080/ws/trigr
   51935-10-13 23:07:02 -0800 PST โžœ running: go test -cover
   2019-12-19 07:03:20 -0800 PST โžœ PASS
   coverage: 13.1% of statements
   ok      github.com/lateefj/trigr/cmd/trigd      0.611s

This will continue to stream changes to standard out.

Features (TODO)

  • Decentralized: able to run on a development system (laptop) or build server
  • Automated Configuration: getting software packaged for use is often a Rube Goldberg process that is only made worse by user interfaces
  • Modern Interface: a web ui not for configuration but for monitoring builds

Development Process

trigr assumes a development process that is a series of connected pipelines configuration, prepare, build, package and deploy.

  • configuration
    • code checkout
    • dependencies
  • prepare
    • code generation
  • build
    • compile
    • obscure (javascript)
  • package
    • tar, compression
    • encryption
    • distribution
    • docker
  • deploy

trigr's People

Contributors

lateefj avatar lateeftroy avatar

Stargazers

 avatar

Watchers

 avatar  avatar

trigr's Issues

Way to subscribe to stream

Way to subscribe to stream of triggers. Some concept on all / filters based on type would be good. Maybe include / exclude optional lists? Mechanism to register subscribers and start sending them events.

Repo discovery via searching for git / mercurial directories

Feature to all subdirectories for project to create configuration for. This feature should provide a way to point to a $HOME directory and it will scan and all all of the git and mercurial directories to the default configuration. It can then find any custom scripts in a $PROJECT_DIR/trigr directory which will hold configuration and customizations including the custom lua scripts.

Initialization trigr script

For configuration there should be an init.lua script in the .trigr directory that can programmatically hand configuration. It should also register event handlers for types of trigr events.

Web socket plugin

Support a web socket interface for plugins to subscribe to streams of trigr events.

Fix failing ext test

Test failure output:

2018/02/07 21:03:54 Test
Log function being called with msg code test
2018/02/07 21:03:54 code test
Now going to waith on logs .....
Done with log test ....
--- FAIL: TestRunTest (0.02s)
        triglang_test.go:95: Failed to find successful log
FAIL
FAIL    github.com/lateefj/trigr/ext    0.023s```

Support shell command subscriber

Provide a mechanism to run a shell command that consumes events on a pipe and publishes events out on another pipe. This would support just about any local process / program.

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.