Skip to content

Build and Deploy to Github Pages #1349

Build and Deploy to Github Pages

Build and Deploy to Github Pages #1349

Workflow file for this run

name: Build and Deploy to Github Pages
on:
push:
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
include_last_version:
description: Include the last released version
type: boolean
required: false
default: false
include_next_version:
description: Include the next unreleased version
type: boolean
required: false
default: true
# Note: the crawler should not be triggered by default, as the open source
# plan has limits how often the crawling can be triggered,
# so it should be reserved for official releases, which is triggered by the
# [tedge-docs](https://github.com/thin-edge/tedge-docs) repo
update_search_index:
description: Update the search index by triggering the Algolia crawler
type: boolean
required: false
default: false
# 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
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout tedge-docs
uses: actions/checkout@v4
with:
repository: thin-edge/tedge-docs
ref: main
path: tedge-docs
- name: Checkout thin-edge.io
uses: actions/checkout@v4
with:
repository: thin-edge/thin-edge.io
path: thin-edge.io
- uses: actions/setup-node@v4
with:
node-version: 18
cache: yarn
cache-dependency-path: tedge-docs/yarn.lock
- uses: taiki-e/install-action@just
- name: Setup project
working-directory: tedge-docs
run: just init
- name: Checkout last official version
if: ${{ inputs.include_last_version }}
working-directory: tedge-docs
run: just checkout-version
- name: Install dependencies
working-directory: tedge-docs
run: yarn install --frozen-lockfile
- name: Build website
working-directory: tedge-docs
env:
DOMAIN: ${{format('https://{0}.github.io', github.repository_owner)}}
BASE_URL: /thin-edge.io/
INCLUDE_CURRENT_VERSION: ${{inputs.include_next_version}}
run: yarn build
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'tedge-docs/build'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
#
# Update the Algolia search index by triggering
# the crawler for the newly deployed page
#
update_search_index:
name: Update Search Index
needs: [deploy]
if: ${{ inputs.update_search_index }}
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
# It can take a while before the gh_pages are live
# and there does not seem to be a nice way to detect this for now
- name: Sleep for 60s
run: sleep 60
- name: Algolia crawler creation and crawl
uses: algolia/[email protected]
id: algolia_crawler
with: # mandatory parameters
crawler-user-id: ${{ secrets.CRAWLER_USER_ID }}
crawler-api-key: ${{ secrets.CRAWLER_API_KEY }}
algolia-app-id: ${{ secrets.ALGOLIA_APP_ID }}
algolia-api-key: ${{ secrets.ALGOLIA_API_KEY }}
crawler-name: thin-edge-io
site-url: 'https://thin-edge.github.io/thin-edge.io/'