Skip to content

Commit

Permalink
initial oranda site
Browse files Browse the repository at this point in the history
  • Loading branch information
bluejekyll committed Apr 13, 2024
1 parent e9e609e commit 3fc63db
Show file tree
Hide file tree
Showing 7 changed files with 121 additions and 11 deletions.
98 changes: 98 additions & 0 deletions .github/workflows/web.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Workflow to build your docs with oranda (and mdbook)
# and deploy them to Github Pages
name: Web

# We're going to push to the gh-pages branch, so we need that permission
permissions:
contents: write

# What situations do we want to build docs in?
# All of these work independently and can be removed / commented out
# if you don't want oranda/mdbook running in that situation
on:
# Check that a PR didn't break docs!
#
# Note that the "Deploy to Github Pages" step won't run in this mode,
# so this won't have any side-effects. But it will tell you if a PR
# completely broke oranda/mdbook. Sadly we don't provide previews (yet)!
pull_request:

# Whenever something gets pushed to main, update the docs!
# This is great for getting docs changes live without cutting a full release.
#
# Note that if you're using cargo-dist, this will "race" the Release workflow
# that actually builds the Github Release that oranda tries to read (and
# this will almost certainly complete first). As a result you will publish
# docs for the latest commit but the oranda landing page won't know about
# the latest release. The workflow_run trigger below will properly wait for
# cargo-dist, and so this half-published state will only last for ~10 minutes.
#
# If you only want docs to update with releases, disable this, or change it to
# a "release" branch. You can, of course, also manually trigger a workflow run
# when you want the docs to update.
push:
branches:
- main

# Whenever a workflow called "Release" completes, update the docs!
#
# If you're using cargo-dist, this is recommended, as it will ensure that
# oranda always sees the latest release right when it's available. Note
# however that Github's UI is wonky when you use workflow_run, and won't
# show this workflow as part of any commit. You have to go to the "actions"
# tab for your repo to see this one running (the gh-pages deploy will also
# only show up there).
workflow_run:
workflows: [ "Release" ]
types:
- completed

# Alright, let's do it!
jobs:
web:
name: Build and deploy site and docs
runs-on: ubuntu-latest
steps:
# Setup
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
- uses: swatinem/rust-cache@v2

# If you use any mdbook plugins, here's the place to install them!

# Install and run oranda (and mdbook)
# This will write all output to ./public/ (including copying mdbook's output to there)
- name: Install and run oranda
run: |
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/oranda/releases/download/v0.6.1/oranda-installer.sh | sh
oranda build
- name: Prepare HTML for link checking
# untitaker/hyperlink supports no site prefixes, move entire site into
# a subfolder
run: mkdir /tmp/public/ && cp -R public /tmp/public/oranda

- name: Check HTML for broken internal links
uses: untitaker/[email protected]
with:
args: /tmp/public/

# Deploy to our gh-pages branch (creating it if it doesn't exist)
# the "public" dir that oranda made above will become the root dir
# of this branch.
#
# Note that once the gh-pages branch exists, you must
# go into repo's settings > pages and set "deploy from branch: gh-pages"
# the other defaults work fine.
- name: Deploy to Github Pages
uses: JamesIves/[email protected]
# ONLY if we're on main (so no PRs or feature branches allowed!)
if: ${{ github.ref == 'refs/heads/main' }}
with:
branch: gh-pages
# Gotta tell the action where to find oranda's output
folder: public
token: ${{ secrets.GITHUB_TOKEN }}
single-commit: true
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "hickory-dns"]
path = hickory-dns
url = [email protected]:hickory-dns/hickory-dns.git
1 change: 1 addition & 0 deletions hickory-dns
Submodule hickory-dns added at 6c2a1e
17 changes: 6 additions & 11 deletions justfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export MDBOOK_BIN := "mdbook"
export ZOLA_BIN := "zola"
export CURRENT_BRANCH := `git branch --show-current`
export TMP_GH_PAGES_SITE := "/tmp/publishing-site"

Expand All @@ -9,23 +8,19 @@ init:
brew --version
# zola --version || brew install zola
mdbook --version || cargo install -f mdbook
mdbook-mermaid --version || cargo install -f mdbook-mermaid
oranda --version || cargo install -f oranda --locked --profile=dist
@echo current git branch: ${CURRENT_BRANCH}

clean:
@echo "====> cleaning build directories"
rm -rf public

book: init
@echo "====> building the book"
${MDBOOK_BIN} build
oranda: clean
@echo "====> building oranda site"
oranda build

zola: init
@echo "====> building the zola site"
${ZOLA_BIN} build
cp .nojekyll public/.nojekyll

build: book
build: oranda

gh-pages:
@echo "====> checking for gh-pages branch"
Expand All @@ -40,7 +35,7 @@ clean_worktree:
rm -rf ${TMP_GH_PAGES_SITE}
git worktree prune

deploy: gh-pages clean build
deploy: gh-pages clean oranda
@echo "====> deploying to github"
@git --version
git worktree add ${TMP_GH_PAGES_SITE} gh-pages
Expand Down
13 changes: 13 additions & 0 deletions oranda.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"styles": {
"theme": "hacker",
"favicon": "static/favicon.ico",
"logo": "static/logo.png"
},
"project": {
"name": "Hickory DNS",
"readme_path": "hickory-dns/README.md",
"repository": "https://github.com/hickory-dns/hickory-dns",
"license": "MIT OR Apache-2.0"
}
}
Binary file added static/favicon.ico
Binary file not shown.
Binary file added static/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3fc63db

Please sign in to comment.