Skip to content

deploy-site-preview #61

deploy-site-preview

deploy-site-preview #61

name: Deploy site preview
on:
repository_dispatch:
types: [deploy-site-preview]
workflow_dispatch: # for manual runs
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
jobs:
clone_and_export:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
env:
KOBWEB_CLI_VERSION: 0.9.18
steps:
- name: Clone kobweb-site dev branch
run: |
git clone --depth=1 --branch dev https://github.com/varabyte/kobweb-site.git
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
# Gradle spams extra junk the first time it is run, so run a harmless command
- name: Let Gradle get its noise out of its system
run: |
cd kobweb-site
./gradlew tasks
- name: Query Browser Cache ID
id: browser-cache-id
run: |
cd kobweb-site
echo "value=$(./gradlew -q :site:kobwebBrowserCacheId)" >> $GITHUB_OUTPUT
- name: Cache Browser Dependencies
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.browser-cache-id.outputs.value }}
- name: Fetch kobweb
uses: robinraju/release-downloader@v1.10
with:
repository: "varabyte/kobweb-cli"
tag: "v${{ env.KOBWEB_CLI_VERSION }}"
fileName: "kobweb-${{ env.KOBWEB_CLI_VERSION }}.zip"
tarBall: false
zipBall: false
- name: Unzip kobweb
run: unzip kobweb-${{ env.KOBWEB_CLI_VERSION }}.zip
- name: Run export
run: |
cd kobweb-site/site
../../kobweb-${{ env.KOBWEB_CLI_VERSION }}/bin/kobweb export --notty --layout static
- name: Create fallback file
run: |
cd kobweb-site/site/.kobweb/site
cp index.html 404.html
- name: Add robots.txt to disallow indexing
run: |
cd kobweb-site/site/.kobweb/site
echo '# Skip indexing as this is a preview site just for testing.' > robots.txt
echo '# https://kobweb.varabyte.com is the real site and THAT one will get indexed.' >> robots.txt
echo 'User-agent: *' >> robots.txt
echo 'Disallow: /' >> robots.txt
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: kobweb-site/site/.kobweb/site
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: clone_and_export
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4