Compare commits

...

7 commits

Author SHA1 Message Date
raf
9796565269
Merge fbe0d142e4 into aa7b55fa49 2025-01-08 11:22:32 +01:00
aa7b55fa49
docs: liberapay URL for @horriblename
Some checks failed
Check for typos in the source tree / check-typos (push) Has been cancelled
2025-01-07 06:10:15 +03:00
2728e65a5e
docs/installation: mark additional inputs as 'optional'
Some checks failed
Check for typos in the source tree / check-typos (push) Waiting to run
Set up binary cache / cachix (default) (push) Has been cancelled
Set up binary cache / cachix (maximal) (push) Has been cancelled
Set up binary cache / cachix (nix) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
Validate flake & check documentation / Validate hyperlinks in documentation sources (push) Has been cancelled
Validate flake & check formatting / Validate Flake (push) Has been cancelled
Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
Build and deploy documentation / Check latest commit (push) Has been cancelled
Build and deploy documentation / publish (push) Has been cancelled
2025-01-07 04:19:57 +03:00
raf
fbe0d142e4
Merge branch 'main' into live-docs-preview
Some checks failed
Check for typos in the source tree / check-typos (push) Has been cancelled
2025-01-02 20:00:31 +03:00
raf
4bcc8745dd
Merge branch 'main' into live-docs-preview
Some checks are pending
Check for typos in the source tree / check-typos (push) Waiting to run
2025-01-02 04:13:05 +03:00
raf
5ce1d90e95
Merge branch 'main' into live-docs-preview
Some checks failed
Check for typos in the source tree / check-typos (push) Has been cancelled
2024-12-20 07:11:58 +03:00
7324474ef8
ci: build previws for the website on doc changes 2024-12-11 02:39:59 +03:00
4 changed files with 206 additions and 18 deletions

28
.github/README.md vendored
View file

