docs: mark CLIENT PAUSE/UNPAUSE as available for C# and PHP #651
Workflow file for this run
This file contains hidden or 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: CI/CD | |
| on: | |
| pull_request: | |
| branches: [main, public] | |
| workflow_dispatch: | |
| workflow_call: | |
| permissions: | |
| contents: read | |
| jobs: | |
| get-release-tag: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| tag: ${{ steps.get-latest-tag.outputs.tag }} | |
| steps: | |
| - name: Get Latest Valkey GLIDE Release Tag | |
| id: get-latest-tag | |
| run: | | |
| # Fetch all tags from the repository | |
| git clone --filter=blob:none --no-checkout https://github.com/valkey-io/valkey-glide.git temp-repo | |
| cd temp-repo | |
| git fetch --tags | |
| # Get the latest release tag that starts with v2.x.x, excluding -rc or other suffixes. | |
| LATEST_TAG=$(git tag -l "v2.*.*" | grep -v -E '(rc|alpha|beta)' | sort -V | tail -n1) | |
| echo "Latest release tag: $LATEST_TAG" | |
| echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT | |
| # --- Parallel Documentation Build Jobs --- | |
| build-node-docs: | |
| needs: get-release-tag | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Valkey Glide Docs | |
| uses: actions/checkout@v4 | |
| - name: Checkout Valkey Glide Source | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: valkey-io/valkey-glide | |
| path: doc-gen/valkey-glide | |
| ref: ${{ needs.get-release-tag.outputs.tag }} | |
| - name: Install Dependencies | |
| run: ./doc-gen/install-deps.sh | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| # TODO: Remove once {@link URL|text} is fixed upstream in valkey-glide | |
| - name: Fix external links in source | |
| run: ./doc-gen/fix-external-links.sh | |
| - name: Generate Node Docs | |
| run: ./doc-gen/build-node-docs.sh | |
| - name: Upload Node Docs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: node-docs | |
| path: doc-gen/docs/node | |
| retention-days: 1 | |
| build-java-docs: | |
| needs: get-release-tag | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Main Repository | |
| uses: actions/checkout@v4 | |
| - name: Checkout Valkey Glide Source | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: valkey-io/valkey-glide | |
| path: doc-gen/valkey-glide | |
| ref: ${{ needs.get-release-tag.outputs.tag }} | |
| - name: Install Dependencies | |
| run: ./doc-gen/install-deps.sh | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Generate Java Docs | |
| run: ./doc-gen/build-java-docs.sh | |
| - name: Upload Java Docs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: java-docs | |
| path: doc-gen/docs/java | |
| retention-days: 1 | |
| build-python-docs: | |
| needs: get-release-tag | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Main Repository | |
| uses: actions/checkout@v4 | |
| - name: Checkout Valkey Glide Source | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: valkey-io/valkey-glide | |
| path: doc-gen/valkey-glide | |
| ref: ${{ needs.get-release-tag.outputs.tag }} | |
| - name: Install Dependencies | |
| run: ./doc-gen/install-deps.sh | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Generate Python Docs | |
| run: ./doc-gen/build-python-docs.sh | |
| - name: Upload Python Docs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-docs | |
| path: doc-gen/docs/python | |
| retention-days: 1 | |
| # --- Main Site Build --- | |
| build-site: | |
| needs: [build-node-docs, build-java-docs, build-python-docs] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Download Node Docs | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: node-docs | |
| path: public/languages/nodejs/api | |
| - name: Download Java Docs | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: java-docs | |
| path: public/languages/java/api | |
| - name: Download Python Docs | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-docs | |
| path: public/languages/python/api | |
| # Build the Astro Site | |
| - name: Build and upload site | |
| uses: withastro/action@v4 | |
| with: | |
| package-manager: pnpm@10 | |
| - name: Upload dist | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| retention-days: 1 | |
| - name: Check external links (attempt 1/2) | |
| id: lychee-attempt-1 | |
| uses: lycheeverse/lychee-action@v2.8.0 | |
| continue-on-error: true | |
| with: | |
| args: "--config ${{ github.workspace }}/lychee.toml ${{ github.workspace }}/dist --root-dir ${{ github.workspace }}/dist" | |
| debug: true | |
| - name: Wait before link check retry | |
| if: steps.lychee-attempt-1.outcome == 'failure' | |
| run: | | |
| echo "First lychee attempt failed (likely a transient network/TLS error against an external site)." | |
| echo "Waiting 30s before retry to let the upstream issue clear." | |
| sleep 30 | |
| - name: Check external links (attempt 2/2) | |
| if: steps.lychee-attempt-1.outcome == 'failure' | |
| uses: lycheeverse/lychee-action@v2.8.0 | |
| with: | |
| args: "--config ${{ github.workspace }}/lychee.toml ${{ github.workspace }}/dist --root-dir ${{ github.workspace }}/dist" | |
| debug: true |