From 70c24978124a21e89aab659fb7315775073d6812 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 15:11:38 +0200 Subject: [PATCH 1/8] Include Storybook release with semantic-release. --- .github/workflows/release.yml | 60 ++++++++++++++++++++++++++++- scripts/build_release_site.js | 71 +++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 scripts/build_release_site.js diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d9197e0eef0..7fc52b34a2b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,13 +3,30 @@ name: Publish a Release on: - workflow_dispatch + workflow_dispatch: + inputs: + dry_run: + description: Run semantic-release in dry-run mode + required: true + default: false + type: boolean + publish_pages: + description: Publish the assembled docs and Storybook site + required: true + default: true + type: boolean + pages_target_branch: + description: Branch to publish the assembled site to + required: true + default: gh-pages + type: string permissions: contents: read # for checkout env: ECH_NODE_VERSION: '22.22.0' + RELEASE_SITE_DIR: .release-site jobs: checks: @@ -84,15 +101,54 @@ jobs: uses: bahmutov/npm-install@v1.10.9 with: useRollingCache: true + - name: Install docs node_modules + uses: bahmutov/npm-install@v1.10.9 + with: + working-directory: docs + useRollingCache: true + + - name: Validate Pages publish parameters + if: ${{ inputs.dry_run && inputs.publish_pages && inputs.pages_target_branch == 'gh-pages' }} + run: | + echo "Dry-run releases may only publish to a non-production Pages branch." >&2 + exit 1 - name: Build library run: yarn build + - name: Build release site + run: node scripts/build_release_site.js + + - name: Upload release site artifact + uses: actions/upload-artifact@v4 + with: + name: release-site + path: ${{ env.RELEASE_SITE_DIR }} + retention-days: 5 + - name: Upgrade npm for trusted publishing (OIDC) support + if: ${{ !inputs.dry_run }} run: npm install -g npm@11.5.1 - name: Release env: GITHUB_TOKEN: ${{ secrets.ADMIN_TOKEN_GH }} SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - run: yarn semantic-release + run: | + if [ "${{ inputs.dry_run }}" = "true" ]; then + yarn semantic-release --dry-run + else + yarn semantic-release + fi + + - name: Publish GitHub Pages branch + if: ${{ inputs.publish_pages }} + uses: peaceiris/actions-gh-pages@v4 + with: + personal_token: ${{ secrets.ADMIN_TOKEN_GH }} + publish_branch: ${{ inputs.pages_target_branch }} + publish_dir: ${{ env.RELEASE_SITE_DIR }} + force_orphan: true + user_name: elastic-datavis[bot] + user_email: 98618603+elastic-datavis[bot]@users.noreply.github.com + full_commit_message: Deploy release site for ${{ github.sha }} diff --git a/scripts/build_release_site.js b/scripts/build_release_site.js new file mode 100644 index 00000000000..163a88c403e --- /dev/null +++ b/scripts/build_release_site.js @@ -0,0 +1,71 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +const { spawnSync } = require('node:child_process'); +const fs = require('node:fs'); +const path = require('node:path'); + +const repoRoot = path.resolve(__dirname, '..'); +const docsDir = path.join(repoRoot, 'docs'); +const storybookDir = path.join(repoRoot, 'storybook'); +const docsOutDir = path.join(docsDir, 'build'); +const storybookOutDir = path.join(repoRoot, '.out'); +const siteOutDir = path.join(repoRoot, '.release-site'); +const productionNodeOptions = [process.env.NODE_OPTIONS, '--openssl-legacy-provider'].filter(Boolean).join(' '); + +function run(command, args, options = {}) { + const cwd = options.cwd ?? repoRoot; + const result = spawnSync(command, args, { + cwd, + env: { ...process.env, ...options.env }, + shell: process.platform === 'win32', + stdio: 'inherit', + }); + + if (result.status !== 0) { + throw new Error(`Command failed: ${command} ${args.join(' ')}`); + } +} + +function ensureFileExists(filePath) { + if (!fs.existsSync(filePath)) { + throw new Error(`Expected build output at ${path.relative(repoRoot, filePath)}`); + } +} + +console.log('Building release-ready docs'); +run('yarn', ['typedoc']); +run('yarn', ['build'], { + cwd: docsDir, + env: { + DOCUSAURUS_URL: 'https://elastic.github.io', + DOCUSAURUS_BASE_URL: '/elastic-charts', + NODE_ENV: 'production', + NODE_OPTIONS: productionNodeOptions, + }, +}); + +console.log('Building release-ready Storybook'); +run('yarn', ['build'], { + cwd: storybookDir, + env: { + NODE_ENV: 'production', + NODE_OPTIONS: productionNodeOptions, + }, +}); + +console.log('Assembling release site'); +fs.rmSync(siteOutDir, { force: true, recursive: true }); +fs.cpSync(docsOutDir, siteOutDir, { recursive: true }); +fs.cpSync(storybookOutDir, path.join(siteOutDir, 'storybook'), { recursive: true }); +fs.writeFileSync(path.join(siteOutDir, '.nojekyll'), ''); + +ensureFileExists(path.join(siteOutDir, 'index.html')); +ensureFileExists(path.join(siteOutDir, 'storybook', 'index.html')); + +console.log(`Release site assembled at ${path.relative(repoRoot, siteOutDir)}`); From 62c4445d851d987f27e307c0851a596f178c2536 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 16:46:42 +0200 Subject: [PATCH 2/8] Refactor buildkite's `main` based site release and reuse it in Github release workflow to release docs and Storybook github.io site. --- .buildkite/package.json | 1 + .buildkite/scripts/build_release_site.ts | 38 ++++++++ .buildkite/scripts/steps/docs.ts | 45 +++------ .buildkite/scripts/steps/storybook.ts | 13 +-- .buildkite/steps/ghp_deploy.ts | 10 +- .buildkite/utils/index.ts | 1 + .buildkite/utils/site.ts | 114 +++++++++++++++++++++++ .github/workflows/release.yml | 13 ++- scripts/build_release_site.js | 71 -------------- 9 files changed, 184 insertions(+), 122 deletions(-) create mode 100644 .buildkite/scripts/build_release_site.ts create mode 100644 .buildkite/utils/site.ts delete mode 100644 scripts/build_release_site.js diff --git a/.buildkite/package.json b/.buildkite/package.json index b304ea9bef1..8b31778e910 100644 --- a/.buildkite/package.json +++ b/.buildkite/package.json @@ -4,6 +4,7 @@ "private": true, "scripts": { "build:bk:types": "ts-node scripts/get_buildkite_types.ts", + "build:release-site": "ts-node scripts/build_release_site.ts", "postinstall": "yarn build:bk:types", "build:pipeline": "ts-node pipelines/pull_request/pipeline.ts", "print:pipeline": "yarn -s build:bk:types && TEST_BK_PIPELINE=true ts-node -r dotenv/config pipelines/pull_request/pipeline.ts", diff --git a/.buildkite/scripts/build_release_site.ts b/.buildkite/scripts/build_release_site.ts new file mode 100644 index 00000000000..547642b5075 --- /dev/null +++ b/.buildkite/scripts/build_release_site.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import path from 'path'; + +import { assembleSite, buildDocsSite, buildStorybookSite, buildTypeDocs } from '../utils/site'; + +const releaseSiteDir = path.resolve(__dirname, '../../.release-site'); + +/** + * Builds the release-ready static site consumed by the GitHub release workflow. + * The assembled output matches the published GitHub Pages layout with docs at + * the root and Storybook under `/storybook`. + */ +console.log('Building release-ready docs'); +buildTypeDocs(); +buildDocsSite({ + docsUrl: 'https://elastic.github.io', + baseUrl: '/elastic-charts', + nodeEnv: 'production', +}); + +console.log('Building release-ready Storybook'); +buildStorybookSite({ + nodeEnv: 'production', +}); + +console.log('Assembling release site'); +assembleSite({ + outDir: releaseSiteDir, +}); + +console.log(`Release site assembled at ${path.relative(path.resolve(__dirname, '../..'), releaseSiteDir)}`); diff --git a/.buildkite/scripts/steps/docs.ts b/.buildkite/scripts/steps/docs.ts index 888f11ccffb..bba72953dd4 100644 --- a/.buildkite/scripts/steps/docs.ts +++ b/.buildkite/scripts/steps/docs.ts @@ -6,7 +6,16 @@ * Side Public License, v 1. */ -import { bkEnv, compress, exec, getOrCreateDeploymentUrl, startGroup, yarnInstall } from '../../utils'; +import { + bkEnv, + buildDocsSite, + buildTypeDocs, + compress, + docsOutDir, + getOrCreateDeploymentUrl, + startGroup, + yarnInstall, +} from '../../utils'; import { createDeploymentStatus, createOrUpdateDeploymentComment } from '../../utils/deployment'; void (async () => { @@ -23,38 +32,14 @@ void (async () => { startGroup('Building docs - firebase'); const firebaseChannelUrl = await getOrCreateDeploymentUrl(); - await exec('yarn typedoc'); - await exec('yarn build', { - cwd: 'docs', - env: { - DOCUSAURUS_URL: firebaseChannelUrl, - NODE_ENV: bkEnv.isMainBranch ? 'production' : 'development', - NODE_OPTIONS: '--openssl-legacy-provider', - }, + buildTypeDocs(); + buildDocsSite({ + docsUrl: firebaseChannelUrl, + nodeEnv: bkEnv.isMainBranch ? 'production' : 'development', }); - const outDir = `docs/build`; - await compress({ - src: outDir, + src: docsOutDir, dest: '.buildkite/artifacts/docs/firebase.gz', }); - - if (bkEnv.isMainBranch) { - startGroup('Building docs - github pages'); - await exec('yarn build', { - cwd: 'docs', - env: { - DOCUSAURUS_URL: 'https://elastic.github.io', - DOCUSAURUS_BASE_URL: '/elastic-charts', - NODE_ENV: 'production', - NODE_OPTIONS: '--openssl-legacy-provider', - }, - }); - - await compress({ - src: outDir, - dest: '.buildkite/artifacts/docs/github.gz', - }); - } })(); diff --git a/.buildkite/scripts/steps/storybook.ts b/.buildkite/scripts/steps/storybook.ts index 86350b9fb2d..ce2e30a7a52 100644 --- a/.buildkite/scripts/steps/storybook.ts +++ b/.buildkite/scripts/steps/storybook.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { bkEnv, compress, exec, startGroup, yarnInstall } from '../../utils'; +import { bkEnv, buildStorybookSite, compress, startGroup, storybookOutDir, yarnInstall } from '../../utils'; import { createDeploymentStatus, createOrUpdateDeploymentComment } from '../../utils/deployment'; void (async () => { @@ -21,17 +21,12 @@ void (async () => { } startGroup('Building storybook'); - await exec('yarn build', { - cwd: 'storybook', - env: { - NODE_ENV: bkEnv.isMainBranch ? 'production' : 'development', - NODE_OPTIONS: '--openssl-legacy-provider', - }, + buildStorybookSite({ + nodeEnv: bkEnv.isMainBranch ? 'production' : 'development', }); - const outDir = `.out`; await compress({ - src: outDir, + src: storybookOutDir, dest: '.buildkite/artifacts/storybook.gz', }); })(); diff --git a/.buildkite/steps/ghp_deploy.ts b/.buildkite/steps/ghp_deploy.ts index 86a228bcbfd..e8b20e5fce8 100644 --- a/.buildkite/steps/ghp_deploy.ts +++ b/.buildkite/steps/ghp_deploy.ts @@ -7,22 +7,16 @@ */ import type { CustomCommandStep } from '../utils'; -import { createStep, commandStepDefaults, bkEnv } from '../utils'; +import { createStep, commandStepDefaults } from '../utils'; export const ghpDeployStep = createStep(() => { - const isMainBranch = bkEnv.isMainBranch; - return { ...commandStepDefaults, label: ':github: Deploy - GitHub Pages', key: 'deploy_ghp', ignoreForced: true, - skip: isMainBranch ? false : 'Not target branch', + skip: 'Public GitHub Pages publishing is handled by the release workflow', depends_on: ['build_docs', 'build_storybook'], commands: ['npx ts-node .buildkite/scripts/steps/ghp_deploy.ts'], - env: { - // ignore check run reporting when not main - ECH_CHECK_ID: isMainBranch ? 'deploy_ghp' : undefined, - }, }; }); diff --git a/.buildkite/utils/index.ts b/.buildkite/utils/index.ts index 6776787a061..9b19388ae0f 100644 --- a/.buildkite/utils/index.ts +++ b/.buildkite/utils/index.ts @@ -12,3 +12,4 @@ export * from './exec'; export * from './pipeline'; export * from './firebase'; export * from './common'; +export * from './site'; diff --git a/.buildkite/utils/site.ts b/.buildkite/utils/site.ts new file mode 100644 index 00000000000..ba6d914acca --- /dev/null +++ b/.buildkite/utils/site.ts @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { spawnSync } from 'child_process'; +import fs from 'fs'; +import path from 'path'; + +const repoRoot = path.resolve(__dirname, '../..'); +const docsDir = path.join(repoRoot, 'docs'); +const storybookDir = path.join(repoRoot, 'storybook'); + +export const docsOutDir = path.join(docsDir, 'build'); +export const storybookOutDir = path.join(repoRoot, '.out'); + +interface CommandOptions { + cwd?: string; + env?: NodeJS.ProcessEnv; +} + +interface DocsBuildOptions { + docsUrl: string; + nodeEnv: 'production' | 'development'; + baseUrl?: string; +} + +interface StorybookBuildOptions { + nodeEnv: 'production' | 'development'; +} + +interface AssembleSiteOptions { + outDir: string; + docsSourceDir?: string; + storybookSourceDir?: string; +} + +/** + * Generates the TypeDoc content consumed by the Docusaurus docs build. + */ +export function buildTypeDocs() { + run('yarn', ['typedoc']); +} + +/** + * Builds the Docusaurus site for a specific public base URL. + */ +export function buildDocsSite({ docsUrl, nodeEnv, baseUrl }: DocsBuildOptions) { + run('yarn', ['build'], { + cwd: docsDir, + env: { + DOCUSAURUS_URL: docsUrl, + ...(baseUrl ? { DOCUSAURUS_BASE_URL: baseUrl } : {}), + NODE_ENV: nodeEnv, + NODE_OPTIONS: toNodeOptions(), + }, + }); +} + +/** + * Builds the static Storybook bundle used by preview and release publishing flows. + */ +export function buildStorybookSite({ nodeEnv }: StorybookBuildOptions) { + run('yarn', ['build'], { + cwd: storybookDir, + env: { + NODE_ENV: nodeEnv, + NODE_OPTIONS: toNodeOptions(), + }, + }); +} + +/** + * Assembles the final static site tree with docs at the root and Storybook under `/storybook`. + */ +export function assembleSite({ + outDir, + docsSourceDir = docsOutDir, + storybookSourceDir = storybookOutDir, +}: AssembleSiteOptions) { + fs.rmSync(outDir, { force: true, recursive: true }); + fs.cpSync(docsSourceDir, outDir, { recursive: true }); + fs.cpSync(storybookSourceDir, path.join(outDir, 'storybook'), { recursive: true }); + fs.writeFileSync(path.join(outDir, '.nojekyll'), ''); + + ensureFileExists(path.join(outDir, 'index.html')); + ensureFileExists(path.join(outDir, 'storybook', 'index.html')); +} + +function ensureFileExists(filePath: string) { + if (!fs.existsSync(filePath)) { + throw new Error(`Expected build output at ${path.relative(repoRoot, filePath)}`); + } +} + +function run(command: string, args: string[], { cwd = repoRoot, env = {} }: CommandOptions = {}) { + const result = spawnSync(command, args, { + cwd, + env: { ...process.env, ...env }, + shell: process.platform === 'win32', + stdio: 'inherit', + }); + + if (result.status !== 0) { + throw new Error(`Command failed: ${command} ${args.join(' ')}`); + } +} + +function toNodeOptions() { + return [process.env.NODE_OPTIONS, '--openssl-legacy-provider'].filter(Boolean).join(' '); +} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7fc52b34a2b..5984874a612 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,17 +6,17 @@ on: workflow_dispatch: inputs: dry_run: - description: Run semantic-release in dry-run mode + description: Run semantic-release in dry-run mode (no publishing will happen) required: true default: false type: boolean publish_pages: - description: Publish the assembled docs and Storybook site + description: Publish the assembled docs and Storybook github.io site required: true default: true type: boolean pages_target_branch: - description: Branch to publish the assembled site to + description: Branch to publish the assembled site to (e.g. use gh-pages-temp for smoke testing) required: true default: gh-pages type: string @@ -106,6 +106,11 @@ jobs: with: working-directory: docs useRollingCache: true + - name: Install Buildkite node_modules + uses: bahmutov/npm-install@v1.10.9 + with: + working-directory: .buildkite + useRollingCache: true - name: Validate Pages publish parameters if: ${{ inputs.dry_run && inputs.publish_pages && inputs.pages_target_branch == 'gh-pages' }} @@ -117,7 +122,7 @@ jobs: run: yarn build - name: Build release site - run: node scripts/build_release_site.js + run: yarn --cwd .buildkite build:release-site - name: Upload release site artifact uses: actions/upload-artifact@v4 diff --git a/scripts/build_release_site.js b/scripts/build_release_site.js deleted file mode 100644 index 163a88c403e..00000000000 --- a/scripts/build_release_site.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -const { spawnSync } = require('node:child_process'); -const fs = require('node:fs'); -const path = require('node:path'); - -const repoRoot = path.resolve(__dirname, '..'); -const docsDir = path.join(repoRoot, 'docs'); -const storybookDir = path.join(repoRoot, 'storybook'); -const docsOutDir = path.join(docsDir, 'build'); -const storybookOutDir = path.join(repoRoot, '.out'); -const siteOutDir = path.join(repoRoot, '.release-site'); -const productionNodeOptions = [process.env.NODE_OPTIONS, '--openssl-legacy-provider'].filter(Boolean).join(' '); - -function run(command, args, options = {}) { - const cwd = options.cwd ?? repoRoot; - const result = spawnSync(command, args, { - cwd, - env: { ...process.env, ...options.env }, - shell: process.platform === 'win32', - stdio: 'inherit', - }); - - if (result.status !== 0) { - throw new Error(`Command failed: ${command} ${args.join(' ')}`); - } -} - -function ensureFileExists(filePath) { - if (!fs.existsSync(filePath)) { - throw new Error(`Expected build output at ${path.relative(repoRoot, filePath)}`); - } -} - -console.log('Building release-ready docs'); -run('yarn', ['typedoc']); -run('yarn', ['build'], { - cwd: docsDir, - env: { - DOCUSAURUS_URL: 'https://elastic.github.io', - DOCUSAURUS_BASE_URL: '/elastic-charts', - NODE_ENV: 'production', - NODE_OPTIONS: productionNodeOptions, - }, -}); - -console.log('Building release-ready Storybook'); -run('yarn', ['build'], { - cwd: storybookDir, - env: { - NODE_ENV: 'production', - NODE_OPTIONS: productionNodeOptions, - }, -}); - -console.log('Assembling release site'); -fs.rmSync(siteOutDir, { force: true, recursive: true }); -fs.cpSync(docsOutDir, siteOutDir, { recursive: true }); -fs.cpSync(storybookOutDir, path.join(siteOutDir, 'storybook'), { recursive: true }); -fs.writeFileSync(path.join(siteOutDir, '.nojekyll'), ''); - -ensureFileExists(path.join(siteOutDir, 'index.html')); -ensureFileExists(path.join(siteOutDir, 'storybook', 'index.html')); - -console.log(`Release site assembled at ${path.relative(repoRoot, siteOutDir)}`); From 800c10cf000d2380fb96d9137b8972bfbe4d78eb Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 19:22:41 +0200 Subject: [PATCH 3/8] Correct duplicate workflow step naming. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5984874a612..db4330eb685 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,7 +57,7 @@ jobs: with: working-directory: e2e useRollingCache: true - - name: Install e2e node_modules + - name: Install buildkite node_modules uses: bahmutov/npm-install@v1.10.9 with: working-directory: .buildkite From 2c8bceb3abc163812f867dc71a580a32693b5ff7 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 19:23:04 +0200 Subject: [PATCH 4/8] Include hidden files while uploading release artifacts. --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index db4330eb685..7a348369402 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -130,6 +130,7 @@ jobs: name: release-site path: ${{ env.RELEASE_SITE_DIR }} retention-days: 5 + include-hidden-files: true - name: Upgrade npm for trusted publishing (OIDC) support if: ${{ !inputs.dry_run }} From 1aa608f2b80cc415ad235ecaf5b986dfdf8d652b Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 19:31:24 +0200 Subject: [PATCH 5/8] Improve copies --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7a348369402..b79486789a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,17 +6,17 @@ on: workflow_dispatch: inputs: dry_run: - description: Run semantic-release in dry-run mode (no publishing will happen) + description: `--dry-run`? Run the workflow without publishing a release required: true default: false type: boolean publish_pages: - description: Publish the assembled docs and Storybook github.io site + description: Publish `elastic.github.io/elastic-charts` site? required: true default: true type: boolean pages_target_branch: - description: Branch to publish the assembled site to (e.g. use gh-pages-temp for smoke testing) + description: github.io pages branch? (e.g. use "gh-pages-temp" for smoke testing) required: true default: gh-pages type: string From 2ccce0e4ada363221078379f8b7f783abd7474bc Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 20:00:26 +0200 Subject: [PATCH 6/8] Fis escaping --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b79486789a7..db3861f0163 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,17 +6,17 @@ on: workflow_dispatch: inputs: dry_run: - description: `--dry-run`? Run the workflow without publishing a release + description: "`--dry-run`? Run the workflow without publishing a release" required: true default: false type: boolean publish_pages: - description: Publish `elastic.github.io/elastic-charts` site? + description: "Publish `elastic.github.io/elastic-charts` site?" required: true default: true type: boolean pages_target_branch: - description: github.io pages branch? (e.g. use "gh-pages-temp" for smoke testing) + description: "github.io branch, only change when testing" required: true default: gh-pages type: string From 60445e44da9d6f0c52e84b0e9fff9149f5c2a1d3 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 20:03:42 +0200 Subject: [PATCH 7/8] Improve copies --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index db3861f0163..beca9118e2f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: inputs: dry_run: - description: "`--dry-run`? Run the workflow without publishing a release" + description: "--dry-run - Run workflow without publishing a release?" required: true default: false type: boolean From ed65a1135ce5507afd5cb657fafd85695b6100f7 Mon Sep 17 00:00:00 2001 From: Abdul Zahid Date: Tue, 14 Apr 2026 20:04:51 +0200 Subject: [PATCH 8/8] Improve copies --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index beca9118e2f..65050727fbf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ on: default: false type: boolean publish_pages: - description: "Publish `elastic.github.io/elastic-charts` site?" + description: "Also publish `elastic.github.io/elastic-charts` site?" required: true default: true type: boolean