summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-12 20:27:23 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-13 16:32:00 +0200
commitfd208941622cd559a0c3a196a0754a1b33db402b (patch)
treef82fce23f83ae5e700475a1fe164728fad1574c1
parent7bec1a7ab414f45fda516dd5b5e48bbe623a50f4 (diff)
ci(site): Add GitHub Actions workflow for deploying website
This change adds a new GitHub Actions workflow for building and deploying the OpenDC website (documentation) built using Docusaurus.
-rw-r--r--.github/workflows/build.yml73
-rw-r--r--.github/workflows/deploy.yml7
-rw-r--r--.github/workflows/pages.yml57
-rw-r--r--site/docusaurus.config.js24
4 files changed, 124 insertions, 37 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 64eba648..b73038cc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,9 +2,9 @@ name: Build
on:
pull_request:
- branches: [master]
+ branches: [ master ]
push:
- branches: [master]
+ branches: [ master ]
jobs:
build:
@@ -12,8 +12,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-latest]
- java: [11, 17, 18]
+ os: [ ubuntu-latest ]
+ java: [ 11, 17, 18 ]
include:
- os: windows-latest
java: 18
@@ -57,21 +57,50 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./build/reports/jacoco/codeCoverageReport/codeCoverageReport.xml
build-docker:
- name: Build Docker Images
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- - name: Build UI
- uses: docker/build-push-action@v3
- with:
- context: opendc-web/opendc-web-ui
- file: opendc-web/opendc-web-ui/Dockerfile
- - name: Build Web Server
- uses: docker/build-push-action@v3
- with:
- file: opendc-web/opendc-web-server/Dockerfile
- - name: Build Runner
- uses: docker/build-push-action@v3
- with:
- file: opendc-web/opendc-web-runner/Dockerfile
+ name: Build Docker Images
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Build UI
+ uses: docker/build-push-action@v3
+ with:
+ context: opendc-web/opendc-web-ui
+ file: opendc-web/opendc-web-ui/Dockerfile
+ - name: Build Web Server
+ uses: docker/build-push-action@v3
+ with:
+ file: opendc-web/opendc-web-server/Dockerfile
+ - name: Build Runner
+ uses: docker/build-push-action@v3
+ with:
+ file: opendc-web/opendc-web-runner/Dockerfile
+ build-docs:
+ defaults:
+ run:
+ working-directory: site
+ name: Build Docs
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: "16"
+ cache: 'npm'
+ cache-dependency-path: site/package-lock.json
+ - name: Setup Pages
+ id: pages
+ uses: actions/configure-pages@v1
+ - name: Install dependencies
+ run: npm ci
+ - name: Build with Docusaurus
+ run: npm run build
+ env:
+ DOCUSAURUS_URL: ${{ steps.pages.outputs.origin }}
+ DOCUSAURUS_BASE_PATH: ${{ steps.pages.outputs.base_path }}
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: ./site/build
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index fcf5a76e..70c35d37 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -1,12 +1,11 @@
-name: Deploy to opendc.org
+name: Deploy app.opendc.org
on:
push:
- branches:
- - prod
+ branches: ["prod"]
jobs:
- deploy:
+ deploy-app:
runs-on: ubuntu-latest
steps:
- name: Create SSH key
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 00000000..aa10c2eb
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,57 @@
+name: Deploy opendc.org
+
+on:
+ push:
+ branches: ["master"]
+ workflow_dispatch:
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: true
+
+jobs:
+ build:
+ defaults:
+ run:
+ working-directory: site
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: "16"
+ cache: 'npm'
+ cache-dependency-path: site/package-lock.json
+ - name: Setup Pages
+ id: pages
+ uses: actions/configure-pages@v1
+ - name: Install dependencies
+ run: npm ci
+ - name: Build with Docusaurus
+ run: npm run build
+ env:
+ DOCUSAURUS_URL: ${{ steps.pages.outputs.origin }}
+ DOCUSAURUS_BASE_PATH: ${{ steps.pages.outputs.base_path }}
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: ./site/build
+
+ deploy:
+ needs: build
+
+ permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v1
diff --git a/site/docusaurus.config.js b/site/docusaurus.config.js
index 2e72615f..0074093e 100644
--- a/site/docusaurus.config.js
+++ b/site/docusaurus.config.js
@@ -1,5 +1,7 @@
// @ts-check
-// Note: type annotations allow type checking and IDEs autocompletion
+
+const organizationName = "atlarge-research";
+const projectName = "opendc";
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
@@ -8,13 +10,13 @@ const darkCodeTheme = require("prism-react-renderer/themes/dracula");
const config = {
title: "OpenDC",
tagline: "Collaborative Datacenter Simulation and Exploration for Everybody",
- url: "https://opendc.org",
- baseUrl: "/",
+ url: process.env.DOCUSAURUS_URL || `https://${organizationName}.github.io`,
+ baseUrl: process.env.DOCUSAURUS_BASE_PATH || `/${projectName}/`,
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
favicon: "img/favicon.ico",
- organizationName: "atlarge-research",
- projectName: "opendc",
+ organizationName,
+ projectName,
i18n: {
defaultLocale: "en",
@@ -28,7 +30,7 @@ const config = {
({
docs: {
sidebarPath: require.resolve("./sidebars.js"),
- editUrl: "https://github.com/atlarge-research/opendc/tree/master/site/"
+ editUrl: `https://github.com/${organizationName}/${projectName}/tree/master/site/`
},
theme: {
customCss: require.resolve("./src/css/custom.css")
@@ -45,7 +47,7 @@ const config = {
id: "community",
path: "community",
routeBasePath: "community",
- editUrl: "https://github.com/atlarge-research/opendc/tree/master/site/",
+ editUrl: `https://github.com/${organizationName}/${projectName}/tree/master/site/`,
sidebarPath: require.resolve("./sidebars.js")
})
]
@@ -58,7 +60,7 @@ const config = {
title: "OpenDC",
logo: {
alt: "OpenDC logo",
- src: "img/logo.svg"
+ src: "/img/logo.svg"
},
items: [
{
@@ -81,7 +83,7 @@ const config = {
"aria-label": "OpenDC web application",
},
{
- href: "https://github.com/atlarge-research/opendc",
+ href: `https://github.com/${organizationName}/${projectName}`,
position: "right",
className: "header-github-link",
"aria-label": "GitHub repository",
@@ -121,7 +123,7 @@ const config = {
},
{
label: "GitHub Discussions",
- href: "https://github.com/atlarge-research/opendc/discussions"
+ href: `https://github.com/${organizationName}/${projectName}/discussions`
}
]
},
@@ -130,7 +132,7 @@ const config = {
items: [
{
label: "GitHub",
- href: "https://github.com/atlarge-research/opendc"
+ href: `https://github.com/${organizationName}/${projectName}`
}
]
}