From a54088330841fecac248098d91825c5b16ef7fbf Mon Sep 17 00:00:00 2001 From: Benjamin Abel Date: Fri, 15 Dec 2023 18:57:58 +0100 Subject: [PATCH] Publish to gh-pages --- .github/workflows/publish-pages.yaml | 75 ++++++++++++++++++++++++++++ eleventy.config.js | 3 ++ package.json | 3 +- 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish-pages.yaml diff --git a/.github/workflows/publish-pages.yaml b/.github/workflows/publish-pages.yaml new file mode 100644 index 0000000..98f1493 --- /dev/null +++ b/.github/workflows/publish-pages.yaml @@ -0,0 +1,75 @@ +# Sample workflow for building and deploying a Gatsby site to GitHub Pages +name: Deploy Eleventy site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + 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 + +# Default to bash +defaults: + run: + shell: bash + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install node + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + run_install: | + - recursive: true + args: [--frozen-lockfile, --strict-peer-dependencies] + - args: [--global, gulp, prettier, typescript] + - name: Install dependencies + run: pnpm i + + - name: build site + run: pnpm build && pnpm postbuild + + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./_site + + # Deploy job + deploy: + # Add a dependency to the build job + needs: build + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + # Specify runner + deployment step + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v3 # or specific "vX.X.X" version tag for this action diff --git a/eleventy.config.js b/eleventy.config.js index 610e031..ff2c3e5 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -2,6 +2,9 @@ const md2HTML = require("./scripts/build/md2HTML.cjs").md2HTML; module.exports = function (eleventyConfig) { + // needed for gh-pages + pathPrefix: "/ed-lib/" + // Add emd as a valid extension to process eleventyConfig.addExtension(["emd"], { key: "html", diff --git a/package.json b/package.json index 6d2a00f..16898a2 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "prestart": "concurrently -n b: npm:build:*", "format": "prettier --write .", - "build:searchindex": "npx pagefind --site \"_site\"", + "build": "concurrently -n b: npm:build:*", + "postbuild": "npx pagefind --site \"_site\"", "build:cjs": "node scripts/buildCJSModules.mjs", "build:css": "postcss \"11ty/_assets/style.postcss\" --verbose --config postcss.config.cjs -o \"_site/style.css\"", "build:html": "npx @11ty/eleventy",