Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(other): add documentation deployment #6863

Merged
merged 11 commits into from
Jan 25, 2024
17 changes: 16 additions & 1 deletion .github/file-filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,20 @@ webapp: &webapp
- 'webapp/**/*'
- 'package.json'

markdown-files: &markdown-files
docs-check: &docs-check
- '.github/workflows/check-documentation.yml'

markdown: &markdown
- *docs-check
- '**/*.md'
- '.github/workflows/mlc_config.json'

vuepress: &vuepress
- *docs-check
- '.github/workflows/deploy-documentation.yml'
- '.vuepress/**/*'
- 'package.json'

documentation: &documentation
- *vuepress
- *markdown
52 changes: 36 additions & 16 deletions .github/workflows/check-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ jobs:
name: Detect File Changes - Markdown files
runs-on: ubuntu-latest
outputs:
markdown-files: ${{ steps.changes.outputs.markdown-files }}
markdown: ${{ steps.changes.outputs.markdown }}
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@master
Expand All @@ -22,21 +23,40 @@ jobs:

check-markdown-links:
name: Check Markdown links
if: needs.files-changed.outputs.markdown-files == 'true'
needs: files-changed
runs-on: ubuntu-latest
if: needs.files-changed.outputs.markdown == 'true'
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Remove old documentation files
run: rm -rf ./deployment/src/old/ ./CHANGELOG.md # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
- name: Check Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@master
with:
use-quiet-mode: 'yes'
use-verbose-mode: 'no'
# at any .md file change take the chance to check the links in all .md files
check-modified-files-only: 'no'
config-file: '.github/workflows/mlc_config.json'
base-branch: 'master'
folder-path: '.'
- name: Checkout code
uses: actions/checkout@master

- name: Check Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@master
with:
use-quiet-mode: 'yes'
use-verbose-mode: 'no'
# at any .md file change take the chance to check the links in all .md files
check-modified-files-only: 'no'
config-file: '.github/workflows/mlc_config.json'
base-branch: 'master'
folder-path: '.'

test-vuepress-build:
name: Test Vuepress build
needs: files-changed
runs-on: ubuntu-latest
if: needs.files-changed.outputs.documentation == 'true'
steps:
- name: Checkout code
uses: actions/checkout@master

- name: Setup Node 20
uses: actions/setup-node@v4
with:
node-version: '20'

- name: npm-install
run: npm install

- name: npm-docs:build
run: npm run docs:build
48 changes: 48 additions & 0 deletions .github/workflows/deploy-documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: ocelot.social deploy documentation

on:
push:
branches:
- master

jobs:
files-changed:
name: Detect File Changes - Markdown and Vuepress files
runs-on: ubuntu-latest
outputs:
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@master

- name: Check for file changes
uses: dorny/paths-filter@master
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell

build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master

- name: Setup Node 20
uses: actions/setup-node@v4
with:
node-version: 20

- name: Build Vuepress Pages
run: npm install && npm run build

- name: Deploy Vuepress to Github Pages
uses: crazy-max/ghaction-github-pages@v4
with:
target_branch: gh-pages
build_dir: .vuepress/dist
author: Wolfgang Huß <vorstand@busfaktor.org>
fqdn: docs.ocelot.social
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading