Deploy to GitHub Pages #20
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 to GitHub Pages | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- '.github/CODEOWNERS' | |
- '.github/workflows/pr.yml' | |
- '.idea/**' | |
- '.vscode/**' | |
- '.gitattributes' | |
- '.gitignore' | |
- 'CONTRIBUTING.md' | |
- 'LICENSE' | |
- 'README.md' | |
workflow_dispatch: | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
concurrency: | |
group: "pages" | |
cancel-in-progress: true | |
jobs: | |
sync: | |
name: Deploy to GitHub Pages | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af | |
with: | |
node-version: 22 | |
- name: Enable Corepack | |
run: corepack enable | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af | |
with: | |
node-version: 22 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
with: | |
path: | | |
${{ github.workspace }}/.docusaurus | |
${{ github.workspace }}/**/.cache | |
key: | | |
${{ runner.os }}-docusaurus-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} | |
restore-keys: | | |
${{ runner.os }}-docusaurus-${{ hashFiles('**/yarn.lock') }} | |
- name: Sync Translations | |
run: yarn crowdin-sync | |
env: | |
CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }} | |
CROWDIN_ORGANIZATION: ${{ secrets.CROWDIN_ORGANIZATION }} | |
- name: Commit Changes | |
# See https://github.com/planetscale/ghcommit-action/releases | |
uses: planetscale/ghcommit-action@d4176bfacef926cc2db351eab20398dfc2f593b5 # v0.2.0 | |
with: | |
commit_message: "Sync translations with Crowdin" | |
repo: ${{ github.repository }} | |
branch: ${{ github.head_ref || github.ref_name }} | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
- name: Get locales | |
run: yarn output-locales | |
- name: Define matrix | |
id: locales | |
run: echo "locales=$(cat locales.json)" >> $GITHUB_ENV | |
build: | |
runs-on: ubuntu-latest | |
needs: sync | |
strategy: | |
matrix: | |
locales: ${{ fromJson(needs.sync.outputs.locales) }} | |
steps: | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af | |
with: | |
node-version: 22 | |
- name: Enable Corepack | |
run: corepack enable | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af | |
with: | |
node-version: 22 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 | |
with: | |
path: | | |
${{ github.workspace }}/.docusaurus | |
${{ github.workspace }}/**/.cache | |
key: | | |
${{ runner.os }}-docusaurus-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} | |
restore-keys: | | |
${{ runner.os }}-docusaurus-${{ hashFiles('**/yarn.lock') }} | |
- name: Build Locale | |
run: yarn build --locale ${{ matrix.locales }} | |
- name: Upload artifact | |
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 | |
with: | |
path: build | |
name: ${{ matrix.locales }} | |
combine: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
fetch-depth: 0 | |
- name: Setup Pages | |
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b | |
- name: Download artifacts | |
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 | |
with: | |
path: build | |
- name: Move default locale to root build | |
run: | | |
mv build/en/* build/ | |
rm -rf build/en | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa | |
with: | |
path: build | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e |