Merge pull request #16112 from mehrdada/upload-web-assets-4-packages.grpc.io

Upload web-assets for packages.grpc.io
pull/16116/head
Mehrdad Afshari 7 years ago committed by GitHub
commit 1fd9b62cee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      tools/package_hosting/404.html
  2. 114
      tools/package_hosting/build-201807.xsl
  3. 16
      tools/package_hosting/dirindex.css
  4. 86
      tools/package_hosting/home.xsl
  5. 76
      tools/package_hosting/style.css
  6. 30
      tools/package_hosting/upload_web_assets.sh

@ -0,0 +1,114 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//build">
<html>
<head>
<title>Artifacts for gRPC Build <xsl:value-of select="@id"/> </title>
<link rel="stylesheet" type="text/css" href="/web-assets/style.css" />
<link rel="apple-touch-icon" href="/web-assets/favicons/apple-touch-icon.png" sizes="180x180" />
<link rel="icon" type="image/png" href="/web-assets/favicons/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="/web-assets/favicons/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/web-assets/favicons/favicon-16x16.png" sizes="16x16" />
<link rel="manifest" href="/web-assets/favicons/manifest.json" />
<link rel="mask-icon" href="/web-assets/favicons/safari-pinned-tab.svg" color="#2DA6B0" />
<meta name="msapplication-TileColor" content="#ffffff" />
<meta name="msapplication-TileImage" content="/web-assets/favicons/mstile-150x150.png" />
<meta name="og:title" content="gRPC Package Build"/>
<meta name="og:image" content="https://grpc.io/img/grpc_square_reverse_4x.png"/>
<meta name="og:description" content="gRPC Package Build"/>
</head>
<body bgcolor="#ffffff">
<div id="topbar">
<span class="title">Artifacts for gRPC Build <xsl:value-of select="@id"/></span>
</div>
<div id="main">
<div id="metadata">
<span class="fieldname">Build: </span> <a href='#'><xsl:value-of select="@id"/></a>
[<a href="https://source.cloud.google.com/results/invocations/{@id}">invocation</a>]<br />
<span class="fieldname">Timestamp: </span>
<xsl:value-of select="@timestamp"/> <br />
<span class="fieldname">Branch: </span>
<a href="https://github.com/grpc/grpc/tree/{./metadata/branch[text()]}">
<xsl:value-of select="./metadata/branch[text()]" />
</a><br />
<span class="fieldname">Commit: </span>
<a href="https://github.com/grpc/grpc/tree/{./metadata/commit[text()]}">
<xsl:value-of select="./metadata/commit[text()]" /><br /></a>
</div>
<xsl:apply-templates select="artifacts" />
<br />
<br />
<p class="description"><a href="https://grpc.io">gRPC</a> is a <a href="https://www.cncf.io" class="external">Cloud Native Computing Foundation</a> project. <a href="https://policies.google.com/privacy" class="external">Privacy Policy</a>.</p>
<p class="description">
Copyright &#169;&#160;<xsl:value-of select="substring(@timestamp, 1, 4)" />&#160;<a href="https://github.com/grpc/grpc/blob/{./metadata/commit[text()]}/AUTHORS">The gRPC Authors</a></p>
<br />
<br />
</div>
</body>
</html>
</xsl:template>
<xsl:template match="artifacts">
<h2> gRPC <code>protoc</code> Plugins </h2>
<table>
<xsl:apply-templates select="artifact[@type='protoc']">
<xsl:sort select="artifact/@name" />
</xsl:apply-templates>
</table>
<h2> C# </h2>
<table>
<xsl:apply-templates select="artifact[@type='csharp']">
<xsl:sort select="artifact/@name" />
</xsl:apply-templates>
</table>
<h2> PHP </h2>
<table>
<xsl:apply-templates select="artifact[@type='php']">
<xsl:sort select="artifact/@name" />
</xsl:apply-templates>
</table>
<h2> Python </h2>
<script type="text/javascript">
// <![CDATA[
var pythonRepoLink = document.createElement("a");
pythonRepoLink.href = './python';
var pythonRepo = pythonRepoLink.href;
document.write("<p><code>" +
"$ pip install --pre --upgrade --force-reinstall --extra-index-url \\<br />" +
"&nbsp;&nbsp;&nbsp;&nbsp;<a href='" + pythonRepo + "'>" + pythonRepo + "</a> \\<br />" +
"&nbsp;&nbsp;&nbsp;&nbsp;grpcio grpcio-{tools,health-checking,reflection,testing}</code></p>");
// ]]>
</script>
<table>
<xsl:apply-templates select="artifact[@type='python']">
<xsl:sort select="artifact/@name" />
</xsl:apply-templates>
</table>
<h2> Ruby </h2>
<table>
<xsl:apply-templates select="artifact[@type='ruby']">
<xsl:sort select="artifact/@name" />
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="artifact">
<tr>
<td class="name"> <a href="{@path}"><xsl:value-of select="@name" /></a> </td>
<td class="hash"> <xsl:value-of select="@sha256"/> </td>
</tr>
</xsl:template>
<xsl:template match="metadata">
</xsl:template>
</xsl:stylesheet>

