Update playground #136
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: actions-rs/toolchain@v1 | |
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: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- 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 |