A system for managing CI data for Mozilla projects

Overview

Treeherder

What's Deployed Build Status Node dependencies Status Node devDependencies Status Documentation Status Code style: black

Description

Treeherder is a reporting dashboard for Mozilla checkins. It allows users to see the results of automatic builds and their respective tests. The Treeherder service manages the etl layer for data ingestion, web services, and the data model behind Treeherder.

Instances

Treeherder exists on two instances: staging for pre-deployment validation, and production for actual use.

Installation

The steps to run Treeherder are provided here.

The steps to run only the UI are provided here.

Links

Visit our project tracking Wiki here.

For other setup and configuration, visit our readthedocs page here.

File any bugs you may encounter here.

Contributing

Everyone is welcome to contribute!

If a bug is not assigned to someone, you can request the bug be assigned to you. You should ask the component owner with your request ("Request information" in Bugzilla and mention in Github).

If you do not receive a response within 2-3 days, you can follow up in the #treeherder matrix channel.

After addressing the issue, make sure every test passes before sending a pull request.

We also recommend setting an upstream remote that points to the Mozilla's Github repo, in addition to origin that points to your fork. You should then frequently use git rebase upstream rather than merging from your fork to keep your branch current. There are less conflicts this way and the git history is cleaner.

Sending a Pull Request

We receive contributions from both Bugzilla and Github. We have some specifications to keep track of them:

  1. If your bug comes from Bugzilla

    After addressing the issue, please send a pull request to this repository, with the Bugzilla's number ID in the title, so that our bot attaches your patch to the corresponding Bugzilla bug.

    "Bug xxxxxx - [title of the bug or brief explanation]"

    For example: "Bug 123456 - Fix scrolling behavior in Perfherder"

  2. If your bug comes from Github

    In the description of the pull request, please mention the issue number. That can be done by typing #[issue's number].

    For example: "This pull request fixes #5135".

    Github automatically links both issue and pull request to one another.

