Code Monkey home page Code Monkey logo

tskmgr's Introduction

tskmgr logo

tskmgr (task manager) is a minimalist distributed build system that aims to offer an opensource on-prem installable alternative to Nx Cloud.

image info

Features

  • monitoring dashboard
  • task prioritization strategies (longest first, shortest first, FIFO, LIFO)
  • leader election
  • logging
  • dockerized

Getting Started

Quick start

To start all necessary containers, use:

docker-compose -f docker-compose.yml up

Developer environment

Prerequisites

  • node 16+
  • postgres

Install

  • git clone
  • install postgres or start postgres docker:
    docker-compose -f docker-compose.yml --env-file .env-dev up -d postgres
  • npm install
  • npm run start:dev
  • DEBUG=tskmgr:* ts-node --project libs/client/tsconfig.lib.json -r tsconfig-paths/register "libs/client/src/lib/client-example.ts"
  • open browser to http://localhost:4200

Check client-example.ts for more details.

Troubleshooting

WSL2

You may encounter file permission issues while creating your containers with WSL2. This has been seen with volume created for api to store files.
To reset permissions use: chown $USER:$USER ./data/api/files

Contribute

Pull requests are welcome! Don't hesitate to open an issue.

tskmgr's People

Contributors

mathpaquette avatar osmolovyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

osmolovyk

tskmgr's Issues

Remove Affinity feature

Affinity feature was created to execute tasks on the same runners as they were executed within previous builds. This feature brings a lot of complexity to the code and prevents run to use all available runners scheduling most of the tasks to one of them. Even regardless of the described problem, it appears that this feature does not provide any significant functionality or impact on the application's performance or behavior, so this feature could be safely decommissioned and removed from tskmgr.

Add "Dependency first" task scheduler support

Add feature that give us possibility to execute dependency tasks first, and make dependent tasks wait for successful completion. In case of failure all dependent tasks should be aborted.
Example:
Project1 depends on Project2. Project2 depends on Project3.

  • Tskmgr should execute Project3's task, then after successful completion execute Project2's task and only then Project3's task.
  • If Project3's task failed then Project2's and Project1's task should be aborted.

Confusef

Is this meant to be a drop in replacement for nx-cloud? If so, do u have an example project?

Add Kerberos authentication support

I would like to store task log files in NFS shared folder that requires Kerberos authentication. For that I need to mount this
folder as a volume to the API image. Mounting NFS shares with Kerberos supported by docker, but Kerberos part requires Kerberos libraries installed inside the docker image.
Task:

  • Add Kerberos libraries to API docker image.

On the Runs page, in the "Last Update" column is not informative enough

On the Runs page, in the "Last Update" column the maximum value is ">1d ago" which is not enough to distinguish runs which were done a few days ago. The behaviour of the column should be changed in a way that shows the number of days for runs executed less than 31 days ago, and >30d ago otherwise.

Onboard eslint-plugin-deprecation

To improve the health of the code in tskmgr monrepo eslint-plugin-deprecation should be installed and enabled to through linter errors by default.
Task:

  • Install eslint-plugin-deprecation.
  • Configure eslint to throw an error for any detested deprecated code.
  • Fix existing deprecated issues.

Remove dependency on lodash npm package

Plain JavaScript could replace lodash functionality. Regarding this, and the fact that we use lodash only in a few places in monorepo, replacing the usage with javascript functionality is better.

bug with fail fast

when failFast enable, when one task marked has failed, we need to automatically abort running tasks,.

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.