@ -0,0 +1,16 @@
ul {
list-style-type: none;
}
a{
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
ul li a {
font-family: 'SF Mono', 'Menlo', 'Monaco', 'Consolas', 'Courier New', Courier, monospace
}
h1 {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
}

@ -0,0 +1,86 @@
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//packages">
<html>
<head>
<title>gRPC Packages</title>
<link rel="stylesheet" type="text/css" href="/web-assets/style.css" />
<link rel="apple-touch-icon" href="/web-assets/favicons/apple-touch-icon.png" sizes="180x180" />
<link rel="icon" type="image/png" href="/web-assets/favicons/android-chrome-192x192.png" sizes="192x192" />
<link rel="icon" type="image/png" href="/web-assets/favicons/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="/web-assets/favicons/favicon-16x16.png" sizes="16x16" />
<link rel="manifest" href="/web-assets/favicons/manifest.json" />
<link rel="mask-icon" href="/web-assets/favicons/safari-pinned-tab.svg" color="#2DA6B0" />
<meta name="msapplication-TileColor" content="#ffffff" />
<meta name="msapplication-TileImage" content="/web-assets/favicons/mstile-150x150.png" />
<meta name="og:title" content="gRPC Packages"/>
<meta name="og:image" content="https://grpc.io/img/grpc_square_reverse_4x.png"/>
<meta name="og:description" content="gRPC Packages"/>
</head>
<body bgcolor="#ffffff">
<div id="topbar">
<span class="title">gRPC Packages</span>
</div>
<div id="main">
<xsl:apply-templates select="releases" />
<xsl:apply-templates select="builds" />
<br />
<br />
<p class="description"><a href="https://grpc.io">gRPC</a> is a <a href="https://www.cncf.io" class="external">Cloud Native Computing Foundation</a> project. <a href="https://policies.google.com/privacy" class="external">Privacy Policy</a>.</p>
<p class="description">Copyright &#169; 2018 <a href="https://github.com/grpc/grpc/blob/master/AUTHORS">The gRPC Authors</a></p>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="releases">
<h2>Official gRPC Releases</h2>
<p>Commits corresponding to <a href="https://github.com/grpc/grpc/releases">official gRPC release points and release candidates</a> are tagged on GitHub.</p>
<p>To maximize usability, gRPC supports the standard way of adding dependencies in your language of choice (if there is one).
In most languages, the gRPC runtime comes in form of a package available in your language's package manager.</p>
<p>For instructions on how to use the language-specific gRPC runtime in your project, please refer to the following:</p>
<ul>
<li><a href="https://github.com/grpc/grpc/blob/master/src/cpp">C++</a>: follow the instructions under the <a href="https://github.com/grpc/grpc/tree/master/src/cpp"><code>src/cpp</code> directory</a></li>
<li><a href="https://github.com/grpc/grpc/blob/master/src/csharp">C#</a>: NuGet package <code>Grpc</code></li>
<li><a href="https://github.com/grpc/grpc-dart">Dart</a>: pub package <code>grpc</code></li>
<li><a href="https://github.com/grpc/grpc-go">Go</a>: <code>go get google.golang.org/grpc</code></li>
<li><a href="https://github.com/grpc/grpc-java">Java</a>: Use JARs from <a href="https://mvnrepository.com/artifact/io.grpc">gRPC Maven Central Repository</a></li>
<li><a href="https://github.com/grpc/grpc-node">Node</a>: <code>npm install grpc</code></li>
<li><a href="https://github.com/grpc/grpc/blob/master/src/objective-c">Objective-C</a>: Add <code>gRPC-ProtoRPC</code> dependency to podspec</li>
<li><a href="https://github.com/grpc/grpc/blob/master/src/php">PHP</a>: <code>pecl install grpc</code></li>
<li><a href="https://github.com/grpc/grpc/blob/master/src/python/grpcio">Python</a>: <code>pip install grpcio</code></li>
<li><a href="https://github.com/grpc/grpc/blob/master/src/ruby">Ruby</a>: <code>gem install grpc</code></li>
<li><a href="https://github.com/grpc/grpc-web">WebJS</a>: follow the <a href="https://github.com/grpc/grpc-web">instructions in <code>grpc-web</code> repository</a></li>
</ul>
</xsl:template>
<xsl:template match="builds">
<h2> Daily Builds of <a href="https://github.com/grpc/grpc/tree/master"><code>master</code></a> Branch</h2>
<p>gRPC packages are built on a daily basis at the <code>HEAD</code> of <a href="https://github.com/grpc/grpc/tree/master">the <code>master</code> branch</a> and are archived here.</p>
<p>
<a href="#">The current document</a> (view source) is an XML feed pointing to the packages as they get built and uploaded.
You can subscribe to this feed and fetch, deploy, and test the precompiled packages with your continuous integration infrastructure.
</p>
<p>For stable release packages, please consult the above section and the common package manager for your language.</p>
<table style="border:solid black 1px">
<tr style="background-color:lightgray">
<td>Timestamp</td>
<td>Commit</td>
<td>Build ID</td>
</tr>
<xsl:apply-templates select="build[@branch='master']">
<xsl:sort select="@timestamp" data-type="text" order="descending" />
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="build">
<tr>
<td class="name"><xsl:value-of select="@timestamp" /></td>
<td class="name"> <a href="https://github.com/grpc/grpc/tree/{@commit}"><xsl:value-of select="@commit" /></a></td>
<td class="name"> <a href="{@path}"><xsl:value-of select="@id" /></a></td>
</tr>
</xsl:template>
</xsl:stylesheet>

@ -0,0 +1,76 @@
html, body
{
margin: 0;
font-family: sans-serif;
}
a, a:visited, a:link, a:active {
color: #2da6b0;
text-decoration: none;
}
a:hover {
color: #2da6b0;
text-decoration: underline;
}
#topbar {
background-color: #2da6b0;
height: 60px;
margin:auto;
}
#topbar .title {
position: relative;
top: 24px;
left: 24px;
color: white;
font-family: sans-serif;
font-weight: bold;
}
#main {
max-width:1100px;
margin:auto;
}
#main h2 {
text-align: left;
}
#main table {
width:100%;
border-collapse: collapse;
font-size: small;
font-family: 'SF Mono', 'Menlo', 'Monaco', 'Courier New', Courier, monospace;
}
#main table tr td {
border: solid black 1px;
padding: 5px;
}
#main table tr td.hash {
text-align: right;
border-left: none;
font-size: x-small;
}
#main table tr td.name {
text-align: left;
border-right: none;
}
p.description
{
font-size: smaller;
}
#metadata {
margin-top: 15px;
padding: 15px;
font-family: 'SF Mono', 'Menlo', 'Monaco', 'Courier New', Courier, monospace;
}
#metadata span.fieldname {
font-family: sans-serif;
}

@ -0,0 +1,30 @@
#!/bin/bash
# Copyright 2018 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -ex
cd "$(dirname "$0")"
GCS_WEB_ASSETS=gs://packages.grpc.io/web-assets/
WEB_ASSETS=(
404.html
build-201807.xsl
dirindex.css
home.xsl
style.css
)
gsutil -m cp "${WEB_ASSETS[@]}" "$GCS_WEB_ASSETS"
Loading…
Cancel
Save