Comments
  • Bug 1395356 - Use auth0 instead of login.taskcluster.net for SSO

    Bug 1395356 - Use auth0 instead of login.taskcluster.net for SSO

    Rough summary of the changes

    Front end

    The auth callback is written in React and lives under the /login.html endpoint. It communicates with Treeherder using the localStorage.

    Credential expiration

    The Django user session expiration is set to expire when the client access token or the id token expires (whichever one expires first). These values are controlled by the IAM team. Presently, the access token expires after 1 day and the id token expires after a week. That being said, the session will therefore expire after 1 day. If you want this value change, we simply need to send a request to the IAM team.

    Credential renewal

    Renewals are set to happen every 15 minutes or so. The renewal is skewed slightly so that different open tabs don't renew at the same time. Once renewal happens, both tokens are renewed and the Django session is updated.

    Migration

    If the userSession localStorage key is not set, then the user will be logged out including logging out from the Django session. In other words, all users will be automatically logged out when the merge to production happens.

    opened by helfi92 48
  • Bug 1315808 - New Log Viewer integration

    Bug 1315808 - New Log Viewer integration

    Main Features

    • Be able to highlight different error lines
    • Get rid of "double hashing" when linking to a specific line number
    • Smooth scrolling
    • Highlight single and multiple lines
    • Follow log (option to scroll to the bottom of the log)

    This change is Reviewable

    opened by helfi92 38
  • Bug 1117583 - Make a custom form for filing intermittent bugs

    Bug 1117583 - Make a custom form for filing intermittent bugs

    Apparently I can't reopen a closed pull request if I've force-pushed to it in the time it was closed. Fun.

    Anyway... This is very close to being ready for review. Still need to fix up a few things, but I'm hoping to get that done by the end of the week.

    Review on Reviewable

    opened by KWierso 36
  • Bug 1108764 - Allow easy sharing of links to a specific log line in the log viewer

    Bug 1108764 - Allow easy sharing of links to a specific log line in the log viewer

    This is the first draft. I still have to change some stuffs(lot of stuffs), but I'd like to have some feedback, to see if I'm doing everything right, or if something can be changed.

    Review on Reviewable

    opened by gbrmachado 33
  • Bug 1539232 - Switch Perfherder to react-router

    Bug 1539232 - Switch Perfherder to react-router

    This is the final react conversion pr - woohoo!

    In addition to setting up the routes, I've made these other changes:

    • Using top-level of app as a cache for projects, frameworks, alerts data and compare data
    • Cleanup files and move constants to dedicated perfherder file
    • Removed angular-related libraries and bump down the neutrino entry and asset limits

    @ionutgoldan it'd be worth you giving all the views a quick test. I unfortunately had a lot of squashing of commits to do during the rebase and I want to make sure the new retrigger action is working as expected. I'd also like to ensure that the fetched data that's stored from the alerts view (when navigating back from an individual alert), and the fetched data that's stored from the compare view (when navigating back from the comparesubtest view) works as expected and doesn't cause any issues. I've launched it to prototype.

    FYI @karlht and @davehunt

    opened by sarah-clements 26
  • 1600761 - Visual/Color improvements to Treeherder apps

    1600761 - Visual/Color improvements to Treeherder apps

    Description of issue

    Some color combinations does not pass the WCAG contrast recommendation.

    Also, for color blindness distinction, texts with red and green should be accompanied by an icon.

    Strategy

    Using Firefox Accessibility Inspector's beta "Check for issues", I've checked for "Contrast" issues. That was done for each view and a different commit was made. Then, it was a manual color tweaking of each issue.

    Some colors became harder to distinguish because of the contrast rate. That was seem mostly in blue and green colors. Maybe propose a different color hue?

    Testing

    Those were mostly visual and using Accessibility and Inspector devtools tabs.

    opened by yogmel 25
  • Bug 1286686 - Initial move of Treeherder-Tests into /selenium folder

    Bug 1286686 - Initial move of Treeherder-Tests into /selenium folder

    Moving the contents of the Treeherder-Tests repo into the /selenium folder. Tests will not run automatically, as Travis will need to be set up. This is just to get the content into the primary repo going forward so that the Treeherder-Tests repo can be decommissioned.


    This change is Reviewable

    opened by rbillings 25
  • Bump django from 3.1.13 to 3.2.8 in /requirements

    Bump django from 3.1.13 to 3.2.8 in /requirements

    Bumps django from 3.1.13 to 3.2.8.

    Commits
    • 4540e97 [3.2.x] Bumped version for 3.2.8 release.
    • 65367b0 [3.2.x] Added release date for 3.2.7.
    • 51e4dbf [3.2.x] Refs #27694 -- Doc'd lookups that can be chained with HStoreField key...
    • 031ffc5 [3.2.x] Corrected field and model check messages in docs.
    • 7607fe9 [3.2.x] Removed obsolete GEOS 3.5 requirement note.
    • 6760f4f [3.2.x] Fixed #33083 -- Fixed selecting all items in the admin changelist whe...
    • e235c78 [3.2.x] Fixed broken links and redirects in docs.
    • 51e76c9 [3.2.x] Used :rfc: role in docs/topics/conditional-view-processing.txt.
    • d4a587a [3.2.x] Fixed #33077 -- Fixed links to related models for admin's readonly fi...
    • 561a1c0 [3.2.x] Fixed typo in docs/intro/reusable-apps.txt.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 22
  • [WIP] Fetch the CI changelog and display it in the perfherder timeline

    [WIP] Fetch the CI changelog and display it in the perfherder timeline

    This is a just a WIP demo at the moment, but I'm filing a PR for more visibility/discussion. This patch adds some red lines to the Perfherder graph to show when changes to our CI machines have occurred so that sheriffs have an easier time telling whether a change in perf numbers is due to a code change or a CI config change. Hovering over/clicking on the red lines will show a popup describing the change with links to the commit.

    Note: this currently shows every change from the CI changelog for testing, so there are a lot more red lines than we'd normally see. In a real version of this, we'd probably restrict it to only show actual deployments.

    javascript 
    opened by jimporter 22
  • Bug 1600759 - Perfherder's Graph Alt. View for Screen Readers

    Bug 1600759 - Perfherder's Graph Alt. View for Screen Readers

    Description of issue

    Perfherder's Graph View contains graphs and elements which are not screen reader accessible.

    Tasks:

    • [X] Get Graph data into table;
    • [X] Highlight Revision;
    • [x] Add Tooltip information;
    • [ ] When highlight, show and focus highlighted row;
    • [ ] Toogle column's visibility;
    • [x] Add tests.

    Next PR:

    • (Needs investigation) Show trends and outliers;

    Proposed Solution

    Perfherder's Graph View, with the Table showing. On the left, there are legend cards, with all tests information. Turned on tests have distinct colors, such as blue and red and different icons. On the right, there is first a row of buttons: "Last day", "Add test data" and "Graphs View". Below that, there is the table, with navigation on top. The first column refers to the revision test date. The other columns correspond to each test data. There 7 columns in total (One is the date column and the other six are tests). Some rows have a yellow background. Below the table, there are two input fields and a "Highlight alerts" button.

    • A button next to "Add test data" was added, to toggle between Graph and Table view.

    • If there is any highlighted revision, its table row will have a yellow background and an aria-label of "highlighted revision".

    • Users can show and hide test via Checkbox in Legend Card: The same table as the first screenshot, but the first two Legend cards are turned off, that is, they are grey. This reflects in the table, which now has 5 columns instead of 7.

    Testing

    • Compared some data points in the graph to the ones shown in table cells.
    • Turned highlighted revisions on and off and check if it propagated both in the graph and table.
    • Still was not able to test with SR. I will edit here once it's done.
    opened by yogmel 21
  • Bug 1574628 - Improve graph colors and add symbols

    Bug 1574628 - Improve graph colors and add symbols

    Description of issue

    The Graph view in Perfherder is not very usable for color blind users, mainly when there are multiple types of data plotted. To improve it, it was suggested to choose a friendlier color palette and also use auxiliary symbols to help distinguish between data.

    • [x] Change symbols in graph to different ones
      • [X] When graph is first created
      • [x] When more graphs are added
    • [x] Insert symbol in LegendCard
    • [X] Propose better color palette

    Proposed Solution

    • In order to change the graph symbols, the VictoryScatter prop symbol in VictoryChart's library was used. The symbol name is passed from GraphView to GraphContainer, based on the stored value from constants.js

    • In LegendCard, the name of the symbols have been retrieved, but in order to insert the icon, some decisions must be made - the icons are <svg> and live in another file? Are they React Components? Maybe we could use the same svg Victory Chart uses.

    • As for the color palette, some research and experiments were made. 3 of the 6 colors were changed.

    Testing

    A visual test was made, with help of NoCoffee Add-On. It was tested with all available Color deficiency options.

    Screenshot of proposed color scheme for Perfherder's graph. There are legend cards on the left with 6 different border colors. On the right, there is the graph, with different symbols scattered

    opened by yogmel 20
  • Add GhA task to run the probe-scraper workflow

    Add GhA task to run the probe-scraper workflow

    This ensures:

    • On pull-requests probe-scraper can verify that Glean metrics are declared correctly.
    • On pushes to the default branch probe-scraper is informed to generate metrics data in the pipeline, to fill the Glean Dictionary and populate the table schemas.

    This is part of Step 4 of adding Glean to your product. See also https://github.com/mozilla/probe-scraper/pull/538 for enabling it in probe-scraper to begin with. This requires enabling GitHub actions on this repository. Someone with write/admin access probably needs to do that.

    opened by badboy 2
  • Bug 1785833 - ingest bug creation date

    Bug 1785833 - ingest bug creation date

    Ingest the bug creation timestamp to count new intermittent bugs without depending on timestamp of first classification. Setting as bugs as duplicates breaks this assumption.

    opened by Archaeopteryx 1
