From 719882acc6d053267da60749aa2977e41fdafa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonah=20Br=C3=BCchert?= Date: Sun, 17 Mar 2024 18:59:26 +0100 Subject: [PATCH] Deploy website to GitHub Pages --- .github/workflows/data-pipeline.yml | 37 ------------ .github/workflows/mkdocs-deploy.yml | 54 ----------------- .github/workflows/website.yml | 92 +++++++++++++++++++++++++++++ website/package.json | 2 +- 4 files changed, 93 insertions(+), 92 deletions(-) delete mode 100644 .github/workflows/mkdocs-deploy.yml create mode 100644 .github/workflows/website.yml diff --git a/.github/workflows/data-pipeline.yml b/.github/workflows/data-pipeline.yml index df705182..eac0aacd 100644 --- a/.github/workflows/data-pipeline.yml +++ b/.github/workflows/data-pipeline.yml @@ -76,40 +76,3 @@ jobs: -e 'ssh -i ./deploy_key -p 22 -o StrictHostKeyChecking=no' \ out/ rsync@vm-motis.spline.de: rm deploy_key - - deploy_updated_mkdocs_site: - runs-on: ubuntu-latest - needs: import - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - - name: Restore cached licenses.md - uses: actions/cache/restore@v4 - with: - path: | - mkdocs-site/docs/licenses.md - key: licenses- - restore-keys: | - licenses- - - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - - run: pip install mkdocs - - run: mkdocs gh-deploy -f mkdocs-site/mkdocs.yml --force \ No newline at end of file diff --git a/.github/workflows/mkdocs-deploy.yml b/.github/workflows/mkdocs-deploy.yml deleted file mode 100644 index fc5d603c..00000000 --- a/.github/workflows/mkdocs-deploy.yml +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Lars Röglin -# SPDX-License-Identifier: CC0-1.0 - -name: Deploy mkdocs-site to GH-Pages - -on: - push: - branches: - - main -# Run only if mkdocs-site folder is touched -# Other update is not necessary as the site is also -# updated in the data-pipeline.yml workflow - paths: - - mkdocs-site - workflow_dispatch: - -permissions: - contents: write -jobs: - deploy_mkdocs_site: - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - - - name: Restore cached licenses.md - uses: actions/cache/restore@v4 - with: - path: | - mkdocs-site/docs/licenses.md - key: licenses- - restore-keys: | - licenses- - - - uses: actions/cache@v4 - with: - key: mkdocs-material-${{ env.cache_id }} - path: .cache - restore-keys: | - mkdocs-material- - - - run: pip install mkdocs - - run: mkdocs gh-deploy -f mkdocs-site/mkdocs.yml --force diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml new file mode 100644 index 00000000..27bae12d --- /dev/null +++ b/.github/workflows/website.yml @@ -0,0 +1,92 @@ +# SPDX-FileCopyrightText: 2024 Jonah Brüchert +# SPDX-License-Identifier: CC0-1.0 + +name: Deploy Hugo site to Pages + +on: + push: + branches: + - main + + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.124.0 + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + + - name: Install Node.js dependencies + run: cd website && npm install + + - uses: actions/setup-python@v5 + with: + python-version: 3.x + + - name: Restore cached licenses.md + uses: actions/cache/restore@v4 + with: + path: | + mkdocs-site/docs/licenses.md + key: licenses- + restore-keys: | + licenses- + + - run: pip install mkdocs + - run: mkdocs build --site-dir ../website/static/doc/ -f mkdocs-site/mkdocs.yml + + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + cd website && npm run release + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./website/public + + 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 + diff --git a/website/package.json b/website/package.json index 1379c0ef..d4ecc751 100644 --- a/website/package.json +++ b/website/package.json @@ -8,7 +8,7 @@ "scripts": { "start": "spago build && esbuild ./output/Main/index.js --bundle --outfile=static/index.js --global-name=Main && hugo server", "release-start": "spago -x release.dhall build && esbuild ./output-es/Main/index.js --bundle --minify --outfile=static/index.js --global-name=Main && hugo --minify server", - "release": "spago -x release.dhall build && esbuild ./output-es/Main/index.js --bundle --minify --outfile=static/index.js --global-name=Main && hugo --minify" + "release": "spago -x release.dhall build && esbuild ./output-es/Main/index.js --bundle --minify --outfile=static/index.js --global-name=Main && hugo --minify --baseURL https://transitous.org/" }, "dependencies": { "esbuild": "^0.20.1",