diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-09-12 20:27:23 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-09-13 16:32:00 +0200 |
| commit | fd208941622cd559a0c3a196a0754a1b33db402b (patch) | |
| tree | f82fce23f83ae5e700475a1fe164728fad1574c1 | |
| parent | 7bec1a7ab414f45fda516dd5b5e48bbe623a50f4 (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.yml | 73 | ||||
| -rw-r--r-- | .github/workflows/deploy.yml | 7 | ||||
| -rw-r--r-- | .github/workflows/pages.yml | 57 | ||||
| -rw-r--r-- | site/docusaurus.config.js | 24 |
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}` } ] } |