Releases(2020-09-17)
Owner
Mozilla
This technology could fall into the right hands.
Mozilla
Docker Container wallstreetbets-sentiment-analysis

Docker Container wallstreetbets-sentiment-analysis A docker container using restful endpoints exposed on port 5000 "/analyze" to gather sentiment anal

145 Nov 22, 2022
Simple ssh overlay for easy, remote server management written in Python GTK with paramiko

Simple "ssh" overlay for easy, remote server management written in Python GTK with paramiko

kłapouch 3 May 01, 2022
Manage your azure VM easily!

Azure-manager Manage your VM in Azure using cookies.

Team 1injex 129 Dec 17, 2022
Hackergame nc 类题目的 Docker 容器资源限制、动态 flag、网页终端

Hackergame nc 类题目的 Docker 容器资源限制、动态 flag、网页终端 快速入门 配置证书 证书用于验证用户 Token。请确保这里的证书文件(cert.pem)与 Hackergame 平台 配置的证书相同,这样 Hackergame 平台为每个用户生成的 Token 才可以通

USTC Hackergame 68 Nov 09, 2022
RMRK spy bot for RMRK hackathon

rmrk_spy_bot RMRK spy bot https://t.me/RMRKspyBot for rmrk hacktoberfest https://rmrk.devpost.com/ Birds and items price and rarity estimation Reports

