Git Product home page Git Product logo

frontend's Introduction

Buildkite Frontend (Archived) 📦

For a few years we experimented with developing the Buildkite frontend in an open source repository. In the beginning when our team was small, maintenance of this codebase was easy and it's integration with our main application was minimal.

Over time our team has grown, and so has the size and importance of this codebase. After many weeks of discussion, we decided to stop development in this repoistory, and move it back into our main application (creating a monolith).

The biggest reasons we moved it back were:

  • Day to day development was complicated between our backend application and the frontend code. It was difficult to document and communicate to new members of the team why this seperation existed and what the benefits were. The idea was eventually the code here become a seperate entity that could run indepently of the backend application - but we never got around to it. So the code here ended up becoming an akward dependency of our main application that we managed with git submodules (which caused great sadness).
  • Maintaining 2 PRs for features was annoying (we had a backend and a frontend PR for the same feature. Keeping them both in sync was mostly busywork for little benefit)
  • Our deployment & testing processes were simplified by unifying the codebases
  • We didn't have to worry about "have you got the latest version of the frontend" type problems in development
  • We don't need to concern ourselves with potentially disclosing any feature experiements we may be shipping to production that'd require frontend changes

We're keeping this code public for historical reasons, but the repo will be achived and no longer be developed in.

It's been a few weeks since we made the move, and we've been way more productive with the unifided codebases, and our day to day development experience is simpler. We're sad to no longer have the code be open source, because it brought us joy to have it out in the open, but we hope the increased rate of feature development in Buildkite makes up for that.

If you'd like to keep in sync with the changes we're making - we're posting more and more to our public changelog here: http://buildkite.com/changelog

License

See LICENSE.txt (MIT)

frontend's People

Contributors

alyssais avatar bendrucker avatar chrislloyd avatar eleanorakh avatar harrietgrace avatar ide avatar keithpitt avatar lox avatar lukerollans avatar matthewd avatar plasticine avatar renovate-bot avatar sj26 avatar ticky avatar toolmantim avatar uriahcarpenter 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

frontend's Issues

BuildState icons don't handle cancelling builds

Clicking cancel on a build causes the pipeline page build state icons to disappear for a moment while the build is cancelled. Perhaps canceling should be like pending but red, or something?

Show number of failed tests in summary

The newly added summary section is useful, but could be more so if we show number of test failures (and if possible, successes) right at the top.

It will be really useful while making incremental changes as a factor that guides me is the reduction in the number of test failures.

cc @ticky

Open source hygene - Documentation request

Just filing this as a request for additional documentation for open source developers to get involved. Some useful information that you could add to the readme:

  • How to start the server, yarn start I assume.
  • How to setup EMOJI_HOST, or provide a default if possible.
  • How to setup FRONTEND_HOST, or provide a default if possible.
  • Any special network settings I might need. I see mentions of buildkite.dev, and I also get a EADDRNOTAVAIL error when trying to start the server.
  • How to populate the vendor/emojis directory.

I'm willing to jump through a few hoops to contribute, but would love to see the barrier to contribute lowered by better documentation. Thanks!

'Waiting for' calculation seems wrong

I left a build running while I was on holidays. There was no agent running so it was waiting from Jan 17 -> Feb 1 = 15 days, or around 2 weeks.

However, the pipeline says 'Waiting for 4 weeks'
and the build says waiting for '2w 15d'

I suspect that 15 days is being converted to 2w but the days are not being set to the remainder.

Then I suspect they are being added back together to get the 4 weeks value.
buildkite
buildkite2

UX: Inline trigggered jobs in parent pipeline

Scenario:

  1. The pipeline triggers a build
  2. The UI shows a link to the triggered build in the current pipeline
  3. The user must click there to go to the new build and see whats going on.
  4. GOTO 1 😄

It would be nice to inline the triggered steps into the main pipeline view (recursive) to see what are the real progress, see logs and so on. This way, users will see ALL the steps involved, what is the real progress... and can go directly to steps to get logs, artifacts, without clicking and clicking

I had to inline steps by my self in the main pipeline and not using triggers to make our team happy.
I ended complicating the maintenance of .buildkite files..., just for an UX issue

WDYT? Sounds reasonable?

Block step modal content gets cut off if there are too many selects/text inputs inside.

