name: 'Push docs to Crowdin' permissions: contents: write on: workflow_dispatch: workflow_call: push: branches: ['main', 'docs-localized-navigation'] paths: - 'packages/twenty-docs/**/*.mdx' - '!packages/twenty-docs/fr/**' - 'crowdin.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: push_docs: name: Push documentation to Crowdin runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: token: ${{ github.token }} ref: ${{ github.ref }} - name: Setup Node.js uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'yarn' cache-dependency-path: 'yarn.lock' - name: Install dependencies run: yarn install --frozen-lockfile - name: Generate navigation template for Crowdin run: yarn docs:generate-navigation-template - name: Setup Node.js uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'yarn' cache-dependency-path: 'yarn.lock' - name: Install dependencies run: yarn install --frozen-lockfile - name: Generate navigation template for Crowdin run: yarn docs:generate-navigation-template - name: Upload docs to Crowdin uses: crowdin/github-action@v2 with: upload_sources: true upload_translations: false download_translations: false localization_branch_name: i18n base_url: 'https://twenty.api.crowdin.com' env: CROWDIN_PROJECT_ID: 1 CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}