Victor Ryabinin 2 Sep 06, 2022
Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

Welcome to the Spinnaker Project Spinnaker is an open-source continuous delivery platform for releasing software changes with high velocity and confid

8.8k Jan 07, 2023
This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase.

COA DevOps Training UseCase This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase. Demo environme

Cosmin Tudor 1 Jan 28, 2022
Let's Git - Version Control & Open Source Homework

Let's Git - Version Control & Open Source Homework Welcome to this homework for our MOOC: Let's Git! We hope you will learn a lot and have fun working

1 Dec 05, 2021
Oncall is a calendar tool designed for scheduling and managing on-call shifts. It can be used as source of dynamic ownership info for paging systems like http://iris.claims.

Oncall See admin docs for information on how to run and manage Oncall. Development setup Prerequisites Debian/Ubuntu - sudo apt-get install libsasl2-d

LinkedIn 928 Dec 22, 2022
SSH tunnels to remote server.

Author: Pahaz Repo: https://github.com/pahaz/sshtunnel/ Inspired by https://github.com/jmagnusson/bgtunnel, which doesn't work on Windows. See also: h

Pavel White 1k Dec 28, 2022
A lobby boy will create a VPS server when you need one, and destroy it after using it.

Lobbyboy What is a lobby boy? A lobby boy is completely invisible, yet always in sight. A lobby boy remembers what people hate. A lobby boy anticipate

226 Dec 29, 2022
Convenient tool to manage multiple VMs at once using libvirt

Convenient tool to manage multiple VMs at once using libvirt Installing To install the tool and its dependencies: pip install -e . Getting completion

Cedric Bosdonnat 13 Nov 11, 2022
Quick & dirty controller to schedule Kubernetes Jobs later (once)

K8s Jobber Operator Quickly implemented Kubernetes controller to enable scheduling of Jobs at a later time. Usage: To schedule a Job later, Set .spec.

Jukka Väisänen 2 Feb 11, 2022
Blazingly-fast :rocket:, rock-solid, local application development :arrow_right: with Kubernetes.

Gefyra Gefyra gives Kubernetes-("cloud-native")-developers a completely new way of writing and testing their applications. Over are the times of custo

Michael Schilonka 352 Dec 26, 2022
pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

pyinfra automates/provisions/manages/deploys infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployme

Nick Barrett 2.1k Dec 29, 2022
A Simple script to hunt unused Kubernetes resources.

K8SPurger A Simple script to hunt unused Kubernetes resources. Release History Release 0.3 Added Ingress Added Services Account Adding RoleBindding Re

Yogesh Kunjir 202 Nov 19, 2022
Visual disk-usage analyser for docker images

whaler What? A command-line tool for visually investigating the disk usage of docker images Why? Large images are slow to move and expensive to store.

Treebeard Technologies 194 Sep 01, 2022
CI repo for building Skia as a shared library

Automated Skia builds This repo is dedicated to building Skia binaries for use in Skija. Prebuilt binaries Prebuilt binaries can be found in releases.

Humble UI 20 Jan 06, 2023
A collection of beginner-friendly DevOps content

mansion Mansion is just a testing repo for learners to commit into open source project. These are the steps you need to learn: Please do not edit thes

Bryan Lim 62 Nov 30, 2022
Kube kombu - Running kombu consumers with support of liveness probe for kubernetes

Setup and Running Kombu consumers Steps: Install python 3.9 or greater on your s

Anmol Porwal 5 Dec 10, 2022