Skip to content

Update translations #70

Update translations

Update translations #70

Workflow file for this run

name: Prerelease
on:
pull_request:
types:
- opened
- labeled
- synchronize
branches-ignore:
- docs/update-translations
- docs/sync-nextjs-documentation
permissions:
pull-requests: write
issues: write
jobs:
deploy:
if: |
github.event_name == 'pull_request' &&
contains(github.event.pull_request.labels.*.name, 'prerelease')
runs-on: ubuntu-latest
strategy:
matrix:
include:
- locale: en
secret_project_id: VERCEL_PROJECT_EN_ID
- locale: zh-hans
secret_project_id: VERCEL_PROJECT_ZH_HANS_ID
- locale: zh-hant
secret_project_id: VERCEL_PROJECT_ZH_HANT_ID
name: Deploy ${{ matrix.locale }}
steps:
# Calculate if this matrix job should run based on PR labels
#
# This job will deploy if:
# - The event is NOT a pull_request (e.g., workflow_dispatch)
# - OR the PR has the label 'prerelease'
# - OR the PR has the label 'prerelease:<locale>' matching the current matrix locale
- name: Calculate should_deploy
id: should_deploy
shell: bash
run: |
LABELS_JSON='${{ toJson(github.event.pull_request.labels.*.name) }}'
echo "LABELS_JSON: $LABELS_JSON"
SHOULD_DEPLOY=false
if [[ "${{ github.event_name }}" != "pull_request" ]]; then
SHOULD_DEPLOY=true
elif echo "$LABELS_JSON" | grep -E '"prerelease"' > /dev/null; then
SHOULD_DEPLOY=true
elif echo "$LABELS_JSON" | grep -E '"prerelease:'"${{ matrix.locale }}"'"' > /dev/null; then
SHOULD_DEPLOY=true
fi
echo "should_deploy=$SHOULD_DEPLOY" >> $GITHUB_OUTPUT
- name: Checkout code
if: steps.should_deploy.outputs.should_deploy == 'true'
uses: actions/checkout@v3
with:
fetch-depth: 1
ref: ${{ github.head_ref }}
- name: Log checked out commit
if: steps.should_deploy.outputs.should_deploy == 'true'
run: git log -1
- name: Setup Tools
if: steps.should_deploy.outputs.should_deploy == 'true'
uses: ./.github/actions/setup
- name: Deploy to Vercel (${{ matrix.locale }})
if: steps.should_deploy.outputs.should_deploy == 'true'
id: deploy
uses: ./.github/actions/vercel-deploy
with:
environment: preview
vercel_project_id: ${{ secrets[matrix.secret_project_id] }}
vercel_org_id: ${{ secrets.VERCEL_ORG_ID }}
vercel_token: ${{ secrets.VERCEL_TOKEN }}
- name: Set deploy outputs
if: steps.should_deploy.outputs.should_deploy == 'true'
id: set_outputs
run: |
echo "preview_url=${{ steps.deploy.outputs.prod_url }}" >> $GITHUB_OUTPUT
echo "inspect_url=${{ steps.deploy.outputs.inspect_url }}" >> $GITHUB_OUTPUT
echo "label=${{ matrix.locale }}" >> $GITHUB_OUTPUT
- name: Write deploy result to file
if: steps.should_deploy.outputs.should_deploy == 'true'
run: |
jq -n \
--arg label "${{ steps.set_outputs.outputs.label }}" \
--arg preview_url "${{ steps.set_outputs.outputs.preview_url }}" \
--arg inspect_url "${{ steps.set_outputs.outputs.inspect_url }}" \
'{label: $label, preview_url: $preview_url, inspect_url: $inspect_url}' > deploy-result.json
- name: Upload deploy result artifact
if: steps.should_deploy.outputs.should_deploy == 'true'
uses: actions/upload-artifact@v4
with:
name: deploy-result-${{ matrix.locale }}
path: deploy-result.json
comment-vercel-previews:
needs: deploy
name: Comment Vercel Previews
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Download all deploy result artifacts
uses: actions/download-artifact@v4
with:
pattern: deploy-result-*
path: deploy-results
- name: Combine deploy results
id: aggregate
run: |
jq -s '.' deploy-results/deploy-result-*/deploy-result.json > deploy-results.json
- name: Check if deploy results exist
id: check_results
run: |
if [ -f deploy-results.json ] && [ $(jq length deploy-results.json) -gt 0 ]; then
echo "has_results=true" >> $GITHUB_OUTPUT
else
echo "has_results=false" >> $GITHUB_OUTPUT
fi
- name: Comment PR with all Vercel Preview Links
if: |
success() && hashFiles('deploy-results.json') != '' && steps.check_results.outputs.has_results == 'true'
uses: ./.github/actions/comment-vercel-preview
with:
deploy_results_path: deploy-results.json