1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-15 04:57:56 +00:00

Merge pull request #367 from marquiz/devel/gh-pages

Integration with gh-pages
This commit is contained in:
Kubernetes Prow Robot 2020-10-08 03:16:16 -07:00 committed by GitHub
commit c793796ba5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 623 additions and 0 deletions

28
.github/workflows/gh-pages.yml vendored Normal file
View file

@ -0,0 +1,28 @@
name: gh-pages
on:
push:
branches:
- master
- release-*
tags:
- v*
jobs:
build:
name: Update gh-pages
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v2
- name: Fetch gh-pages branch
run: git fetch --no-tags --prune --depth=1 origin refs/heads/gh-pages:refs/heads/gh-pages
- name: Build site
run: |
git config user.name "Github Actions"
git config user.email "no-reply@github.com"
./scripts/github/update-gh-pages.sh
- name: Deploy site
run: git push -f https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} gh-pages

View file

@ -7,6 +7,16 @@ GO_FMT ?= gofmt
IMAGE_BUILD_CMD ?= docker build IMAGE_BUILD_CMD ?= docker build
IMAGE_BUILD_EXTRA_OPTS ?= IMAGE_BUILD_EXTRA_OPTS ?=
IMAGE_PUSH_CMD ?= docker push IMAGE_PUSH_CMD ?= docker push
CONTAINER_RUN_CMD ?= docker run
# Docker base command for working with html documentation.
# Use host networking because 'jekyll serve' is stupid enough to use the
# same site url than the "host" it binds to. Thus, all the links will be
# broken if we'd bind to 0.0.0.0
JEKYLL_VERSION := 3.8
SITE_BUILD_CMD := $(CONTAINER_RUN_CMD) --rm -i -u "`id -u`:`id -g`" --volume="$$PWD/docs:/srv/jekyll" --volume="$$PWD/docs/vendor/bundle:/usr/local/bundle" --network=host jekyll/jekyll:$(JEKYLL_VERSION)
SITE_SUBDIR ?=
JEKYLL_OPTS := -d _site/$(SITE_SUBDIR) -b /node-feature-discovery/$(SITE_SUBDIR)
VERSION := $(shell git describe --tags --dirty --always) VERSION := $(shell git describe --tags --dirty --always)
@ -105,3 +115,11 @@ poll-image:
echo Image $$image not found; \ echo Image $$image not found; \
exit 1; \ exit 1; \
fi; fi;
site-build:
@mkdir -p docs/vendor/bundle
$(SITE_BUILD_CMD) sh -c "bundle install && jekyll build $(JEKYLL_OPTS)"
site-serve:
@mkdir -p docs/vendor/bundle
$(SITE_BUILD_CMD) sh -c "bundle install && jekyll serve $(JEKYLL_OPTS) -H 127.0.0.1 -b ''"

4
docs/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
_site
.sass-cache
.jekyll-metadata
vendor

24
docs/404.html Normal file
View file

@ -0,0 +1,24 @@
---
layout: default
---
<style type="text/css" media="screen">
.container {
margin: 10px auto;
max-width: 600px;
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
}
</style>
<div class="container">
<h1>404</h1>
<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>

31
docs/Gemfile Normal file
View file

@ -0,0 +1,31 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 3.9.0"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
gem "github-pages", "~> 207", group: :jekyll_plugins
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
gem "tzinfo", "~> 1.2"
gem "tzinfo-data"
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
# kramdown v2 ships without the gfm parser by default. If you're using
# kramdown v1, comment out this line.
#gem "kramdown-parser-gfm"
gem "jekyll-rtd-theme", "~> 2.0.6"

268
docs/Gemfile.lock Normal file
View file

