Skip to content

docs: no longer using master but main #1206

docs: no longer using master but main

docs: no longer using master but main #1206

name: Build and deploy documentation
on:
push:
# Runs on pushes targeting the release branches
branches:
- main
- nixos-24.05
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
timeout-minutes: 40
env:
repo: ${{ github.repository }}
repoName: ${{ github.event.repository.name }}
out: docs-build
steps:
- name: Install nix
uses: cachix/install-nix-action@v26
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Configure cachix
uses: cachix/cachix-action@v15
with:
name: nix-community
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Build docs
run: |
set -ex
# 1: branch
# 2: install dir (relative to /nixvim/)
build() {
branch="$1"
dir="${2:+/$2}"
flakeref="github:${repo}${branch:+/$branch}"
baseHref="/${repoName}${dir}/"
installDir="${out}${dir}"
# Build docs for the given flake ref, overriding baseHref in the derivation args
nix build --impure \
--argstr flakeref "$flakeref" \
--argstr baseHref "$baseHref" \
--expr '
{
flakeref,
baseHref,
system ? builtins.currentSystem,
}:
let
flake = builtins.getFlake flakeref;
packages = flake.outputs.packages.${system};
in
packages.docs.override {
inherit baseHref;
}
'
# Copy the result to the install dir
mkdir -p "$installDir"
cp -r result/share/doc/* "$installDir"
}
# Install main-branch docs at the top-level
build 'main' ''
# Install 24.05 docs under 'stable'
# TODO: consider having `<release>` instead of `stable`
build 'nixos-24.05' 'stable'
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "docs-build"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4