I am using a Mac laptop with a Chrome browser and encounter the block step modal sometimes gets cut off at the top to the point I cannot scroll any higher and some inputs, title, and closing X button of the modal get cut off if there are too many selects/text input fields in the block step modal. I can scroll down to click 'Continue' which is good though. I've been experimenting with adding a bunch of fields and ran into this issue in our pipelines.
screen shot 2018-08-07 at 3 10 09 pm

Clicking "New Build" when looking at a specific build or a "Builds for branch" could autofill that branch

For instance:

image

In that image, I'm on https://buildkite.com/.../builds?branch=feature%2Fsplit-pipeline, that is, the list of builds for the feature/split-pipeline branch. I clicked "New Build", and it suggested "develop". As suggested in the image, it could instead suggest the feature/split-pipeline branch. The same would be true if I was looking at a specific build of this branch (the build in the background of the image is number 324, so if I was on https://buildkite.com/.../builds/324).

If there's an expectation that most "New Builds" would be on the repo's default branch, alternatives could be:

  • radio boxes like:
    • develop (or whatever the default branch is)
    • feature/split-pipeline (if there's a current branch)
    • [Other] (as a text box, and clicking in it automatically checks the radio box)
  • autocompletion of branches buildkite knows about

(Or possibly all three: radio boxes, with the current branch chosen by default, along with autocompletion in the Other box!)

GitHub repository line should trim leading/trailing whitespace

I accidentally had a leading space in my repository name, which the UI accepted. However, when the agent tried to check out the code, I got the misleading message that:

Cloning into '.'...
Permission denied (publickey).
fatal: Could not read from remote repository.

The command-line output shows that the repo name is quoted:

$ cd "/var/lib/buildkite-agent/builds/ubuntu-1404-10.232.1.48/example/repo"
$ git clone -v -- " [email protected]:example/repo.git" .

Screenshot:
screen shot 2016-08-17 at 11 44 51 am

Display cancelled jobs as gray

In the pipelines list, in the following graph, you can't tell which jobs actually failed and which jobs were cancelled because another merge happened before the tests finished. We want to be able to notice failures of tests on master just by looking at the graph, without having to hover or click. It would be really useful if those builds showed up in a different color and I propose gray.

screenshot 2018-05-21 at 10 48 03 am

Move ESLint configs to YAML

I never used to like it but for this use case it's definitely much more readable, allows comments (which I wanted to add, specifying rationale for rules, but didn't), and doesn't get angry at you if you misplace a comma

Work out what to do with the top panel on the MFA manage screen

The intention was as a summary of MFA status (to allow for a world where there are multiple types of MFA—U2F for example—and different combinations of them can be enabled or not). I kinda thought it would also be a good opportunity to educate / document MFA conceptually.

screen shot 2018-10-18 at 3 11 42 pm

Active pipelines indicator

Hi Buildkite team,
really like the new pipelines view, but I miss two small aspects that were very useful in the old one:

  • Could you give the icon at the front of a pipeline an indicator again if it's currently building?
  • Also it was a neat feature that pipelines who are active would move to the top of the list.

Thanks for your consideration!

Page hangs when you spell your team name wrong

When you're a complete idiot (like myself), you spell things wrong all the time. Of course, there is an invention called bookmarks to solve this problem, but alas, when you head to https://buildkite.com/org?team=non-existent-team you get a page hang.

I guess it would be nicer to get a 404 or some kind of message. RESTful i guess the URL is accurate, so 404 may not be technically correct since it's invalid query params causing the issue. 400 bad request maybe. Or just a screen message. I'll leave that up to your capable hands.

Show "Wait" line in lower step list

A "Wait" is represented by the little pointer arrow in the top list of steps, but has no visual representation in the lower list. It would be helpful when scrolling through a long list of steps to see where the "Wait"s occurred. # #

Duplicate Pipelines

Building pipelines isn't difficult, but can be a little time consuming. It would be handy if we could copy (duplicate) an existing pipeline to start with.

hi i love what yu did just one thing please

i use aspnet with vb
and the properties file.error and file.type
"error" and "type"
are reserved words
and i cant use them as properties
can it be changed ?
i saw someone use "errorMSG" instead for the error message
i now trying to fix it but may be someone else will encounter this issue
tnx

Feature Request: show estimate of remaining time on the build

screenshot
by prefixing key log lines with ~~~ i have gotten the logs to fold nicely, and buildkite clearly says how long each step of the build took

