Add an index.html for docs.o.o/infra
This is a partial cargo-culting of the index job and associated files from the specs.o.o site, to generate a simple top-level index page for the http://docs.openstack.org/infra/ tree. Change-Id: Idb5a8dba58a53c7c8ea1de69e9a4d9b5ef410c78
This commit is contained in:
parent
a13303442d
commit
4d17d13edd
63
docs-site/generate_infra_index.py
Executable file
63
docs-site/generate_infra_index.py
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
"""Read the infra-documents.yaml file and generate the index.html file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
|
||||||
|
import jinja2
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
|
def render_template(template_filename, output_filename, template_context):
|
||||||
|
with open(template_filename, 'r') as f:
|
||||||
|
template = jinja2.Template(f.read())
|
||||||
|
print('Writing %r' % output_filename)
|
||||||
|
with open(output_filename, 'w') as f:
|
||||||
|
f.write(template.render(**template_context))
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-v', '--verbose',
|
||||||
|
dest='verbose',
|
||||||
|
default=False,
|
||||||
|
action='store_true',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'infile',
|
||||||
|
help='Path to infra-documents.yaml',
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
print('Reading documents data from %r' % args.infile)
|
||||||
|
infile = yaml.load(open(args.infile, 'r'))
|
||||||
|
template_path = os.path.dirname(args.infile)
|
||||||
|
|
||||||
|
template_context = {
|
||||||
|
'documents': infile['documents'],
|
||||||
|
'all': infile['documents']
|
||||||
|
}
|
||||||
|
|
||||||
|
outdir = os.path.join(template_path, 'output')
|
||||||
|
if not os.path.exists(outdir):
|
||||||
|
os.makedirs(outdir)
|
||||||
|
|
||||||
|
|
||||||
|
for template_name, filename in [('infra-index.html.tmpl', 'index.html')]:
|
||||||
|
render_template(os.path.join(template_path, template_name),
|
||||||
|
os.path.join(outdir, filename),
|
||||||
|
template_context)
|
19
docs-site/infra-documents.yaml
Normal file
19
docs-site/infra-documents.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
documents:
|
||||||
|
- name: Infrastructure Manual
|
||||||
|
directory: manual
|
||||||
|
- name: Jenkins Job Builder
|
||||||
|
directory: jenkins-job-builder
|
||||||
|
- name: Nodepool
|
||||||
|
directory: nodepool
|
||||||
|
- name: OpenStackID
|
||||||
|
directory: openstackid
|
||||||
|
- name: Shade
|
||||||
|
directory: shade
|
||||||
|
- name: Slide Presentations
|
||||||
|
directory: publications
|
||||||
|
- name: Storyboard
|
||||||
|
directory: storyboard
|
||||||
|
- name: System Configuration
|
||||||
|
directory: system-config
|
||||||
|
- name: Zuul
|
||||||
|
directory: zuul
|
130
docs-site/infra-index.html.tmpl
Normal file
130
docs-site/infra-index.html.tmpl
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
|
||||||
|
<title>
|
||||||
|
OpenStack Specifications
|
||||||
|
</title>
|
||||||
|
<script src="http://status.openstack.org/common.js" type="text/javascript">
|
||||||
|
</script>
|
||||||
|
<!-- Google Fonts -->
|
||||||
|
<link href="http://fonts.googleapis.com/css?family=PT+Sans&subset=latin" rel="stylesheet" type="text/css"/>
|
||||||
|
<!-- Google Fonts -->
|
||||||
|
<link href="http://www.openstack.org/blog/feed/" rel="alternate" title="RSS 2.0" type="application/rss+xml"/>
|
||||||
|
<link href="http://fonts.googleapis.com/css?family=PT+Sans&subset=latin" rel="stylesheet" type="text/css"/>
|
||||||
|
<!-- Framework CSS -->
|
||||||
|
<link href="http://openstack.org/themes/openstack/css/blueprint/screen.css" media="screen, projection" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="http://openstack.org/themes/openstack/css/blueprint/print.css" media="print" rel="stylesheet" type="text/css"/>
|
||||||
|
<!--[if lt IE 8]><link rel="stylesheet" href="http://openstack.org/themes/openstack/css/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||||
|
<!-- OpenStack Specific CSS -->
|
||||||
|
<link href="http://openstack.org/themes/openstack/css/main.css" media="screen, projection, print" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="http://docs.openstack.org/common/css/main-landing.css" media="screen, projection, print" rel="stylesheet" type="text/css"/>
|
||||||
|
<link href="http://openstack.org/themes/openstack/css/dropdown.css" rel="stylesheet" type="text/css"/>
|
||||||
|
</head>
|
||||||
|
<body class="docshome" id="docshome">
|
||||||
|
<div class="container">
|
||||||
|
<div id="header">
|
||||||
|
<div class="span-5">
|
||||||
|
<h1 id="logo">
|
||||||
|
<a href="http://www.openstack.org/">
|
||||||
|
OpenStack
|
||||||
|
</a>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<div class="span-19 last blueLine">
|
||||||
|
<div class="span-19" id="navigation">
|
||||||
|
<ul id="Menu1">
|
||||||
|
<li>
|
||||||
|
<a href="/" title="Go to the Home page">
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="link" href="http://www.openstack.org/software/" title="Go to the Software page">
|
||||||
|
Software
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="link" href="http://www.openstack.org/user-stories/" title="Go to the User Stories page">
|
||||||
|
User Stories
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="link" href="http://www.openstack.org/community/" title="Go to the Community page">
|
||||||
|
Community
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="link" href="http://www.openstack.org/foundation/" title="Go to the Foundation page">
|
||||||
|
Foundation
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="link" href="http://www.openstack.org/profile/" title="Go to the Profile page">
|
||||||
|
Profile
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://www.openstack.org/blog/" title="Go to the OpenStack Blog">
|
||||||
|
Blog
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://wiki.openstack.org/" title="Go to the OpenStack Wiki">
|
||||||
|
Wiki
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://docs.openstack.org/" title="Go to OpenStack Documentation">
|
||||||
|
Documentation
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Page Content -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="span-12">
|
||||||
|
<h3 class="subhead">
|
||||||
|
OpenStack Developer and Community Infrastructure Documentation
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="searchArea span-10 last">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="span-12">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="span-12">
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="span-12" id="subnav">
|
||||||
|
<ul class="subsectionNav">
|
||||||
|
<li class="link">
|
||||||
|
<a>
|
||||||
|
Projects
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<dl>
|
||||||
|
{% for document in documents %}
|
||||||
|
<dd>
|
||||||
|
<a href="{{document.directory}}">
|
||||||
|
{{document.name}}
|
||||||
|
</a>
|
||||||
|
</dd>
|
||||||
|
{% endfor %}
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Page Content -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
footer();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -16,6 +16,39 @@
|
|||||||
remove-prefix: 'doc/build/html'
|
remove-prefix: 'doc/build/html'
|
||||||
excludes: ''
|
excludes: ''
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: publish-infra-docs-index
|
||||||
|
description: Render and publish the infra docs index.
|
||||||
|
node: bare-trusty
|
||||||
|
|
||||||
|
builders:
|
||||||
|
- revoke-sudo
|
||||||
|
- gerrit-git-prep
|
||||||
|
- tox:
|
||||||
|
envlist: infra-docs
|
||||||
|
|
||||||
|
publishers:
|
||||||
|
- ftp:
|
||||||
|
site: docs.openstack.org
|
||||||
|
source: 'docs-site/index.html'
|
||||||
|
target: '/infra/'
|
||||||
|
remove-prefix: 'docs-site/'
|
||||||
|
- console-log
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: check-infra-docs-index
|
||||||
|
description: Render the infra docs index without publishing it.
|
||||||
|
node: bare-trusty
|
||||||
|
|
||||||
|
builders:
|
||||||
|
- revoke-sudo
|
||||||
|
- gerrit-git-prep
|
||||||
|
- tox:
|
||||||
|
envlist: infra-docs
|
||||||
|
|
||||||
|
publishers:
|
||||||
|
- console-log
|
||||||
|
|
||||||
- job-group:
|
- job-group:
|
||||||
name: infra-publish-jobs
|
name: infra-publish-jobs
|
||||||
jobs:
|
jobs:
|
||||||
|
5
tox.ini
5
tox.ini
@ -66,6 +66,11 @@ commands =
|
|||||||
[testenv:bashate]
|
[testenv:bashate]
|
||||||
commands = {toxinidir}/tools/run-bashate.sh
|
commands = {toxinidir}/tools/run-bashate.sh
|
||||||
|
|
||||||
|
[testenv:infra-docs]
|
||||||
|
deps =
|
||||||
|
Jinja2
|
||||||
|
PyYAML
|
||||||
|
commands = {toxinidir}/docs-site/generate_infra_index.py {toxinidir}/docs-site/infra-documents.yaml
|
||||||
[testenv:specs]
|
[testenv:specs]
|
||||||
deps =
|
deps =
|
||||||
Jinja2
|
Jinja2
|
||||||
|
@ -729,6 +729,10 @@ jobs:
|
|||||||
files:
|
files:
|
||||||
- 'accessbot/channels.yaml'
|
- 'accessbot/channels.yaml'
|
||||||
- 'gerritbot/channels.yaml'
|
- 'gerritbot/channels.yaml'
|
||||||
|
- name: ^(check-infra-docs-index|publish-infra-docs-index)$
|
||||||
|
files:
|
||||||
|
- 'docs-site/.*'
|
||||||
|
- 'tox.ini'
|
||||||
- name: ^(check-generate-specs-site|publish-specs-site)$
|
- name: ^(check-generate-specs-site|publish-specs-site)$
|
||||||
files:
|
files:
|
||||||
- 'specs/.*'
|
- 'specs/.*'
|
||||||
@ -3723,6 +3727,7 @@ projects:
|
|||||||
- gate-project-config-irc-access
|
- gate-project-config-irc-access
|
||||||
- gate-project-config-jenkins-project
|
- gate-project-config-jenkins-project
|
||||||
- gate-project-config-projects-yaml
|
- gate-project-config-projects-yaml
|
||||||
|
- check-infra-docs-index
|
||||||
- check-generate-specs-site
|
- check-generate-specs-site
|
||||||
gate:
|
gate:
|
||||||
- gate-project-config-layout
|
- gate-project-config-layout
|
||||||
@ -3730,8 +3735,10 @@ projects:
|
|||||||
- gate-project-config-irc-access
|
- gate-project-config-irc-access
|
||||||
- gate-project-config-jenkins-project
|
- gate-project-config-jenkins-project
|
||||||
- gate-project-config-projects-yaml
|
- gate-project-config-projects-yaml
|
||||||
|
- check-infra-docs-index
|
||||||
- check-generate-specs-site
|
- check-generate-specs-site
|
||||||
post:
|
post:
|
||||||
|
- publish-infra-docs-index
|
||||||
- publish-specs-site
|
- publish-specs-site
|
||||||
periodic:
|
periodic:
|
||||||
- propose-project-config-update
|
- propose-project-config-update
|
||||||
|
Loading…
Reference in New Issue
Block a user