Skip to content

docs: mark CLIENT PAUSE/UNPAUSE as available for C# and PHP #651

docs: mark CLIENT PAUSE/UNPAUSE as available for C# and PHP

docs: mark CLIENT PAUSE/UNPAUSE as available for C# and PHP #651

Workflow file for this run

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