what i would like next, is for buildkite to grab the average run-time for each step over the last few commits, and then render it in this UI, so it says 1m 10s / 2m 13s, giving you a rough idea of how much longer it will take to finish, and similarly handle the total runtime of the entire script

another optional thing you could then do, is to perform the same checks on everything in the queue, and estimate how long it will take for an agent to become available to run the command

Triggered builds with retried steps don't update parent

Scenario:

  • Build A triggers build B on another pipeline
  • Build B has one failing job, causes build A to have a failing state
  • Failing job is retried and passes, causing build B to now have a passing state
  • Build A remains in a failing state

(Note: The reference to build B on the build A page also does not go into the "in progress" state when the job on build B is being retried)

Feature request: authorize via Github

You say that the buildkite supports Github integration. But necessity to create via email and/or other unwanted actions obstructs a bit for a simple testing of buildkite.

Sorry, frontend can be bad place for this issue,

Need to remove all usages of `UNSAFE_` component methods

We’re currently using a bunch of the deprecated, soon-to-be-removed methods.

It will be impossible to upgrade to React 17 if we don’t transition away from these. Most of the usages should be simple to replace with supported methods, but we do have a lot of lifecycle methods dependent on the current data flow.

Affected files:

  • /frontend/app/components/agent/Index/installation.js
  • /frontend/app/components/icons/BuildState.js
  • /frontend/app/components/job/Index/index.js
  • /frontend/app/components/job/Index/jobs.js
  • /frontend/app/components/layout/Flashes/index.js
  • /frontend/app/components/layout/Navigation/index.js
  • /frontend/app/components/layout/Navigation/MyBuilds/index.js
  • /frontend/app/components/member/Edit/form.js
  • /frontend/app/components/member/New.js
  • /frontend/app/components/organization/AgentsCount.js
  • /frontend/app/components/organization/Pipeline/graph.js
  • /frontend/app/components/organization/Pipelines.js
  • /frontend/app/components/pipeline/CreateBuildDialog.js
  • /frontend/app/components/pipeline/Header/index.js
  • /frontend/app/components/shared/Autocomplete/Dialog/index.js
  • /frontend/app/components/shared/Autocomplete/Field/index.js
  • /frontend/app/components/shared/BuildStatusDescription.js
  • /frontend/app/components/shared/CreditCardInput.js
  • /frontend/app/components/shared/Dialog.js
  • /frontend/app/components/shared/Duration.js
  • /frontend/app/components/shared/FriendlyTime.js
  • /frontend/app/components/shared/Menu/button.js
  • /frontend/app/components/shared/Menu/index.js
  • /frontend/app/components/shared/SearchField.js

Non privileged users - account expiry and payment

screen shot 2016-07-22 at 7 18 07 am

Whenever a non-admin attempts to run a build in an account that has had its free trial period expire, the message is

"You're not allowed to change billing details for this organization"

I think it should be different - saying that theres no monies

Feature Request: Display a log of actions on each job, including rebuilds and retries.

We have a pipeline which will trigger an incident if it fails. When this happens we need to be able to investigate exactly what failed. Currently it's possible for someone to retry a step in the pipeline, erasing this failure history. We would like to either preserve the existing logs somewhere so we can still see them, or have a lot of actions on each job, which would show when a job has been retried.

Gravatar should use lowercase email address

Hi there,

I saw that Buildkite uses Gravatar to fetch profile pictures.
I happen to have an account at Gravatar, so I was surprised that my avatar wasn't fetched.
Decided to figure out why this was the case: on sign-up, I entered my email address with uppercase letters, but Gravatar only works with lowercase.
Gravatar documentation: https://en.gravatar.com/site/implement/hash/

I found this out by inspecting the URL of my profile image, which turned out to be:
https://www.gravatar.com/avatar/bb1a9d0a...
I tried to compute some of the hashes myself in the JavaScript console using this md5-function:

> md5("M.P.Sijm@...")
< "bb1a9d0a..."
> md5("m.p.sijm@...")
< "bf363487..."

Pipeline Statistics page

It would be nice to have some statistics page per pipeline and branch to show failed / passed builds in pipelines for each branch

More or less what is shown in main page, but with a dedicated/nice views/easy to use page ;)

Avatars not consistently applied

Semi-recently I believe there was a switch to Gravatar based avatars for the frontend. This doesn't seem to be working universally. My logged in avatar works in the upper right corner for my profile drop-down menu, but on all my builds it is still using the placeholder "?" avatar.

good

bad

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.