Commit 878d03ec authored by Arkadiusz Hiler's avatar Arkadiusz Hiler

Add site-publishing that generates the html

index.md was moved over to it's own directory `site/` and
`site-publishing/` contains static page generator that takes that
content and turns it into a html webpage.

Also, clarify contributing and licensing.
Signed-off-by: Tomi Sarvela's avatarTomi Sarvela <tomi.p.sarvela@intel.com>
Signed-off-by: Arkadiusz Hiler's avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
parent 4fd36bd0
/site-publishing/output/
/site-publishing/tmp/
/hardware/
.bundle/
*.log
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
This work is licensed under the Creative Commons Attribution 4.0 International
License. To view a copy of this license, visit
http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative
Commons, PO Box 1866, Mountain View, CA 94042, USA.
Copyright 2018 Intel Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# i915 Infra
## Contributing
By contributing to this project you accept and agree to the terms and
conditions, for your contributions, present in [DCO](/site) and
[LICENSE](/LICENSE) (MIT).
The webpage contents that reside under [site/](/site) directory of this
repository are licensed under [site/LICENSE](/site/LICENSE) (CC BY 4.0).
Please add your `Signed-off-by: Name <e-mail>` line to the commits you submit
as an acknowledgement.
To contribute send us a merge request via GitLab.
source 'https://rubygems.org'
gem 'nanoc'
gem 'adsf'
gem 'kramdown'
gem 'nokogiri'
gem 'diffy'
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
adsf (1.4.1)
rack (>= 1.0.0, < 3.0.0)
colored (1.2)
concurrent-ruby (1.1.3)
cri (2.15.2)
colored (~> 1.2)
ddmemoize (1.0.0)
ddmetrics (~> 1.0)
ref (~> 2.0)
ddmetrics (1.0.1)
ddplugin (1.0.2)
diffy (3.2.1)
hamster (3.0.0)
concurrent-ruby (~> 1.0)
json_schema (0.19.1)
kramdown (1.17.0)
mini_portile2 (2.3.0)
nanoc (4.10.3)
addressable (~> 2.5)
cri (~> 2.15)
ddmemoize (~> 1.0)
ddmetrics (~> 1.0)
ddplugin (~> 1.0)
hamster (~> 3.0)
json_schema (~> 0.19)
parallel (~> 1.12)
ref (~> 2.0)
slow_enumerator_tools (~> 1.0)
tomlrb (~> 1.2)
nokogiri (1.8.5)
mini_portile2 (~> 2.3.0)
parallel (1.12.1)
public_suffix (3.0.3)
rack (2.0.6)
ref (2.0.0)
slow_enumerator_tools (1.1.0)
tomlrb (1.2.7)
PLATFORMS
ruby
DEPENDENCIES
adsf
diffy
kramdown
nanoc
nokogiri
BUNDLED WITH
1.16.2
Copyright 2018 Intel Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#!/usr/bin/env ruby
preprocess do
create_hardware_list(@items)
mds = @items.find_all { |i| i.identifier.ext == 'md' }
mds.each { |item| create_toc_and_title_from_headings(item) }
@config[:view_types] = {
'index.html' => 'combined',
'combined-alt.html' => 'combined alt',
'bat-full.html' => 'BAT full',
'shards-full.html' => 'shards full'
}
@config[:trees] = %w(
drm-tip
drm-intel-fixes
drm-intel-next-fixes
drm-intel-next-queued
drm-misc-fixes
drm-misc-next-fixes
linus
linux-next
airlied
)
@config[:trees].each {|tree| create_tree(tree)}
create_pre_merge_templates('drm-tip')
end
layout '/**/*.erb', :erb
compile '/*.md' do
filter :kramdown
layout '/docs.*'
filter :md_links_to_html
write ext: 'html'
end
compile '/tree/**/*.html' do
layout '/grids.*'
write ext: 'html'
end
compile '/test_result.js.erb' do
filter :erb
write '/test_result.js'
end
passthrough '/*.yml'
passthrough '/*.css'
passthrough '/*.gif'
passthrough '/*.js'
ignore '/LICENSE'
* {
margin: 0;
padding: 0;
}
pre {
border: 1px solid #ddd;
padding: 5px;
font-size: 0.9em;
background: #fafafa;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 15px;
}
h1::before, h2::before, h3::before, h4::before, h5::before, h6::before {
display: block;
content: " ";
margin-top: -50px;
height: 50px;
visibility: hidden;
}
h1:target, h2:target, h3:target, h4:target, h5:target, h6:target {
color: red;
}
h1, h2 {
border-bottom: 1px solid #ddd;
}
a {
text-decoration: none;
}
a:link, a:visited {
color: #03b;
}
a:hover {
color: #09b;
}
#main table {
border-collapse: collapse;
margin-bottom: 5px;
}
#main table, #main th, #main td {
border: 1px solid #999;
padding: 10px;
}
#main th {
background-color: #eee;
}
#main h1 {
font-size: 40px;
font-weight: bold;
}
#main p {
margin: 20px 0;
font-size: 15px;
line-height: 20px;
}
#main ul, #main ol {
margin: 20px;
}
#main li {
font-size: 15px;
line-height: 20px;
}
#main ul li {
list-style-type: square;
}
#footer {
position: relative;
margin-top: 50px;
background-color: #333;
width: 100%;
z-index: 3;
color: #fff;
box-shadow: 0 -2px 5px 0 rgba(0,0,0,.5)
}
#footer-content {
padding: 20px;
max-width: 50vw;
margin-right: 25vw;
margin-left: 25vw;
}
#footer a:link, #footer a:visited {
font-weight: bold;
color: #7ad;
}
#footer a:hover {
font-weight: bold;
color: #9cf;
}
#footer .right {
float: right;
}
#footer .right a:link, #footer .right a:visited {
font-weight: bold;
color: #ddd;
}
#sidebar {
position: fixed;
top: 0;
right: 0;
width: calc(25vw - 15px);
height: 100vh;
font-size: 13px;
overflow-y: auto;
z-index: 2;
}
#sidebar-content {
padding-top: 80px;
padding-bottom: 140px;
}
#sidebar h2 {
text-transform: uppercase;
font-size: 13px;
color: #333;
letter-spacing: 1px;
line-height: 20px;
margin-bottom: 3px;
}
#sidebar ul {
list-style-type: none;
margin: 20px 0;
}
#sidebar li {
font-size: 14px;
line-height: 20px;
}
* {
font-family: Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif
}
pre {
font-family: "DejaVu Sans Mono", "Consolas", "Ubuntu Mono", "Courier New", monospace;
}
body {
background: #eee;
}
#content-container {
padding-top: 45px;
}
#main {
padding: 45px;
background: #fff;
top: 0;
left: 0;
max-width: 50vw;
margin-right: 25vw;
margin-left: 25vw;
box-shadow: 0 4px 4px rgba(0,0,0,0.1)
}
.nav {
background-color: #333;
position: fixed;
top: 0;
left: 0;
z-index: 10;
width: 100%;
height: 45px;
}
.nav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
text-decoration: none;
font-size: 16px;
padding: 12px 12px;
}
.nav a img {
padding-top: 3px;
}
.nav .right {
float: right;
padding: 0;
margin: 0;
}
.dropdown {
float: left;
overflow: hidden;
}
.dropdown button {
border: none;
outline: none;
color: white;
background-color: inherit;
font-size: 16px;
font-family: inherit;
padding: 12px 12px;
margin: 0;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
float: none;
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.nav a:hover, .dropdown:hover button {
background-color: #d00;
color: white;
}
.dropdown-content a:hover {
background-color: #ddd;
color: black;
}
.dropdown:hover .dropdown-content {
display: block;
}
This diff is collapsed.
.h {
font-size: 0.7em;
/* width: 100%; */
white-space: nowrap;
border: 1px solid black;
}
.v {
-webkit-writing-mode:vertical-rl;
-ms-writing-mode:tb-rl;
writing-mode:vertical-rl;
font-size: 0.6em;
white-space: nowrap;
text-align: center;
}
.g { /* grouping up */
font-size: 0.7em; border: 1px solid black;
}
.s { /* spacer */
width: 0.2em;
border-left: thin solid black;
border-right: thin solid black;
}
.x { /* mark */
border-left: thin solid black;
border-right: thin solid black;
}
/* Cell spacing */
table {
border-spacing: 1px;
border-collapse: collapse;
}
td:not(.s) {
min-width: 0.6em;
}
table, tr, td { padding: 1px; }
.legend {
right: 0px;
top: 45px;
cursor: pointer;
display: block;
float: right;
position: absolute;
z-index: 3;
}
/* Subtle patterns to aid users with color vision deficiency. */
tr:nth-child(odd) > td > div.group { background-color: #ffff95 }
tr:nth-child(even) > td > div.group { background-color: #e1e183 }
tr:nth-child(odd) .pass { background-color: #30ff30; }
tr:nth-child(even) .pass { background-color: #20e820; }
tr:nth-child(odd) .skip { background: linear-gradient(91deg, #b0b0b0 2px, transparent 1%) center, linear-gradient(#b0b0b0 2px, transparent 1%) center, #a0a0a0; }
tr:nth-child(even) .skip { background: linear-gradient(91deg, #a0a0a0 2px, transparent 1%) center, linear-gradient(#a0a0a0 2px, transparent 1%) center, #909090; }
tr:nth-child(odd) .skip,
tr:nth-child(even) .skip { background-size: 4px 4px; background-position: 3px; }
tr:nth-child(odd) .notrun { background-color: #e0e0e0; }
tr:nth-child(even) .notrun { background-color: #d0d0d0; }
/* create slant luma difference of ~30 and row luma difference of ~15 */
tr:nth-child(odd) .dmesg-warn,
tr:nth-child(odd) .warn { background: linear-gradient(to right bottom, #ff9020 50%, #df7000 50%); }
tr:nth-child(even) .dmesg-warn,
tr:nth-child(even) .warn { background: linear-gradient(to right bottom, #ef8212 50%, #cf6000 50%); }
tr:nth-child(odd) .dmesg-fail,
tr:nth-child(odd) .fail,
tr:nth-child(even) .dmesg-fail,
tr:nth-child(even) .fail { background: linear-gradient(to left bottom, #ff2020 50%, #ba0000 50%); }
tr:nth-child(odd) .timeout { background-color: #83bdf6; }
tr:nth-child(even) .timeout { background-color: #4a9ef2; }
tr:nth-child(odd) .abort,
tr:nth-child(odd) .crash,
tr:nth-child(odd) .trap { background-color: #111111; color: white; }
tr:nth-child(even) .abort,
tr:nth-child(even) .crash,
tr:nth-child(even) .trap { background-color: #000000; color: white; }
tr:nth-child(odd) .incomplete { background-color: #853385; color: white; }
tr:nth-child(even) .incomplete { background-color: #652365; color: white; }
a:hover, a:visited, a:link, a:active
{
text-decoration: none;
}
a.tooltip { outline:none; }
a.tooltip strong { line-height:30px; }
a.tooltip:hover { text-decoration:none; }
a.tooltip span {
z-index:10;display:none; padding:0px 10px;
margin-top:50px; margin-left:-350px;
line-height: 1em;
}
a.tooltip:hover span{
display:inline;
position:absolute;
font-size: 0.8em;
border:2px solid black;
color:black;
background:white repeat-x 0 0;
}
.callout { z-index:20; position:absolute; border:0; top:-14px; left:120px; }
@keyframes opaque {
0% { opacity: 0.0; }
30% { opacity: 1.0; }
60% { opacity: 0.0; }
100% { opacity: 0.0; }
}
.sq {
float: left;
width: 24px; height: 24px;
opacity: 0.0;
animation-name: opaque;
animation-duration: 4s;
animation-iteration-count: infinite;
}
var navbar_contents = `
<%= render '/topnav.*', { page: :test_result } %>
`;
function addStylesheet()
{
var head = document.querySelector('head');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = '/generic.css';
head.appendChild(link);
}
function wrapContent()
{
var body = document.querySelector("body");
body.innerHTML = "<div id=\"content-container\">" +
body.innerHTML +
"</div>";
}
function getMachineName()
{
var components = document.URL.split('/');
return components[components.length-2];
}
function getRun()
{
var components = document.URL.split('/');
return components[components.length-3];
}
function getTreeName()
{
var components = document.URL.split('/');
return components[components.length-4];
}
function getTestName()
{
var components = document.URL.split('/');
return components[components.length-1].split('.')[0];
}
function isPremerge()
{
var run = getRun();
return run.startsWith("Patchwork_") || run.startsWith("IGTPW_") || run.startsWith("Trybot_");
}
function addMachine()
{
var machineName = getMachineName();
var a = document.createElement("a");
a.href = "/hardware.html#" + machineName;
a.innerText = machineName;
var b = document.createElement("b");
b.innerText = "Machine description: "
var p = document.createElement("p");
p.appendChild(b);
p.appendChild(a);
var div = document.createElement("div");
div.appendChild(p);
var container = document.querySelector("div");
container.insertBefore(div, container.firstChild);
}
function addNavbar()
{
var navbar = document.createElement("div");
navbar.className = "topnav";
navbar.innerHTML = navbar_contents;
var body = document.querySelector("body");
body.insertBefore(navbar, body.firstChild);
if (isPremerge()) {
var toDelete = document.querySelector("#run_name_href");
toDelete.parentElement.removeChild(toDelete);
} else {
var toDelete = document.querySelectorAll(".run_name_dropdown");
for (var i = 0; i < toDelete.length; i++) {
toDelete[i].parentElement.removeChild(toDelete[i]);
}
}
document.querySelector(".run_name").innerText = getRun();
document.querySelector("#machine_name").innerText = getMachineName();
document.querySelector("#test_name").innerText = getTestName();
document.querySelector("#tree_name").innerText = getTreeName();
}
addStylesheet();
document.addEventListener("DOMContentLoaded", function(event) {
addMachine();
wrapContent();
addNavbar();
});
var _table_ = document.createElement('table'),
_tr_ = document.createElement('tr'),
_th_ = document.createElement('th'),
_td_ = document.createElement('td'),
_span_ = document.createElement('span'),
_a_ = document.createElement('a'),
_div_ = document.createElement('div');