Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .github/workflows/check.build.docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Check Build Documentation Site

on:
pull_request:

paths:
- "docs/website-src/**"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we just have docs/ be the root? there is almost nothing in there and the stuff in docs/assets/ will be useful for the site anyway

Suggested change
- "docs/website-src/**"
- "docs/**"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably could - I was following the deployment system for the original docs page, and trying to fit the logic into our filesystem. But, I must admit, I have followed the workflow by rote, rather than considering if we need every step.

In the deployment workflow we have these steps:

      - name: Copy built files to docs
        run: |
          rm -rf docs/website/*
          cp -r docs/website-src/out docs/website

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: docs/website

If we move to using docs rather than docs/website as the root, then perhaps we could get rid of the copy step, and upload directly from the docs/website/out (or, as it would be, docs/out) path?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, that makes sense to me


workflow_dispatch:

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

#- name: LikeC4 code generation
# uses: likec4/actions@v1
# with:
# codegen: react
# path: website/likec4_src
# output: website/likec4_react/likec4.generated.js

#- name: LikeC4 PNG export
# uses: likec4/actions@v1
# with:
# export: png
# path: website/likec4_src
# output: website/public/images/likec4

- name: Detect package manager
id: detect-package-manager
run: |
if [ -f "docs/website-src/yarn.lock" ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "command=install" >> $GITHUB_OUTPUT
echo "runner=yarn" >> $GITHUB_OUTPUT
exit 0
elif [ -f "docs/website-src/package.json" ]; then
echo "manager=npm" >> $GITHUB_OUTPUT
echo "command=ci" >> $GITHUB_OUTPUT
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
exit 0
else
echo "Unable to determine package manager"
exit 1
fi

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

- name: Restore cache
uses: actions/cache@v4
with:
path: |
docs/website-src/.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-

- name: Install dependencies
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
working-directory: docs/website-src

- name: Build with Next.js
run: ${{ steps.detect-package-manager.outputs.runner }} next build
working-directory: docs/website-src

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/website-src/out
104 changes: 104 additions & 0 deletions .github/workflows/deploy.docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Deploy Documentation Site to GitHub Pages

on:
push:
branches:
- documentation

paths:
- "docs/website-src/**"

workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

#- name: LikeC4 code generation
# uses: likec4/actions@v1
# with:
# codegen: react
# path: website/likec4_src
# output: website/likec4_react/likec4.generated.js

#- name: LikeC4 PNG export
# uses: likec4/actions@v1
# with:
# export: png
# path: website/likec4_src
# output: website/public/images/likec4

- name: Detect package manager
id: detect-package-manager
run: |
if [ -f "docs/website-src/yarn.lock" ]; then
echo "manager=yarn" >> $GITHUB_OUTPUT
echo "command=install" >> $GITHUB_OUTPUT
echo "runner=yarn" >> $GITHUB_OUTPUT
exit 0
elif [ -f "docs/website-src/package.json" ]; then
echo "manager=npm" >> $GITHUB_OUTPUT
echo "command=ci" >> $GITHUB_OUTPUT
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
exit 0
else
echo "Unable to determine package manager"
exit 1
fi

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

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Restore cache
uses: actions/cache@v4
with:
path: |
.next/cache
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-

- name: Install dependencies
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
working-directory: website

- name: Build with Next.js
run: ${{ steps.detect-package-manager.outputs.runner }} next build
working-directory: website

- name: Copy built files to docs
run: |
rm -rf docs/website/*
cp -r docs/website-src/out docs/website

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/website
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
5 changes: 5 additions & 0 deletions .github/workflows/test_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ name: Integration Tests
on:
pull_request:
branches: [ develop ]
paths:
- "app/**"
- "tests/**"

workflow_dispatch:

jobs:
test:
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ name: Unit Tests
on:
pull_request:
branches: [ develop ]
paths:
- "app/**"
- "tests/**"

workflow_dispatch:

jobs:
test:
Expand Down
20 changes: 20 additions & 0 deletions docs/website-src/next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/** @type {import('next').NextConfig} */
import nextra from "nextra";

const nextConfig = {
reactStrictMode: true,
images: {
unoptimized: true,
},
distDir: "out",
output: "export",
basePath: "",
assetPrefix: "",
};

const withNextra = nextra({
theme: "nextra-theme-docs",
themeConfig: "./theme.config.tsx",
});

export default withNextra(nextConfig);
Loading
Loading