GithubHelp home page GithubHelp logo

atlassian-archive / landkid Goto Github PK

View Code? Open in Web Editor NEW
87.0 87.0 23.0 2.23 MB

Your friendly neighborhood async merging robot goat.

License: MIT License

JavaScript 2.54% Shell 0.55% HTML 2.37% Dockerfile 0.24% TypeScript 94.30%
bot ci continuous-deployment continuous-integration goat

landkid's People

Contributors

ajaymathur avatar alaczko-atlassian avatar blasz avatar brianzchen avatar cheesehary avatar d4rkr00t avatar dbschng avatar dependabot[bot] avatar diffidentdude avatar gracedmello avatar grenganathan-atlassian avatar itsjackgardner avatar jamiebuilds avatar kleeut avatar luciaquirke avatar luke-underwood avatar lukebatchelor avatar marshallofsound avatar matthewcharlton avatar pastelsky avatar rajabellebon avatar redrum avatar ryanbraganza avatar thebriando avatar wbinnssmith avatar winniezheng 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  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  avatar  avatar  avatar

landkid's Issues

Landkid server can become completely locked

We've hit this situation a few times now, and the root cause was found today.

When we are moving a build from the queue to running, we lock landkid (different to pausing) so that other calls to next() wont be able to drop/overwrite builds.

Unfortunately, if any requests whilst we are creating the landkid build fail (i.e the one that creates the build), we don't currently handle that case, the build is dropped and the server remains locked.

The specific cause we found was if someone tries to land a build that was from before landkid was introduced. Since no landkid builds exist in the pipelines.yml, the build cant start and the request throws.

Some simple error handling around this would make a lot of sense...

Landkid 1.0.0

I will consider Landkid ready for a 1.0.0 release once the following items are addressed:

  • Flowtypes are all fixed up
  • Abstractions are all at the appropriate level in the adaptors
  • Tests and setup and better abstracted to make extending easier
  • Github support is added
  • Travis support is added
  • We have a better way of end to end testing (small sample repo with a defined set of manual tests for example)
  • We have a better dev loop (no hardcoded keys to change, etc)

Adaptors are not at the right level of abstraction

There were some terrible mistakes/shortcuts taken to get this working that I now realise are going to make adding new adaptors much harder than it should have been.

We need to strongly define the exact data models we expect and make sure that the adaptors only call endpoints and translate to those forms and that all business logic lives in the runner.

I am impatient and want to queue a build before it is green

Have a way to have a 'merge once green'

Likely behaviour, have a queue of builds to add to the general queue once they go green.

Queues of queues!

Alternatively, add it to the queue, but every time you want to take anything off the queueueueue it is skipped if it is not finished, and punted from the q if it fails.

Queue should wait to progress until any active master build is finished

Right now if you have a build on master which has side effects (releasing/publishing packages) that needs to push back to master, Landkid introduces a race condition where the Landkid build can finish and push to master before the master build has completed.

Ideally people wouldn't be publishing in master (and we should provide a step for publishing as part of Landkid as mentioned previously) but we should handle that gracefully if they do.

Setting up my own Landkid server

I know there's a WIP section in the README about this. Are there any plans to complete that section?
If not, could you guide me how one can go about running this locally against a bitbucket server instance?

Landkid shows "Contact an admin for permission to view this information"

hello Landkid Contributors,

I am setting up Landkid in the VM which is publicly accessible. I have done below mentioned configurations so far.

  • Configured local Redis instance and using Sqlite DB.
  • I have setup Bitbucket Oauth credentials with all the permissions, set call back URL and added secrets and key into config.js file.
  • I have set baseURL to the public IP of the VM and the port along with repo owner, name and UUID in config.js.
  • For the landkidAdmins, I have tried Bitbucket username, aaid, uuid also.

After setting up all these parameters, I did "npm run build" and "npm start". I can browse the landkid app in browser and when I click on "Go" button, it goes to Bitbucket for authorization and getting authorized. But on the current-status page, I see below mentioned message.

image

I have created Pull Request in the repo, with comment as "land". But still I am not seeing any changes in Landkid UI. Can you please guide me.

Flowtypes are broken

The flowtypes were quite badly broken during the massive refactor.

These will need to be fixed and then enforced in the pre-push hook.

  • Flow types fixed
  • Typechecking added to prepush hook

This will probably require #6 to be completed

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.