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'
|
||||
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:
|
||||
name: infra-publish-jobs
|
||||
jobs:
|
||||
|
5
tox.ini
5
tox.ini
@ -66,6 +66,11 @@ commands =
|
||||
[testenv:bashate]
|
||||
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]
|
||||
deps =
|
||||
Jinja2
|
||||
|
@ -729,6 +729,10 @@ jobs:
|
||||
files:
|
||||
- 'accessbot/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)$
|
||||
files:
|
||||
- 'specs/.*'
|
||||
@ -3723,6 +3727,7 @@ projects:
|
||||
- gate-project-config-irc-access
|
||||
- gate-project-config-jenkins-project
|
||||
- gate-project-config-projects-yaml
|
||||
- check-infra-docs-index
|
||||
- check-generate-specs-site
|
||||
gate:
|
||||
- gate-project-config-layout
|
||||
@ -3730,8 +3735,10 @@ projects:
|
||||
- gate-project-config-irc-access
|
||||
- gate-project-config-jenkins-project
|
||||
- gate-project-config-projects-yaml
|
||||
- check-infra-docs-index
|
||||
- check-generate-specs-site
|
||||
post:
|
||||
- publish-infra-docs-index
|
||||
- publish-specs-site
|
||||
periodic:
|
||||
- propose-project-config-update
|
||||
|
Loading…
Reference in New Issue
Block a user