@ -210,12 +210,16 @@ features.
Alongside myself, nvf is developed by those talented folk: Alongside myself, nvf is developed by those talented folk:
- [**@horriblename**](https://github.com/horriblename) - For actively - [**@horriblename**](https://github.com/horriblename)
implementing planned features and quality of life updates. ([Liberapay](https://liberapay.com/horriblename/))- For actively implementing
planned features and quality of life updates.
- [**@Diniamo**](https://github.com/Diniamo) - [**@Diniamo**](https://github.com/Diniamo)
([Liberapay](https://en.liberapay.com/diniamo/)) - For actively submitting ([Liberapay](https://en.liberapay.com/diniamo/)) - For actively submitting
pull requests, issues and assistance with maintenance of nvf. pull requests, issues and assistance with maintenance of nvf.
Please do remember to extend your thanks (financially or otherwise) if this
project has been helpful to you.
### Contributors ### Contributors
[mnw]: https://github.com/gerg-l/mnw [mnw]: https://github.com/gerg-l/mnw
@ -245,17 +249,17 @@ This configuration borrows from and is based on a few other configurations,
including: including:
- [@jordanisaacs's](https://github.com/jordanisaacs) - [@jordanisaacs's](https://github.com/jordanisaacs)
[neovim-flake](https://github.com/jordanisaacs/neovim-flake) that this flake [**neovim-flake**](https://github.com/jordanisaacs/neovim-flake) that this
is originally based on. flake is originally based on.
- [@sioodmy's](https://github.com/sioodmy)
[dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design
choices for UI and plugin defaults.
- [@wiltaylor's](https://github.com/wiltaylor) - [@wiltaylor's](https://github.com/wiltaylor)
[neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and [neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and
design ideas. design ideas.
- [@gvolpe's](https://github.com/gvolpe) - [@gvolpe's](https://github.com/gvolpe)
[neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and [neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and
nix concepts. nix concepts.
- [@sioodmy's](https://github.com/sioodmy)
[dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design
choices for UI and plugin defaults.
I am grateful for their previous work and inspiration, and I wholeheartedly I am grateful for their previous work and inspiration, and I wholeheartedly
recommend checking their work out. recommend checking their work out.
@ -263,12 +267,12 @@ recommend checking their work out.
## License ## License
Following the license of the Following the license of
[original neovim-flake](https://github.com/jordanisaacs/neovim-flake), nvf has [the original neovim-flake](https://github.com/jordanisaacs/neovim-flake), nvf
been made available under the [**MIT License**](LICENSE). However, all assets has been made available under the [**MIT License**](LICENSE). However, all
and documentation are published under the assets and documentation are published under the
[**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE) [**CC BY License**](https://github.com/NotAShelf/nvf/blob/main/.github/assets/LICENSE)
under explicit permission by the artist. under explicit permission by the author or authors.
<h6 align="center">Yes, this includes the logo work too. Stop taking artwork that is not yours!</h6> <h6 align="center">Yes, this includes the logo work too. Stop taking artwork that is not yours!</h6>

172
.github/workflows/docs-preview.yml vendored Normal file
View file

@ -0,0 +1,172 @@
name: Build and Preview Manual
on:
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened, closed]
paths:
- ".github/workflows/docs-preview.yml"
- "modules/**"
- "docs/**"
# Defining permissions here passes it to all workflows.
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token
permissions:
contents: write
pull-requests: write
issues: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-preview:
runs-on: ubuntu-latest
steps:
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Checkout
uses: actions/checkout@v4
- name: Set default git branch (to reduce log spam)
run: git config --global init.defaultBranch main
- name: Build documentation packages
run: nix build .#docs-html --print-build-logs
- name: Deploy to GitHub Pages preview
run: |
PR_NUMBER=${{ github.event.pull_request.number }}
BRANCH_NAME="gh-pages"
PREVIEW_DIR="docs-preview-${PR_NUMBER}"
# Clone the gh-pages branch and move to the preview subdirectory
git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages
cd gh-pages
mkdir -p $PREVIEW_DIR
# Copy the build files to the preview subdirectory
cp -rvf ../result/share/doc/nvf/* ./$PREVIEW_DIR
# Configure git to use the GitHub Actions token for authentication
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
# Set the GitHub token for authentication
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
# Add and commit the changes
git add --all
git commit -m "Deploy PR #${PR_NUMBER} preview" || echo "No changes to commit"
git push --force origin $BRANCH_NAME
comment-url:
needs: build-preview
runs-on: ubuntu-latest
steps:
- name: Prepare Environment
id: prelude
run: |
PR_NUMBER=${{ github.event.pull_request.number }}
URL="https://${{ github.repository_owner }}.github.io/nvf/docs-preview-${PR_NUMBER}/"
# Propagate non-interpolatable environment vars
echo "URL=$URL" >> "$GITHUB_OUTPUT"
echo "REV=$GITHUB_SHA" >> "$GITHUB_OUTPUT"
echo "ACTOR=$GITHUB_ACTOR" >> "$GITHUB_OUTPUT"
echo "REF=$GITHUB_HEAD_REF" >> "$GITHUB_OUTPUT"
echo "RUNS=$GITHUB_RUN_NUMBER" >> "$GITHUB_OUTPUT"
echo "Live Preview URL: $URL"
echo "Rev: $GITHUB_SHA"
echo "Actor: $GITHUB_ACTOR"
echo "Ref: "$GITHUB_HEAD_REF"
echo "Reruns: "$GITHUB_RUN_NUMBER"
echo "### :rocket: Live Preview Deployed " >> "$GITHUB_STEP_SUMMARY"
echo "Preview can be found at ${URL}" >> "$GITHUB_STEP_SUMMARY"
- name: Find Comment
uses: peter-evans/find-comment@v3
id: fc
with:
comment-author: "github-actions[bot]"
issue-number: ${{ github.event.pull_request.number }}
body-includes: "Live preview deployed"
- name: Post live preview comment
uses: peter-evans/create-or-update-comment@v4
env:
COMMENT_ID: ${{ steps.fc.outputs.comment-id }}
URL: ${{ steps.prelude.outputs.URL }}
GITHUB_SHA: ${{ steps.prelude.outputs.REV }}
ACTOR: ${{ steps.prelude.outputs.ACTOR }}
REF: ${{ steps.prelude.outputs.REF }}
RUNS: ${{ steps.prelude.outputs.RUNS }}
with:
comment-id: ${{ env.COMMENT_ID }}
issue-number: ${{ github.event.pull_request.number }} # issue number also applies to pull requests
edit-mode: replace # replace previous body
body: |
### :rocket: Live preview deployed from ${{ env.GITHUB_SHA }}
View it [here](${{ env.URL }}):
<details>
<summary><strong>Debug Information</strong></summary>
<p>Triggered by: ${{ env.ACTOR }}</p>
<p><code>HEAD</code> at: ${{ env.REF }}</p>
<p>Reruns: ${{ env.RUNS }}</p>
</details>
cleanup:
if: ${{ github.event.pull_request.merged == true || github.event.pull_request.state == 'closed' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Delete preview for closed/merged PR
run: |
PR_NUMBER=${{ github.event.pull_request.number }}
BRANCH_NAME="gh-pages"
PREVIEW_DIR="docs-preview-${PR_NUMBER}"
# Clone the gh-pages branch
git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages
cd gh-pages
# Check if the preview directory exists, and delete it if it does
if [ -d "$PREVIEW_DIR" ]; then
echo "Deleting preview directory $PREVIEW_DIR"
rm -rf $PREVIEW_DIR
else
echo "Preview directory $PREVIEW_DIR does not exist. Skipping deletion."
fi
# Configure git to use the GitHub Actions token for authentication
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
# Set the GitHub token for authentication
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
# Add and commit the changes (only if there's something to delete)
git add .
git diff --quiet || git commit -m "Remove preview for PR #${PR_NUMBER}"
git push origin $BRANCH_NAME
cleanup-comment:
needs: cleanup
runs-on: ubuntu-latest
steps:
- name: Post cleanup verification
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
✅ Preview has been deleted successfully!

View file

@ -10,12 +10,18 @@ To use it, we first add the input flake.
```nix ```nix
{ {
inputs = { inputs = {
# Optional, if you intend to follow nvf's obsidian-nvim input
# you must also add it as a flake input.
obsidian-nvim.url = "github:epwalsh/obsidian.nvim"; obsidian-nvim.url = "github:epwalsh/obsidian.nvim";
# Required, nvf works best and only directly supports flakes
nvf = { nvf = {
url = "github:notashelf/nvf"; url = "github:notashelf/nvf";
# you can override input nixpkgs # You can override the input nixpkgs to follow your system's
# instance of nixpkgs. This is safe to do as nvf does not depend
# on a binary cache.
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
# you can also override individual plugins # Optionally, you can also override individual plugins
# for example: # for example:
inputs.obsidian-nvim.follows = "obsidian-nvim"; # <- this will use the obsidian-nvim from your inputs inputs.obsidian-nvim.follows = "obsidian-nvim"; # <- this will use the obsidian-nvim from your inputs
}; };
@ -27,8 +33,8 @@ Followed by importing the home-manager module somewhere in your configuration.
```nix ```nix
{ {
# assuming nvf is in your inputs and inputs is in the argset # Assuming "nvf" is in your inputs and inputs is in the argument set.
# see example below # See example installation below
imports = [ inputs.nvf.homeManagerModules.default ]; imports = [ inputs.nvf.homeManagerModules.default ];
} }
``` ```

View file

@ -10,12 +10,18 @@ To use it, we first add the input flake.
```nix ```nix
{ {
inputs = { inputs = {
# Optional, if you intend to follow nvf's obsidian-nvim input
# you must also add it as a flake input.
obsidian-nvim.url = "github:epwalsh/obsidian.nvim"; obsidian-nvim.url = "github:epwalsh/obsidian.nvim";
# Required, nvf works best and only directly supports flakes
nvf = { nvf = {
url = "github:notashelf/nvf"; url = "github:notashelf/nvf";
# you can override input nixpkgs # You can override the input nixpkgs to follow your system's
# instance of nixpkgs. This is safe to do as nvf does not depend
# on a binary cache.
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
# you can also override individual plugins # Optionally, you can also override individual plugins
# for example: # for example:
inputs.obsidian-nvim.follows = "obsidian-nvim"; # <- this will use the obsidian-nvim from your inputs inputs.obsidian-nvim.follows = "obsidian-nvim"; # <- this will use the obsidian-nvim from your inputs
}; };