Skip to content

Merge pull request #12 from taichi-ishitani/patch-2 #149

Merge pull request #12 from taichi-ishitani/patch-2

Merge pull request #12 from taichi-ishitani/patch-2 #149

Workflow file for this run

name: Deploy
on:
push:
branches:
- main
tags:
- 'v*.*.*'
env:
# Update the language picker in index.hbs to link new languages.
LANGUAGES: ja
jobs:
book:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# We need the full history below.
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Setup mdBook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: 'latest'
- name: Install mdbook-i18n-helpers
run: |
cargo install mdbook-i18n-helpers
- name: Install static-sitemap-cli
run: npm install static-sitemap-cli
- name: Build mdbook plugin
run: cargo install --git https://github.com/veryl-lang/veryl mdbook-veryl
- name: Replace wasm path for nightly
if: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
run: |
sed -i 's/playground\/pkg\/veryl_wasm.js/nightly\/playground\/pkg\/veryl_wasm.js/g' book/theme/index.hbs
- name: Build mdbook
run: mdbook build
working-directory: book
- name: Build all translations
working-directory: book
run: |
for po_lang in ${{ env.LANGUAGES }}; do
POT_CREATION_DATE=$(grep --max-count 1 '^"POT-Creation-Date:' po/$po_lang.po | sed -E 's/".*: (.*)\\n"/\1/')
if [[ $POT_CREATION_DATE == "" ]]; then
POT_CREATION_DATE=now
fi
echo "::group::Building $po_lang translation as of $POT_CREATION_DATE"
rm -r src/
git restore --source "$(git rev-list -n 1 --before "$POT_CREATION_DATE" @)" src/
# Set language and adjust site URL. Clear the redirects
# since they are in sync with the source files, not the
# translation.
MDBOOK_BOOK__LANGUAGE=$po_lang \
MDBOOK_OUTPUT__HTML__SITE_URL=/veryl/book/$po_lang/ \
MDBOOK_OUTPUT__HTML__REDIRECT='{}' \
mdbook build -d book/$po_lang
echo "::endgroup::"
done
- name: Generate sitemap
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
working-directory: book/book
run: npx sscli --no-clean --base https://doc.veryl-lang.org/book
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: book
path: book/book/
playground:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
# 1.82.0 can't be used by reference type issue
# https://github.com/rustwasm/wasm-bindgen/issues/4211
toolchain: 1.81.0
- uses: Swatinem/rust-cache@v2
- uses: jetli/[email protected]
- name: Test
run: cargo test
working-directory: playground
- name: Wasm test
run: wasm-pack test --node
working-directory: playground
- name: Build wasm
run: wasm-pack build --target web -d html/pkg --no-typescript
working-directory: playground
- name: Remove .gitignore
run: rm html/pkg/.gitignore
working-directory: playground
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: playground
path: playground/html/
deploy:
if: startsWith(github.ref, 'refs/tags/v')
needs: [book, playground]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download book
uses: actions/download-artifact@v4
with:
name: book
path: public/book
- name: Download playground
uses: actions/download-artifact@v4
with:
name: playground
path: public/playground
- name: Copy robots.txt
run: cp robots.txt public/
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
cname: doc.veryl-lang.org
deploy-nightly:
if: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
needs: [book, playground]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download book
uses: actions/download-artifact@v4
with:
name: book
path: public/book
- name: Download playground
uses: actions/download-artifact@v4
with:
name: playground
path: public/playground
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
cname: doc.veryl-lang.org
destination_dir: nightly