diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3ff9018372c9..85735a39781d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,21 +4,52 @@ on: push: branches: - stable + workflow_dispatch: + inputs: + ref: + description: 'Ref to deploy, defaults to `unstable`' + required: false + default: 'unstable' + type: string jobs: docs: runs-on: buildjet-4vcpu-ubuntu-2204 + env: + DEPLOY_REF: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ref || 'stable' }} steps: - # - Uses YAML anchors in the future + # Validation step for workflow_dispatch ref input + - name: Validate Ref + if: github.event_name == 'workflow_dispatch' + run: | + if git rev-parse "${{ env.DEPLOY_REF }}" >/dev/null 2>&1; then + echo "Ref ${{ env.DEPLOY_REF }} is valid." + else + echo "Error: Ref ${{ env.DEPLOY_REF }} is not a valid branch, tag or commit." >&2 + exit 1 + fi + + # Log out the ref being deployed + - name: Log Deployment Ref + if: github.event_name == 'workflow_dispatch' + run: | + echo "Deploying ref: $DEPLOY_REF" + + # Checkout the correct ref being deployed - uses: actions/checkout@v3 + with: + ref: ${{ env.DEPLOY_REF }} + - uses: actions/setup-node@v3 with: node-version: 20 check-latest: true cache: yarn + - name: Node.js version id: node run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT + - name: Restore dependencies uses: actions/cache@master id: cache-deps @@ -27,13 +58,14 @@ jobs: node_modules packages/*/node_modules key: ${{ runner.os }}-${{ steps.node.outputs.v8CppApiVersion }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} + - name: Install & build if: steps.cache-deps.outputs.cache-hit != 'true' run: yarn install --frozen-lockfile && yarn build + - name: Build run: yarn build if: steps.cache-deps.outputs.cache-hit == 'true' - # - name: Build and collect docs run: yarn build:docs