Coder Social home page Coder Social logo

rustls-bench-app's People

Contributors

aochagavia avatar cpu avatar epompeii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

cpu epompeii h3r2tic

rustls-bench-app's Issues

Build fails to access `git` executable

When visiting https://bench.rustls.dev/info, this is the returned JSON:

{
  "git_commit_message": "VERGEN_IDEMPOTENT_OUTPUT",
  "git_commit_sha": "VERGEN_IDEMPOTENT_OUTPUT"
}

I have traced the problem to the fact that the vergen library is unable to use the git executable during the build step. @cpu any clue on how to solve this, based on your ansible experience? I tried explicitly setting the PATH variable as follows, but it didn't change anything:

- name: Build app
  become: true
  become_user: "{{ app_user }}"
  ansible.builtin.command: /home/{{ app_user }}/.cargo/bin/cargo build --release
  changed_when: true
  args:
    chdir: /home/{{ app_user }}/rustls-bench-app/ci-bench-runner
    # Note: omitting a 'creates' here - we want to build fresh even if the binary exists
    #       in order to pick up changes from the src git repo updating.
  environment:
    PATH: /usr/bin

test_pr_opened_happy_path_with_failed_comment_reuse flaky?

I notice CI is occasionally failing the unit tests with:

---- test::test_pr_opened_happy_path_with_failed_comment_reuse stdout ----
thread 'test::test_pr_opened_happy_path_with_failed_comment_reuse' panicked at src/test/mod.rs:331:10:
called `Result::unwrap()` on an `Err` value: Elapsed(())
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I've noticed two instances today. Probably the test is flaky?

Consider implementing a way to postpone running benchmarks

There are a few scenarios where it makes sense to postpone running benchmarks, to avoid competing for resources and prevent noise in the results:

  1. When manually running other performance benchmarks (like in this case).
  2. When building and deploying a new version of the application (since the app is built on the server).

Currently, the only way to avoid running benchmarks in reaction to GitHub events is to shut down the application entirely. If we do so, however, GitHub events get lost, which is unfortunate. The current way to recover them is that someone goes to the rustls-benchmarking GitHub app's page and manually redelivers any relevant webhooks.

I'm tempted to leave this as wontfix, because I don't expect it will cause problems in practice. That way we avoid the extra complexity.

Provide an `info` endpoint

We need a way to check which version of the application is running at a given moment. Maybe we should use the vergen crate to embed the git hash at compile-time, and return it along with other relevant information upon GET /info.

Relax PR approval requirement for previous collaborators

An idea from djc in discord:

In fact it would be nice if we can relax it even more, like allow the bot to run if we previously merged a PR from the same author

This will probably be a little bit trickier than #32 - I'm not sure if GitHub exposes this state through the API. Some research will be required.

Don't wait for PR approval when PR author is a maintainer

An idea from djc in discord:

would be nice if the benchmarking bot knew it doesn't need to wait for approval on PRs where the author is an org maintainer

I think this would be a fairly small lift: we already have the code in place to check when a PR is approved that the approver has an allowed account association. Likely we just need to adjust the event processing for a new PR to skip requiring an approval or a comment if the author has such an association.

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.