@ -0,0 +1,268 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (6.0.3.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
commonmarker (0.17.13)
ruby-enum (~> 0.5)
concurrent-ruby (1.1.7)
dnsruby (1.61.4)
simpleidn (~> 0.1)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
ethon (0.12.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
execjs (2.7.0)
faraday (1.0.1)
multipart-post (>= 1.2, < 3)
ffi (1.13.1)
forwardable-extended (2.6.0)
gemoji (3.0.1)
github-pages (207)
github-pages-health-check (= 1.16.1)
jekyll (= 3.9.0)
jekyll-avatar (= 0.7.0)
jekyll-coffeescript (= 1.1.1)
jekyll-commonmark-ghpages (= 0.1.6)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.13.0)
jekyll-gist (= 1.5.0)
jekyll-github-metadata (= 2.13.0)
jekyll-mentions (= 1.5.1)
jekyll-optional-front-matter (= 0.3.2)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.3.0)
jekyll-redirect-from (= 0.15.0)
jekyll-relative-links (= 0.6.1)
jekyll-remote-theme (= 0.4.1)
jekyll-sass-converter (= 1.5.2)
jekyll-seo-tag (= 2.6.1)
jekyll-sitemap (= 1.4.0)
jekyll-swiss (= 1.0.0)
jekyll-theme-architect (= 0.1.1)
jekyll-theme-cayman (= 0.1.1)
jekyll-theme-dinky (= 0.1.1)
jekyll-theme-hacker (= 0.1.1)
jekyll-theme-leap-day (= 0.1.1)
jekyll-theme-merlot (= 0.1.1)
jekyll-theme-midnight (= 0.1.1)
jekyll-theme-minimal (= 0.1.1)
jekyll-theme-modernist (= 0.1.1)
jekyll-theme-primer (= 0.5.4)
jekyll-theme-slate (= 0.1.1)
jekyll-theme-tactile (= 0.1.1)
jekyll-theme-time-machine (= 0.1.1)
jekyll-titles-from-headings (= 0.5.3)
jemoji (= 0.11.1)
kramdown (= 2.3.0)
kramdown-parser-gfm (= 1.1.0)
liquid (= 4.0.3)
mercenary (~> 0.3)
minima (= 2.5.1)
nokogiri (>= 1.10.4, < 2.0)
rouge (= 3.19.0)
terminal-table (~> 1.4)
github-pages-health-check (1.16.1)
addressable (~> 2.3)
dnsruby (~> 1.60)
octokit (~> 4.0)
public_suffix (~> 3.0)
typhoeus (~> 1.3)
html-pipeline (2.14.0)
activesupport (>= 2)
nokogiri (>= 1.4)
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jekyll (3.9.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 0.7)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
kramdown (>= 1.17, < 3)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
jekyll-avatar (0.7.0)
jekyll (>= 3.0, < 5.0)
jekyll-coffeescript (1.1.1)
coffee-script (~> 2.2)
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.3.1)
commonmarker (~> 0.14)
jekyll (>= 3.7, < 5.0)
jekyll-commonmark-ghpages (0.1.6)
commonmarker (~> 0.17.6)
jekyll-commonmark (~> 1.2)
rouge (>= 2.0, < 4.0)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-github-metadata (2.13.0)
jekyll (>= 3.4, < 5.0)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.5.1)
html-pipeline (~> 2.3)
jekyll (>= 3.7, < 5.0)
jekyll-optional-front-matter (0.3.2)
jekyll (>= 3.0, < 5.0)
jekyll-paginate (1.1.0)
jekyll-readme-index (0.3.0)
jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.15.0)
jekyll (>= 3.3, < 5.0)
jekyll-relative-links (0.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-remote-theme (0.4.1)
addressable (~> 2.0)
jekyll (>= 3.5, < 5.0)
rubyzip (>= 1.3.0)
jekyll-rtd-theme (2.0.7)
github-pages (~> 207)
jekyll-sass-converter (1.5.2)
sass (~> 3.4)
jekyll-seo-tag (2.6.1)
jekyll (>= 3.3, < 5.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-swiss (1.0.0)
jekyll-theme-architect (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-cayman (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-dinky (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-merlot (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-midnight (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-minimal (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-modernist (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-primer (0.5.4)
jekyll (> 3.5, < 5.0)
jekyll-github-metadata (~> 2.9)
jekyll-seo-tag (~> 2.0)
jekyll-theme-slate (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-tactile (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-time-machine (0.1.1)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-titles-from-headings (0.5.3)
jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
jemoji (0.11.1)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
kramdown (2.3.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.4.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.14.2)
multipart-post (2.1.1)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
octokit (4.18.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (3.1.1)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.19.0)
ruby-enum (0.8.0)
i18n
rubyzip (2.3.0)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
simpleidn (0.1.1)
unf (~> 0.1.4)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.7)
thread_safe (~> 0.1)
tzinfo-data (1.2020.1)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.7)
unicode-display_width (1.7.0)
wdm (0.1.1)
zeitwerk (2.4.0)
PLATFORMS
ruby
DEPENDENCIES
github-pages (~> 207)
jekyll (~> 3.9.0)
jekyll-rtd-theme (~> 2.0.6)
tzinfo (~> 1.2)
tzinfo-data
wdm (~> 0.1.1)
BUNDLED WITH
2.0.2

48
docs/_config.yml Normal file
View file

@ -0,0 +1,48 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Node Feature Discovery
description: >- # this means to ignore newlines until "baseurl:"
Documentation of Node Feature Discovery - a Kubernetes add-on for discovering
and advertising hardware features and system configuration in the cluster.
url: "https://kubernetes-sigs.github.com" # the base hostname & protocol for your site, e.g. http://example.com
repository: kubernetes-sigs/node-feature-discovery
# Build settings
markdown: kramdown
kramdown:
toc_levels: 1..3
remote_theme: rundocs/jekyll-rtd-theme
# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
# exclude:
# - Gemfile
# - Gemfile.lock
# - node_modules
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/
# Document versioning. Current 'version' should be listed under
# 'versions' as we use it in constructing the baseurl for other
# versions.
version: master
versions:
- master

View file

@ -0,0 +1,51 @@
<div class="addons-wrap d-flex flex-column overflow-y-auto">
<div class="branch">
<dl>
<dt>Versions:</dt>
{% comment %}
The following ugly construction is solely for the
purpose of dropping the "version" suffix from the
baseurl. The reason for doing this is that github-pages
gem forces us on --safe mode (i.e. disables custom
plugins) so we're not able to write a simple ruby
plugin doing delete_suffix()
{% endcomment %}
{% assign version_len = site.version | size %}
{% assign baseurl_len = site.baseurl | size %}
{% assign idx = baseurl_len | minus: version_len %}
{% assign suffix = site.baseurl | slice: idx, version_len %}
{% if suffix == site.version %}
{% assign idx = idx | minus: 1 %}
{% assign baseurl = site.baseurl | slice: 0, idx %}
{% else %}
{% assign baseurl = site.baseurl %}
{% endif %}
{% for version in site.versions %}
<dd><a href="{{ baseurl }}/{{ version }}/">{{ version }}</a></dd>
{% endfor %}
</dl>
</div>
<div class="status d-flex flex-justify-between p-2">
<div class="title p-1">
<i class="fa fa-book"></i> {{ site.title }}
</div>
<div class="branch p-1">
<i class="fa fa-caret-down"></i>
</div>
</div>
<div class="addons d-flex flex-column height-full p-2 d-none">
{%- assign items = "github, analytics" | split: ", " -%}
{% for item in items -%}
{% include addons/{{ item }}.liquid %}
{% endfor -%}
<hr>
<div class="generator f6 pb-2">
Built with
<a href="https://github.com/rundocs/jekyll-rtd-theme" target="_blank" title="{% if site.remote_theme %}remote{% endif %} theme v{{ version }}">jekyll-rtd-theme</a>
provided by
<a href="https://rundocs.io" target="_blank">RunDocs</a>
</div>
</div>
</div>

View file

@ -0,0 +1,18 @@
<div class="sidebar-wrap overflow-hidden">
<div class="sidebar height-full overflow-y-scroll overflow-x-hidden">
<div class="header d-flex flex-column p-3 text-center">
<div class="title pb-1">
<a class="h4 no-underline py-1 px-2 rounded-1" href="{{ site.baseurl }}/" title="{{ site.description }}">
<i class="fa fa-home"></i> {{ site.title }}
</a>
</div>
<span class="version">{{ site.version }}</span>
<form class="search pt-2" action="{{ site.baseurl }}/search.html" method="get" autocomplete="off">
<input class="form-control input-block input-sm" type="text" name="q" placeholder="{{ __.search_docs | default: 'Search docs...' }}">
</form>
</div>
<div class="toctree py-2" data-spy="affix" role="navigation" aria-label="main navigation">
{% include class/_toctree.liquid %}
</div>
</div>
</div>

5
docs/index.md Normal file
View file

@ -0,0 +1,5 @@
---
title: Node Feature Discovery Documentation
layout: default
---
***UNDER CONSTRUCTION...***

125
scripts/github/update-gh-pages.sh Executable file
View file

@ -0,0 +1,125 @@
#!/bin/bash -e
set -o pipefail
this=`basename $0`
usage () {
cat << EOF
Usage: $this [-h] [-a] [SITE_SUBDIR]
Options:
-h show this help and exit
-a amend (with --reset-author) instead of creating a new commit
-p REMOTE do git push to remote repo
EOF
}
#
# Argument parsing
#
while getopts "hap:" opt; do
case $opt in
h) usage
exit 0
;;
a) amend="--amend --reset-author"
;;
p) push_remote="$OPTARG"
;;
*) usage
exit 1
;;
esac
done
shift "$((OPTIND - 1))"
site_subdir="$1"
# Check that no extra args were provided
if [ $# -gt 1 ]; then
echo "ERROR: extra positional arguments: $@"
usage
exit 1
fi
#
# Build the documentation
#
build_dir="docs/_site"
echo "Creating new Git worktree at $build_dir"
git worktree add "$build_dir" gh-pages
# Drop worktree on exit
trap "echo 'Removing Git worktree $build_dir'; git worktree remove '$build_dir'" EXIT
# Parse subdir name from GITHUB_REF
if [ -z "$site_subdir" ]; then
case "$GITHUB_REF" in
refs/tags/*)
_base_ref=${GITHUB_REF#refs/tags/}
;;
refs/heads/*)
_base_ref=${GITHUB_REF#refs/heads/}
;;
*) _base_ref=
esac
echo "Parsed baseref: '$_base_ref'"
case "$GITHUB_REF" in
refs/tags/v*)
_version=${GITHUB_REF#refs/tags/v}
;;
refs/heads/release-*)
_version=${GITHUB_REF#refs/heads/release-}
;;
*) _version=
esac
echo "Detected version: '$_version'"
_version=`echo -n $_version | sed -nE s'!^([0-9]+\.[0-9]+).*$!\1!p'`
# User version as the subdir
site_subdir=${_version:+v$_version}
# Fallback to base-ref i.e. name of the branch or tag
site_subdir=${site_subdir:-$_base_ref}
fi
# Default to 'master' if no subdir was given and we couldn't parse
# it
export SITE_SUBDIR=${site_subdir:-master}
echo "Updating site subdir: '$SITE_SUBDIR'"
make site-build
#
# Update gh-pages branch
#
if [ -n "$_GIT_TAG" ]; then
commit_hash=${GIT_TAG:10}
else
commit_hash=`git describe --dirty --always`
fi
# Switch to work in the gh-pages worktree
cd "$build_dir"
if [ -z "`git status --short`" ]; then
echo "No new content, gh-pages branch already up-to-date"
exit 0
fi
# Create a new commit
commit_msg=`echo -e "Update documentation for $SITE_SUBDIR\n\nAuto-generated from $commit_hash by '$this'"`
echo "Committing changes..."
git add .
git commit $amend -m "$commit_msg"
cd -
echo "gh-pages branch successfully updated"
if [ -n "$push_remote" ]; then
echo "Pushing gh-pages to $push_remote"
git push ${amend+-f} "$push_remote" gh-pages
fi

View file

@ -0,0 +1,3 @@
#!/bin/bash -e
make site-build