From 4bf80e5a020ce468afbe1b90e1f34878e339fe72 Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Fri, 7 Nov 2025 12:27:03 +0000 Subject: [PATCH 01/13] style fixes --- ui/src/css/datatables.css | 8 +++++--- ui/src/css/doc.css | 12 ++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ui/src/css/datatables.css b/ui/src/css/datatables.css index 790eeebb39..ff95a61a20 100644 --- a/ui/src/css/datatables.css +++ b/ui/src/css/datatables.css @@ -19,7 +19,8 @@ table.datatable { } table.datatable thead th { - @apply px-4 py-3 text-left border-b border-gray-200; + @apply p-4 text-left border-b border-gray-200; + font-size: 18px; } table.datatable thead th:hover { @@ -29,7 +30,7 @@ table.datatable thead th:hover { /* Simple DataTables handles sorting indicators automatically */ table.datatable thead th[data-sortable] { @apply cursor-pointer select-none; - min-width: 80px; /* Minimum width to prevent overlap */ + min-width: 100px; /* Minimum width to prevent overlap */ } table.datatable thead th[data-sortable]:hover { @@ -73,7 +74,8 @@ table.datatable thead th[data-sortable="true"]:hover .datatable-sorter::before { } table.datatable tbody td { - @apply px-4 py-3 border-b border-gray-200; + @apply p-4 border-b border-gray-200; + font-size: 16px; } table.datatable tbody tr:hover { diff --git a/ui/src/css/doc.css b/ui/src/css/doc.css index 26f0276544..9cdeb74b7f 100644 --- a/ui/src/css/doc.css +++ b/ui/src/css/doc.css @@ -367,9 +367,17 @@ .doc table.tableblock th, .doc table.tableblock td { - padding: 0.5rem; + padding: 1rem; border-bottom: 1px solid #D4D4D4; - min-width: 90px; + min-width: 100px; +} + +.doc table.tableblock th { + font-size: 18px; +} + +.doc table.tableblock td { + font-size: 16px; } .doc table.tableblock, From 444e7efd9eb2f57ff4943e1feebbce734a3fc269 Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Fri, 7 Nov 2025 12:38:47 +0000 Subject: [PATCH 02/13] add test for cut off tables --- .circleci/config.yml | 20 +++ package.json | 6 +- scripts/check-table-overflow.js | 221 ++++++++++++++++++++++++++++++++ 3 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 scripts/check-table-overflow.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 2541105d6b..8f19e4d017 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,6 +64,21 @@ jobs: - notify_error: message: "Build job failed for branch ${CIRCLE_BRANCH}" + check-table-overflow: + executor: node_executor + steps: + - checkout + - attach_workspace: + at: . + - run: + name: Install Node Dependencies + command: npm ci + - run: + name: Check for overflowing tables + command: npm run check-tables + - notify_error: + message: "Table overflow check failed for branch ${CIRCLE_BRANCH}" + validate: executor: go_executor steps: @@ -112,6 +127,11 @@ workflows: - build: filters: pipeline.git.branch != "main" + - check-table-overflow: + requires: + - build + filters: pipeline.git.branch != "main" + - validate: requires: - build-main diff --git a/package.json b/package.json index 67655a4fac..1d2a7016c9 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "build:ui": "gulp build:ui", "build:api-docs": "gulp build:api-docs", "build:docs": "npm run build:ui && gulp build:docs", - "fetch-server-branches": "chmod +x scripts/fetch-server-branches.sh && ./scripts/fetch-server-branches.sh" + "fetch-server-branches": "chmod +x scripts/fetch-server-branches.sh && ./scripts/fetch-server-branches.sh", + "check-tables": "node scripts/check-table-overflow.js build" }, "repository": { "type": "git", @@ -25,7 +26,8 @@ "@sntke/antora-mermaid-extension": "^0.0.8", "browser-sync": "^3.0.4", "gulp": "^5.0.0", - "httpsnippet": "^3.0.9" + "httpsnippet": "^3.0.9", + "puppeteer": "^23.0.0" }, "dependencies": { "@asciidoctor/tabs": "^1.0.0-beta.6", diff --git a/scripts/check-table-overflow.js b/scripts/check-table-overflow.js new file mode 100644 index 0000000000..e66671a3ff --- /dev/null +++ b/scripts/check-table-overflow.js @@ -0,0 +1,221 @@ +#!/usr/bin/env node + +/** + * Check for tables that overflow their container width + * Requires: puppeteer + * Usage: node scripts/check-table-overflow.js [build-dir] + */ + +const fs = require('fs'); +const path = require('path'); +const puppeteer = require('puppeteer'); + +// Get build directory from args or default to 'build' +const buildDir = process.argv[2] || 'build'; + +if (!fs.existsSync(buildDir)) { + console.error(`āŒ Build directory '${buildDir}' not found`); + process.exit(1); +} + +/** + * Recursively find all HTML files + */ +function findHtmlFiles(dir) { + const files = []; + + function walk(directory) { + const items = fs.readdirSync(directory); + + for (const item of items) { + const fullPath = path.join(directory, item); + const stat = fs.statSync(fullPath); + + if (stat.isDirectory()) { + walk(fullPath); + } else if (item.endsWith('.html')) { + files.push(fullPath); + } + } + } + + walk(dir); + return files; +} + +/** + * Check a single page for overflowing tables + */ +async function checkPage(page, filePath) { + const fileUrl = `file://${path.resolve(filePath)}`; + + try { + await page.goto(fileUrl, { waitUntil: 'networkidle0', timeout: 30000 }); + } catch (err) { + console.warn(`āš ļø Could not load ${filePath}: ${err.message}`); + return []; + } + + // Extract table overflow data + const results = await page.evaluate(() => { + const tables = document.querySelectorAll('.doc table'); + const overflows = []; + + tables.forEach((table, index) => { + // Get the containing article or .doc container + const container = table.closest('article.doc') || table.closest('.doc'); + + if (!container) return; + + const tableWidth = table.getBoundingClientRect().width; + const containerWidth = container.getBoundingClientRect().width; + + // Get page title + const pageTitle = document.querySelector('h1.page')?.textContent?.trim() || + document.querySelector('h1')?.textContent?.trim() || + 'Unknown Page'; + + // Count columns + const headerRow = table.querySelector('thead tr') || table.querySelector('tr'); + const columnCount = headerRow ? headerRow.querySelectorAll('th, td').length : 0; + + // Check if in scrollable wrapper + let parent = table.parentElement; + let hasScrollWrapper = false; + while (parent && parent !== container) { + const overflow = window.getComputedStyle(parent).overflowX; + if (overflow === 'auto' || overflow === 'scroll') { + hasScrollWrapper = true; + break; + } + parent = parent.parentElement; + } + + const isOverflowing = tableWidth > containerWidth; + + if (isOverflowing) { + overflows.push({ + tableIndex: index + 1, + pageTitle, + tableWidth: Math.round(tableWidth), + containerWidth: Math.round(containerWidth), + overflow: Math.round(tableWidth - containerWidth), + overflowPercent: Math.round(((tableWidth - containerWidth) / containerWidth) * 100), + columnCount, + hasScrollWrapper, + tableClasses: table.className + }); + } + }); + + return overflows; + }); + + return results.map(r => ({ + ...r, + file: filePath.replace(buildDir + '/', '') + })); +} + +async function main() { + console.log('šŸ” Starting table overflow check with Puppeteer...\n'); + + const htmlFiles = findHtmlFiles(buildDir); + console.log(`Found ${htmlFiles.length} HTML files to check\n`); + + // Launch browser + const browser = await puppeteer.launch({ + headless: 'new', + args: [ + '--no-sandbox', + '--disable-setuid-sandbox', + '--disable-dev-shm-usage' + ] + }); + + const page = await browser.newPage(); + + // Set viewport to desktop size + await page.setViewport({ width: 1200, height: 800 }); + + const allOverflows = []; + let checkedCount = 0; + + for (const file of htmlFiles) { + checkedCount++; + if (checkedCount % 50 === 0) { + console.log(`Progress: ${checkedCount}/${htmlFiles.length} files checked...`); + } + + const overflows = await checkPage(page, file); + allOverflows.push(...overflows); + } + + await browser.close(); + + console.log(`\nāœ… Checked ${htmlFiles.length} files\n`); + + if (allOverflows.length === 0) { + console.log('šŸŽ‰ No overflowing tables found!\n'); + return; + } + + // Sort by overflow amount (worst first) + allOverflows.sort((a, b) => b.overflow - a.overflow); + + console.log(`āŒ Found ${allOverflows.length} overflowing tables:\n`); + console.log('═'.repeat(80) + '\n'); + + // Group by file + const byFile = {}; + allOverflows.forEach(item => { + if (!byFile[item.file]) { + byFile[item.file] = []; + } + byFile[item.file].push(item); + }); + + Object.keys(byFile).forEach(file => { + console.log(`šŸ“„ ${file}`); + console.log(` Page: ${byFile[file][0].pageTitle}\n`); + + byFile[file].forEach(item => { + console.log(` Table ${item.tableIndex}:`); + console.log(` • Columns: ${item.columnCount}`); + console.log(` • Table width: ${item.tableWidth}px`); + console.log(` • Container width: ${item.containerWidth}px`); + console.log(` • Overflow: ${item.overflow}px (${item.overflowPercent}% too wide)`); + console.log(` • Has scroll wrapper: ${item.hasScrollWrapper ? 'āœ“ YES' : 'āœ— NO'}`); + if (!item.hasScrollWrapper) { + console.log(` āš ļø FIX NEEDED: Wrap in .table-scroll div`); + } + console.log(); + }); + console.log('─'.repeat(80) + '\n'); + }); + + // Summary + const withoutScroll = allOverflows.filter(t => !t.hasScrollWrapper); + const maxOverflow = Math.max(...allOverflows.map(t => t.overflow)); + + console.log('šŸ“Š Summary:'); + console.log(` Total overflowing tables: ${allOverflows.length}`); + console.log(` Without scroll wrapper: ${withoutScroll.length}`); + console.log(` Maximum overflow: ${maxOverflow}px`); + console.log(); + + if (withoutScroll.length > 0) { + console.log('āš ļø ACTION REQUIRED:'); + console.log(` ${withoutScroll.length} table(s) need to be wrapped in a .table-scroll container\n`); + + // Exit with error if tables overflow without scroll wrapper + process.exit(1); + } + + console.log('āœ… All overflowing tables have scroll wrappers\n'); +} + +main().catch(err => { + console.error('āŒ Error:', err.message); + process.exit(1); +}); From 27f0de69f7c5cdaa7213102b73b7a5e342575ac3 Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Fri, 7 Nov 2025 12:45:31 +0000 Subject: [PATCH 03/13] build dependencies --- package-lock.json | 972 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 970 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cdabdd7f4c..9778441533 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,8 @@ "@sntke/antora-mermaid-extension": "^0.0.8", "browser-sync": "^3.0.4", "gulp": "^5.0.0", - "httpsnippet": "^3.0.9" + "httpsnippet": "^3.0.9", + "puppeteer": "^23.0.0" } }, "node_modules/@algolia/abtesting": { @@ -1157,6 +1158,67 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@puppeteer/browsers": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", + "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.0", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", @@ -1482,6 +1544,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/cors": { "version": "2.8.18", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.18.tgz", @@ -1521,6 +1590,17 @@ "dev": true, "optional": true }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -1710,6 +1790,19 @@ "node": ">=8.11" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -1818,6 +1911,88 @@ "license": "Apache-2.0", "optional": true }, + "node_modules/bare-fs": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.0.tgz", + "integrity": "sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1849,6 +2024,16 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -2088,6 +2273,16 @@ "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/camelize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", @@ -2139,6 +2334,27 @@ "fsevents": "~2.3.2" } }, + "node_modules/chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/chromium-bidi/node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -2339,6 +2555,33 @@ "node": ">= 0.10" } }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -2444,6 +2687,16 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -2486,6 +2739,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2538,6 +2806,13 @@ "node": ">= 0.8.0" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1367902", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", + "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/diff3": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", @@ -2846,6 +3121,26 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -2914,6 +3209,62 @@ "dev": true, "license": "MIT" }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2995,6 +3346,79 @@ "dev": true, "license": "MIT" }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/extract-zip/node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/fast-copy": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", @@ -3113,6 +3537,16 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fdir": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", @@ -3440,6 +3874,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -3853,6 +4327,45 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/http2-client": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", @@ -4042,6 +4555,23 @@ "node": ">=0.10.0" } }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4078,6 +4608,16 @@ "node": ">=10.13.0" } }, + "node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -4092,6 +4632,13 @@ "node": ">=0.10.0" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4381,6 +4928,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-pointer": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", @@ -4507,6 +5061,13 @@ "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -4873,7 +5434,17 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, - "license": "MIT" + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } }, "node_modules/node-fetch": { "version": "2.7.0", @@ -5172,6 +5743,65 @@ "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==", "dev": true }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -5186,6 +5816,19 @@ "dev": true, "license": "(MIT AND Zlib)" }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -5201,6 +5844,25 @@ "node": ">=0.8" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -5594,6 +6256,68 @@ "node": ">=12.0.0" } }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -5605,6 +6329,94 @@ "once": "^1.3.1" } }, + "node_modules/puppeteer": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", + "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", + "deprecated": "< 24.15.0 is no longer supported", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1367902", + "puppeteer-core": "23.11.1", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "23.11.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", + "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.6.1", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1367902", + "typed-query-selector": "^2.12.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5917,6 +6729,16 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-options": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", @@ -6543,6 +7365,17 @@ "node": ">=8.0.0" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/socket.io": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", @@ -6703,6 +7536,61 @@ "dev": true, "license": "MIT" }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/sonic-boom": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", @@ -7037,6 +7925,33 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, + "node_modules/tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", @@ -7128,6 +8043,13 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/ua-parser-js": { "version": "1.0.40", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", @@ -7169,6 +8091,42 @@ "node": ">=0.8.0" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -7617,6 +8575,16 @@ "dependencies": { "buffer-crc32": "~0.2.3" } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } From f46539036245ceffeac68d2d755d95147571ef2f Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Fri, 7 Nov 2025 12:50:48 +0000 Subject: [PATCH 04/13] use the browser variant of Docker image --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8f19e4d017..5ea3ecf8df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,9 @@ jobs: message: "Build job failed for branch ${CIRCLE_BRANCH}" check-table-overflow: - executor: node_executor + docker: + - image: cimg/node:22.20.0-browsers + working_directory: ~/project steps: - checkout - attach_workspace: From ed28abeb044ddd61cd922bd77541a04c212c839a Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Fri, 7 Nov 2025 13:05:54 +0000 Subject: [PATCH 05/13] filter checks to only pages that containtables --- scripts/check-table-overflow.js | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/scripts/check-table-overflow.js b/scripts/check-table-overflow.js index e66671a3ff..dfb07f1375 100644 --- a/scripts/check-table-overflow.js +++ b/scripts/check-table-overflow.js @@ -43,6 +43,15 @@ function findHtmlFiles(dir) { return files; } +/** + * Quick check if file contains tables (without parsing) + */ +function hasTables(filePath) { + const content = fs.readFileSync(filePath, 'utf-8'); + // Quick string check - much faster than parsing + return content.includes(' { const tables = document.querySelectorAll('.doc table'); - const overflows = []; + const narrowTables = []; tables.forEach((table, index) => { // Get the containing article or .doc container @@ -91,33 +91,37 @@ async function checkPage(page, filePath) { // Check if in scrollable wrapper let parent = table.parentElement; let hasScrollWrapper = false; + let scrollWrapperClass = ''; while (parent && parent !== container) { const overflow = window.getComputedStyle(parent).overflowX; if (overflow === 'auto' || overflow === 'scroll') { hasScrollWrapper = true; + scrollWrapperClass = parent.className; break; } parent = parent.parentElement; } - const isOverflowing = tableWidth > containerWidth; + // Table is narrow enough that it doesn't need scroll wrapper + const widthPercent = Math.round((tableWidth / containerWidth) * 100); + const isNarrow = tableWidth < containerWidth * 0.95; // Less than 95% of container - if (isOverflowing) { - overflows.push({ + // Flag narrow tables that have unnecessary scroll wrappers + if (isNarrow && hasScrollWrapper) { + narrowTables.push({ tableIndex: index + 1, pageTitle, tableWidth: Math.round(tableWidth), containerWidth: Math.round(containerWidth), - overflow: Math.round(tableWidth - containerWidth), - overflowPercent: Math.round(((tableWidth - containerWidth) / containerWidth) * 100), + widthPercent, columnCount, - hasScrollWrapper, + scrollWrapperClass, tableClasses: table.className }); } }); - return overflows; + return narrowTables; }); return results.map(r => ({ @@ -152,7 +156,7 @@ async function main() { ] }); - const allOverflows = []; + const allNarrowTables = []; // Process files in parallel batches for speed const PARALLEL_PAGES = 5; // Check 5 pages at once @@ -170,8 +174,8 @@ async function main() { const batchResults = await Promise.all( batch.map(async (file) => { const page = await browser.newPage(); - // Set viewport to wide desktop (1600px) so doc container gets full width - await page.setViewport({ width: 1600, height: 800 }); + // Set viewport to desktop size (1200px) + await page.setViewport({ width: 1200, height: 800 }); const result = await checkPage(page, file); await page.close(); return result; @@ -179,7 +183,7 @@ async function main() { ); // Flatten results - batchResults.forEach(result => allOverflows.push(...result)); + batchResults.forEach(result => allNarrowTables.push(...result)); // Progress update const checkedCount = Math.min((i + 1) * PARALLEL_PAGES, filesWithTables.length); @@ -190,64 +194,51 @@ async function main() { console.log(`\nāœ… Checked ${filesWithTables.length} files with tables\n`); - if (allOverflows.length === 0) { - console.log('šŸŽ‰ No overflowing tables found!\n'); + if (allNarrowTables.length === 0) { + console.log('šŸŽ‰ All tables are either wide (need scroll) or already unwrapped!\n'); return; } - // Sort by overflow amount (worst first) - allOverflows.sort((a, b) => b.overflow - a.overflow); + // Sort by width percent (narrowest first - most obvious candidates) + allNarrowTables.sort((a, b) => a.widthPercent - b.widthPercent); - console.log(`āŒ Found ${allOverflows.length} overflowing tables:\n`); + console.log(`šŸ“‹ Found ${allNarrowTables.length} narrow tables with scroll wrappers:\n`); console.log('═'.repeat(80) + '\n'); + console.log('These tables are narrow enough that the .table-scroll wrapper can be removed.\n'); // Group by file const byFile = {}; - allOverflows.forEach(item => { + allNarrowTables.forEach(item => { if (!byFile[item.file]) { byFile[item.file] = []; } byFile[item.file].push(item); }); - Object.keys(byFile).forEach(file => { + Object.keys(byFile).sort().forEach(file => { console.log(`šŸ“„ ${file}`); console.log(` Page: ${byFile[file][0].pageTitle}\n`); byFile[file].forEach(item => { console.log(` Table ${item.tableIndex}:`); - console.log(` • Columns: ${item.columnCount}`); - console.log(` • Table width: ${item.tableWidth}px`); + console.log(` • Table width: ${item.tableWidth}px (${item.widthPercent}% of container)`); console.log(` • Container width: ${item.containerWidth}px`); - console.log(` • Overflow: ${item.overflow}px (${item.overflowPercent}% too wide)`); - console.log(` • Has scroll wrapper: ${item.hasScrollWrapper ? 'āœ“ YES' : 'āœ— NO'}`); - if (!item.hasScrollWrapper) { - console.log(` āš ļø FIX NEEDED: Wrap in .table-scroll div`); - } + console.log(` • Columns: ${item.columnCount}`); + console.log(` • Scroll wrapper: ${item.scrollWrapperClass}`); + console.log(` šŸ’” SAFE TO REMOVE: Table is only ${item.widthPercent}% of container width`); console.log(); }); console.log('─'.repeat(80) + '\n'); }); // Summary - const withoutScroll = allOverflows.filter(t => !t.hasScrollWrapper); - const maxOverflow = Math.max(...allOverflows.map(t => t.overflow)); + const veryNarrow = allNarrowTables.filter(t => t.widthPercent < 80); console.log('šŸ“Š Summary:'); - console.log(` Total overflowing tables: ${allOverflows.length}`); - console.log(` Without scroll wrapper: ${withoutScroll.length}`); - console.log(` Maximum overflow: ${maxOverflow}px`); + console.log(` Tables with unnecessary scroll wrappers: ${allNarrowTables.length}`); + console.log(` Very narrow (<80% width): ${veryNarrow.length} (definitely safe to remove)`); console.log(); - - if (withoutScroll.length > 0) { - console.log('āš ļø ACTION REQUIRED:'); - console.log(` ${withoutScroll.length} table(s) need to be wrapped in a .table-scroll container\n`); - - // Exit with error if tables overflow without scroll wrapper - process.exit(1); - } - - console.log('āœ… All overflowing tables have scroll wrappers\n'); + console.log('šŸ’” These scroll wrappers can be removed to improve appearance.\n'); } main().catch(err => { diff --git a/scripts/wrap-tables.js b/scripts/wrap-tables.js new file mode 100644 index 0000000000..126541c300 --- /dev/null +++ b/scripts/wrap-tables.js @@ -0,0 +1,204 @@ +#!/usr/bin/env node + +/** + * Wrap all tables in .table-scroll wrappers + * Usage: node scripts/wrap-tables.js [--dry-run] + */ + +const fs = require('fs'); +const path = require('path'); + +const dryRun = process.argv.includes('--dry-run'); + +if (dryRun) { + console.log('šŸ” DRY RUN MODE - No files will be modified\n'); +} + +/** + * Recursively find all .adoc files + */ +function findAdocFiles(dir, fileList = []) { + const files = fs.readdirSync(dir); + + files.forEach(file => { + const filePath = path.join(dir, file); + const stat = fs.statSync(filePath); + + if (stat.isDirectory()) { + // Skip node_modules and hidden directories + if (!file.startsWith('.') && file !== 'node_modules') { + findAdocFiles(filePath, fileList); + } + } else if (file.endsWith('.adoc')) { + fileList.push(filePath); + } + }); + + return fileList; +} + +/** + * Wrap tables in a file + */ +function wrapTablesInFile(filePath) { + const content = fs.readFileSync(filePath, 'utf-8'); + const lines = content.split('\n'); + + let modified = false; + let inTable = false; + let tableStartIndex = -1; + let result = []; + let i = 0; + + while (i < lines.length) { + const line = lines[i]; + const trimmed = line.trim(); + + // Check if this is the start of a table + if (trimmed === '|===' && !inTable) { + // Look backwards to see if there's already a wrapper + let hasWrapper = false; + let attributeLineIndex = i - 1; + + // Check for table attributes (like [cols=...], [.table-scroll], etc.) + while (attributeLineIndex >= 0) { + const prevLine = lines[attributeLineIndex].trim(); + + // Found existing .table-scroll wrapper + if (prevLine === '[.table-scroll]') { + hasWrapper = true; + break; + } + + // Stop at empty line or non-attribute line + if (prevLine === '' || + prevLine === '--' || + (!prevLine.startsWith('[') && !prevLine.startsWith('.') && !prevLine.startsWith('|'))) { + break; + } + + attributeLineIndex--; + } + + if (!hasWrapper) { + // Find where to insert the wrapper + // Look for table attributes before |=== + let insertIndex = i; + let attributeIndex = i - 1; + + while (attributeIndex >= 0) { + const prevLine = lines[attributeIndex].trim(); + + // Table attribute line (like [cols=...], [options=...]) + if (prevLine.startsWith('[') && !prevLine.startsWith('[.')) { + attributeIndex--; + continue; + } + + // Empty line - stop here + if (prevLine === '') { + insertIndex = attributeIndex + 1; + break; + } + + // Non-table content - insert after this + insertIndex = attributeIndex + 1; + break; + } + + // Insert wrapper + // Add blank line before wrapper if needed + if (insertIndex > 0 && lines[insertIndex - 1].trim() !== '') { + result.push(''); + } + + result.push('[.table-scroll]'); + result.push('--'); + + // Add any attribute lines + for (let j = insertIndex; j < i; j++) { + result.push(lines[j]); + } + + modified = true; + inTable = true; + tableStartIndex = insertIndex; + } else { + inTable = true; + } + + result.push(line); + } + // Check if this is the end of a table + else if (trimmed === '|===' && inTable) { + result.push(line); + + // Only add closing delimiter if we added opening + if (modified && tableStartIndex !== -1) { + result.push('--'); + tableStartIndex = -1; + } + + inTable = false; + } + // Regular line + else { + // Skip lines we already processed (between insertIndex and table start) + if (!modified || i < tableStartIndex || !inTable) { + result.push(line); + } + } + + i++; + } + + return { + modified, + content: result.join('\n') + }; +} + +/** + * Process all files + */ +function main() { + console.log('šŸ” Finding .adoc files...\n'); + + const docsFiles = findAdocFiles('docs'); + const archiveFiles = findAdocFiles('archive'); + const allFiles = [...docsFiles, ...archiveFiles]; + + console.log(`Found ${allFiles.length} .adoc files\n`); + + let modifiedCount = 0; + const modifiedFiles = []; + + allFiles.forEach(file => { + const result = wrapTablesInFile(file); + + if (result.modified) { + modifiedCount++; + modifiedFiles.push(file); + + if (!dryRun) { + fs.writeFileSync(file, result.content, 'utf-8'); + console.log(`āœ… Wrapped tables in: ${file}`); + } else { + console.log(`šŸ“ Would wrap tables in: ${file}`); + } + } + }); + + console.log(`\n${'='.repeat(60)}`); + console.log(`\nšŸ“Š Summary:`); + console.log(` Total files scanned: ${allFiles.length}`); + console.log(` Files modified: ${modifiedCount}`); + + if (dryRun) { + console.log(`\nšŸ’” Run without --dry-run to apply changes`); + } else { + console.log(`\nāœ… Done! All tables are now wrapped.`); + } +} + +main(); diff --git a/ui/src/css/doc.css b/ui/src/css/doc.css index 9cdeb74b7f..0e4e08701a 100644 --- a/ui/src/css/doc.css +++ b/ui/src/css/doc.css @@ -385,6 +385,19 @@ border-bottom: 1px solid #D4D4D4; } +/* Default: All tables get scroll behavior */ +.doc table.tableblock { + display: block; + overflow-x: auto; + margin: 1.5rem 0; +} + +/* Opt-out class for narrow tables that don't need scroll */ +.doc .table-no-scroll table.tableblock { + overflow-x: visible; +} + +/* Legacy .table-scroll wrapper support (keep for backwards compatibility) */ .doc .table-scroll { overflow-x: auto; margin: 1.5rem 0; @@ -393,6 +406,7 @@ .doc .table-scroll table.tableblock { min-width: 100%; width: auto; + margin: 0; /* Reset margin since wrapper has it */ } .doc table.grid-all > * > tr > * { From f1fb6cf5e8b1363d3465bda59494e9814169d621 Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Sun, 9 Nov 2025 00:06:43 +0000 Subject: [PATCH 08/13] allow all tables to scroll if they need to - remove test attempts --- .../docs-style/pages/style-and-voice.adoc | 3 + .../docs-style/pages/using-tables.adoc | 7 + .../templates/pages/template-conceptual.adoc | 3 + .../templates/pages/template-how-to.adoc | 3 + .../templates/pages/template-tutorial.adoc | 3 + .../templates/pages/test-page-one.adoc | 3 + .../partials/deploy/supported-versions.adoc | 3 + .../arm-resource-table.adoc | 3 + .../docker-arm-resource-table.adoc | 3 + .../docker-resource-table.adoc | 3 + .../gpu-linux-resource-table.adoc | 3 + .../gpu-windows-resource-table.adoc | 3 + .../machine-resource-table.adoc | 3 + .../macos-resource-table.adoc | 3 + .../windows-resource-table.adoc | 3 + .../execution-resources/xcode-silicon-vm.adoc | 3 + .../set-up-schedule-trigger.adoc | 4 + .../runner/launch-agent-download.adoc | 8 + .../partials/using-expressions/operators.adoc | 3 + .../about-circleci/pages/concepts.adoc | 3 + .../deploy/pages/deployment-overview.adoc | 5 +- docs/guides/modules/deploy/pages/ecs-ecr.adoc | 3 + .../deploy/pages/set-up-rollbacks.adoc | 3 + .../pages/building-docker-images.adoc | 6 + .../pages/circleci-images.adoc | 3 + .../linux-cuda-images-support-policy.adoc | 6 + .../pages/linux-vm-support-policy.adoc | 6 + .../pages/next-gen-migration-guide.adoc | 6 + .../remote-docker-images-support-policy.adoc | 6 + .../execution-managed/pages/using-docker.adoc | 3 + .../pages/windows-images-support-policy.adoc | 6 + .../execution-managed/pages/xcode-policy.adoc | 6 + ...ntainer-runner-performance-benchmarks.adoc | 17 +- .../execution-runner/pages/runner-api.adoc | 33 +++ .../runner-feature-comparison-matrix.adoc | 3 + .../insights/pages/insights-glossary.adoc | 9 + .../integration/pages/outbound-webhooks.adoc | 12 + ...e-circleci-github-app-in-an-oauth-org.adoc | 9 + ...n-control-system-integration-overview.adoc | 15 ++ .../migrate/pages/migrating-from-github.adoc | 1 + .../pages/migrating-from-teamcity.adoc | 87 +----- .../migrate/pages/migrating-from-travis.adoc | 3 + .../modules/optimize/pages/artifacts.adoc | 3 + .../modules/optimize/pages/caching.adoc | 3 + .../modules/optimize/pages/java-oom.adoc | 3 + .../pages/parallelism-faster-jobs.adoc | 3 + .../modules/optimize/pages/persist-data.adoc | 3 + .../pages/github-trigger-event-options.adoc | 3 + .../modules/orchestrate/pages/jobs-steps.adoc | 3 + .../modules/orchestrate/pages/workflows.adoc | 3 + .../pages/openid-connect-tokens.adoc | 8 + .../pages/roles-and-permissions-overview.adoc | 79 ++++++ .../modules/security/pages/audit-logs.adoc | 5 +- .../modules/security/pages/contexts.adoc | 6 + .../delete-organizations-and-projects.adoc | 3 + ...rename-organizations-and-repositories.adoc | 3 + .../modules/test/pages/adaptive-testing.adoc | 6 + .../modules/test/pages/collect-test-data.adoc | 3 + .../modules/test/pages/fix-flaky-tests.adoc | 4 + .../modules/toolkit/pages/api-intro.adoc | 3 + .../pages/environment-cli-usage-guide.adoc | 21 ++ .../pages/examples-and-guides-overview.adoc | 6 + .../how-to-use-the-circleci-local-cli.adoc | 3 + .../orbs/modules/author/pages/orb-author.adoc | 11 + .../modules/author/pages/orb-concepts.adoc | 10 + .../author/pages/orbs-best-practices.adoc | 6 + docs/orbs/modules/use/pages/orb-intro.adoc | 3 + .../ROOT/pages/configuration-reference.adoc | 120 +++++++++ docs/reference/modules/ROOT/pages/faq.adoc | 4 + .../pages/outbound-webhooks-reference.adoc | 30 +++ .../modules/ROOT/pages/reusing-config.adoc | 15 ++ .../modules/ROOT/pages/troubleshoot.adoc | 4 + .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 5 +- .../pages/phase-1-prerequisites.adoc | 18 +- .../pages/phase-3-execution-environments.adoc | 12 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...nage-virtual-machines-with-vm-service.adoc | 18 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 5 +- .../pages/phase-1-prerequisites.adoc | 18 +- .../pages/phase-3-execution-environments.adoc | 12 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 18 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 1 - .../pages/phase-1-prerequisites.adoc | 18 +- .../pages/phase-3-execution-environments.adoc | 12 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 19 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 5 +- .../pages/phase-1-prerequisites.adoc | 18 +- .../pages/phase-3-execution-environments.adoc | 14 +- .../operator/pages/application-lifecycle.adoc | 6 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 18 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 4 +- .../pages/phase-1-prerequisites.adoc | 18 +- .../pages/phase-3-execution-environments.adoc | 12 +- .../operator/pages/application-lifecycle.adoc | 6 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 18 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../ROOT/partials/installation/phase-1.adoc | 18 +- .../ROOT/partials/installation/phase-3.adoc | 13 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../pages/installation-reference.adoc | 5 +- .../operator/pages/application-lifecycle.adoc | 6 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 19 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 24 +- .../ROOT/partials/installation/phase-1.adoc | 22 +- .../ROOT/partials/installation/phase-3.adoc | 12 +- .../pages/phase-1-prerequisites.adoc | 6 +- .../pages/hardening-your-cluster.adoc | 51 ++-- .../operator/pages/application-lifecycle.adoc | 6 +- .../circleci-server-security-features.adoc | 6 +- .../pages/configuring-external-services.adoc | 6 +- ...ual-machines-with-machine-provisioner.adoc | 18 +- .../pages/managing-build-artifacts.adoc | 12 +- .../operator/pages/operator-overview.adoc | 6 +- .../pages/circleci-server-overview.adoc | 19 +- package.json | 3 +- scripts/check-table-overflow.js | 247 ------------------ scripts/wrap-tables.js | 204 --------------- ui/src/css/doc.css | 14 - 156 files changed, 1362 insertions(+), 967 deletions(-) delete mode 100644 scripts/check-table-overflow.js delete mode 100644 scripts/wrap-tables.js diff --git a/docs/contributors/modules/docs-style/pages/style-and-voice.adoc b/docs/contributors/modules/docs-style/pages/style-and-voice.adoc index 2988d9ab24..ad64bf56ff 100644 --- a/docs/contributors/modules/docs-style/pages/style-and-voice.adoc +++ b/docs/contributors/modules/docs-style/pages/style-and-voice.adoc @@ -18,6 +18,8 @@ Assume technical competence but explain concepts clearly and simply. Some concep * Avoid contractions, for example "don't", "you're". They make the content harder for non-native english speakers to read. * Do not use time-sentitive language like, "new" or "soon" or "in preview" in main prose. These can get missed when changes are needed. If this language is needed it should be in a banner (admonition) that is clearly there to indicate the time-sensitive nature of the content. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Avoid @@ -38,6 +40,7 @@ Assume technical competence but explain concepts clearly and simply. Some concep | Guys | Folks, y’all, people, humans, teammates |=== +-- == Talking about CircleCI * The CircleCI is referred to as the "web app". diff --git a/docs/contributors/modules/docs-style/pages/using-tables.adoc b/docs/contributors/modules/docs-style/pages/using-tables.adoc index 5f196021ec..50d04a3adc 100644 --- a/docs/contributors/modules/docs-style/pages/using-tables.adoc +++ b/docs/contributors/modules/docs-style/pages/using-tables.adoc @@ -5,6 +5,9 @@ Use the following format for tables: [source,adoc] ---- + +[.table-scroll] +-- [cols=4*, options="header"] |=== | Key @@ -17,10 +20,13 @@ Use the following format for tables: | String | Should currently be `2` |=== +-- ---- Looks like: +[.table-scroll] +-- [cols=4*, options="header"] |=== | Key @@ -33,6 +39,7 @@ Looks like: | String | Should currently be `2` |=== +-- == Extra wide tables diff --git a/docs/contributors/modules/templates/pages/template-conceptual.adoc b/docs/contributors/modules/templates/pages/template-conceptual.adoc index a4c63d4ee9..1b1c440d0c 100644 --- a/docs/contributors/modules/templates/pages/template-conceptual.adoc +++ b/docs/contributors/modules/templates/pages/template-conceptual.adoc @@ -69,6 +69,8 @@ Break up large blocks of text where possible to help make it easier to consume. This section shows how to create a table. This example has one heading row and one regular row. The table has three columns, and the third column is twice as wide as the first two columns. THe table has a title. +[.table-scroll] +-- .This is a table [cols="1,1,2"] |=== @@ -78,6 +80,7 @@ This section shows how to create a table. This example has one heading row and o |Text for row 1 column 2 |Text for row 1 column 3 |=== +-- For a full description of the options available, including merging cells, and cell formatting, see the link:https://docs.asciidoctor.org/asciidoc/latest/tables/build-a-basic-table/[Asciidoctor docs]. diff --git a/docs/contributors/modules/templates/pages/template-how-to.adoc b/docs/contributors/modules/templates/pages/template-how-to.adoc index 48cd1587fd..48fb51346d 100644 --- a/docs/contributors/modules/templates/pages/template-how-to.adoc +++ b/docs/contributors/modules/templates/pages/template-how-to.adoc @@ -66,6 +66,8 @@ Break up large blocks of text where possible to help make it easier to consume. This section shows how to create a table. This example has one heading row and one regular row. The table has three columns, and the third column is twice as wide as the first two columns. THe table has a title. +[.table-scroll] +-- .This is a table [cols="1,1,2"] |=== @@ -75,6 +77,7 @@ This section shows how to create a table. This example has one heading row and o |Text for row 1 column 2 |Text for row 1 column 3 |=== +-- For a full description of the options available, including merging cells, and cell formatting, see the link:https://docs.asciidoctor.org/asciidoc/latest/tables/build-a-basic-table/[Asciidoctor docs]. diff --git a/docs/contributors/modules/templates/pages/template-tutorial.adoc b/docs/contributors/modules/templates/pages/template-tutorial.adoc index 8cb104a42f..6240e3c624 100644 --- a/docs/contributors/modules/templates/pages/template-tutorial.adoc +++ b/docs/contributors/modules/templates/pages/template-tutorial.adoc @@ -65,6 +65,8 @@ Break up large blocks of text where possible to help make it easier to consume. This is the syntax for creating a table. This example has one heading row and one normal row. The table has three columns +[.table-scroll] +-- [cols=3*, options="header"] |=== |Header text column 1 @@ -75,6 +77,7 @@ This is the syntax for creating a table. This example has one heading row and on |Text for row 1 column 2 |Text for row 1 column 3 |=== +-- For a full description of the options available, including merging cells, and cell formatting, see the link:https://docs.asciidoctor.org/asciidoc/latest/tables/build-a-basic-table/[Asciidoctor docs]. diff --git a/docs/contributors/modules/templates/pages/test-page-one.adoc b/docs/contributors/modules/templates/pages/test-page-one.adoc index 04bd31ce15..1213cc8d56 100644 --- a/docs/contributors/modules/templates/pages/test-page-one.adoc +++ b/docs/contributors/modules/templates/pages/test-page-one.adoc @@ -61,6 +61,8 @@ include::guides:ROOT:partial$app-navigation/steps-to-project-settings.adoc[] ==== This is a table +[.table-scroll] +-- [cols=3*, options="header"] |=== |Header text column 1 @@ -75,6 +77,7 @@ include::guides:ROOT:partial$app-navigation/steps-to-project-settings.adoc[] |Text for row 2 column 2 |Text for row 2 column 3 |=== +-- ==== This is a code block diff --git a/docs/guides/modules/ROOT/partials/deploy/supported-versions.adoc b/docs/guides/modules/ROOT/partials/deploy/supported-versions.adoc index 7be70b049c..ef5d60a469 100644 --- a/docs/guides/modules/ROOT/partials/deploy/supported-versions.adoc +++ b/docs/guides/modules/ROOT/partials/deploy/supported-versions.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=2*, options="header"] |=== |Tool @@ -16,3 +18,4 @@ a| 3.12.0 + a| 1.6.0 + 1.5.0 |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/arm-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/arm-resource-table.adoc index 466a8f95bf..5c3c864cc7 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/arm-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/arm-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=6*, options="header"] |=== | Class | vCPUs | RAM | Disk Size | Cloud | Server @@ -30,5 +32,6 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] |=== +-- NOTE: **Using server?** Check with your systems administrator whether you have access to the Arm execution environment. diff --git a/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc index 28a5f24db1..d43afb514e 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc @@ -9,6 +9,8 @@ To find out which CircleCI Docker convenience images support Arm resource classe . View what is supported under **OS/ARCH** for the latest tags. For example, `cimg/python` has `linux/amd64` and `linux/arm64`, which means Arm **is** supported. **** +[.table-scroll] +-- [cols=5*, options="header"] |=== | Class | vCPUs | RAM | Cloud | Server @@ -37,3 +39,4 @@ To find out which CircleCI Docker convenience images support Arm resource classe | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/cancel.svg[cancel icon, role="no-border"] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/docker-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/docker-resource-table.adoc index 4d9aa71ff3..0fdbcaf8ec 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/docker-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/docker-resource-table.adoc @@ -1,5 +1,7 @@ NOTE: For credit and access information, see the link:https://circleci.com/product/features/resource-classes/[Resource classes page]. Resource class access is dependent on your xref:guides:plans-pricing:plan-overview.adoc[Plan]. +[.table-scroll] +-- [cols=5*, options="header"] |=== | Class | vCPUs | RAM | Cloud | Server @@ -46,3 +48,4 @@ NOTE: For credit and access information, see the link:https://circleci.com/produ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/gpu-linux-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/gpu-linux-resource-table.adoc index f945350cb4..3e6e4990b1 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/gpu-linux-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/gpu-linux-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1,1", options="header"] |=== | Class | vCPUs | RAM | GPUs | GPU model | GPU Memory (GiB) | Disk Size (GiB) | Cloud | Server @@ -62,3 +64,4 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/cancel.svg[cancel icon, role="no-border"] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/gpu-windows-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/gpu-windows-resource-table.adoc index fcc445f116..e5f2d26c83 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/gpu-windows-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/gpu-windows-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=9*, options="header"] |=== | Class | vCPUs | RAM | GPUs | GPU model | GPU Memory (GiB) | Disk Size (GiB)| Cloud | Server @@ -12,3 +14,4 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/cancel.svg[cancel icon, role="no-border"] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/machine-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/machine-resource-table.adoc index 841399b6cb..3d7b066279 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/machine-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/machine-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=6*, options="header"] |=== |Class | vCPUs | RAM | Disk Size | Cloud | Server @@ -37,3 +39,4 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/execution-resources/macos-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/macos-resource-table.adoc index bf5bcc09de..84b0850fc2 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/macos-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/macos-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=5*, options="header"] |=== | Class | vCPUs | RAM | Cloud | Server @@ -42,6 +44,7 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/cancel.svg[cancel icon, role="no-border"] |=== +-- **** *We have deprecated support for all Intel-based macOS resources.* diff --git a/docs/guides/modules/ROOT/partials/execution-resources/windows-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/windows-resource-table.adoc index a69aeeae58..9a8a1e1c47 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/windows-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/windows-resource-table.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols=6*, options="header"] |=== | Class | vCPUs | RAM | Disk Size | Cloud | Server @@ -30,5 +32,6 @@ | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] | image:guides:ROOT:icons/check.svg[check icon, role="no-border"] |=== +-- NOTE: **Using server?** Check with your systems administrator whether you have access to the Windows execution environment. diff --git a/docs/guides/modules/ROOT/partials/execution-resources/xcode-silicon-vm.adoc b/docs/guides/modules/ROOT/partials/execution-resources/xcode-silicon-vm.adoc index b45af17545..24e00bf917 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/xcode-silicon-vm.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/xcode-silicon-vm.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols="1,1,1,2,1,1", options="header"] |=== | Config @@ -201,3 +203,4 @@ a| `m4pro.medium` + | link:https://circle-macos-docs.s3.amazonaws.com/image-manifest/v11776/manifest.txt[Installed software] | link:https://discuss.circleci.com/t/announcing-m1-large-now-available-on-performance-plans/47797/22[Release Notes] |=== +-- diff --git a/docs/guides/modules/ROOT/partials/pipelines-and-triggers/set-up-schedule-trigger.adoc b/docs/guides/modules/ROOT/partials/pipelines-and-triggers/set-up-schedule-trigger.adoc index f7e98d3e3e..c1b66240ad 100644 --- a/docs/guides/modules/ROOT/partials/pipelines-and-triggers/set-up-schedule-trigger.adoc +++ b/docs/guides/modules/ROOT/partials/pipelines-and-triggers/set-up-schedule-trigger.adoc @@ -16,6 +16,9 @@ image::guides:ROOT:triggers/set-up-schedule-trigger.png[Schedule triggers web ap ** Enter any pipeline parameters that you would like to set when triggering the pipeline. If you enter any new pipeline parameters make sure to also add them to your config file. You can select btn:[Populate from config] to automatically populate the parameters fields from your config file. ** Select a trigger frequency and repeat options. + + +[.table-scroll] +-- [options="header",cols="1,2"] |=== |Field |Options @@ -46,6 +49,7 @@ a|* 1 (once per hour) * 11 (every 5.5 minutes) * 12 (every 5 minutes) |=== +-- . Enable the trigger and select btn:[Save]. -- diff --git a/docs/guides/modules/ROOT/partials/runner/launch-agent-download.adoc b/docs/guides/modules/ROOT/partials/runner/launch-agent-download.adoc index 962f9309ca..d5b386770f 100644 --- a/docs/guides/modules/ROOT/partials/runner/launch-agent-download.adoc +++ b/docs/guides/modules/ROOT/partials/runner/launch-agent-download.adoc @@ -9,6 +9,9 @@ Self-hosted runners on cloud auto-update to the latest supported versions. For s * If you are using **cloud**, use the table below to find your platform variable: + -- + +[.table-scroll] +-- [cols=2*, options="header"] |=== | Installation Target @@ -38,6 +41,7 @@ ifdef::macos[] | `platform=darwin/arm64` endif::[] |=== +-- ifdef::linux[] @@ -69,6 +73,9 @@ endif::[] * For *server v4.x and up*, use the table below to find the compatible machine runner launch-agent version for the version of server you are running: + -- + +[.table-scroll] +-- [cols=2*, options="header"] |=== | Server version @@ -80,6 +87,7 @@ endif::[] | 4.3-4.7 | 1.1.73189-8792751 |=== +-- Substitute `` with your launch-agent version for server and run the following: diff --git a/docs/guides/modules/ROOT/partials/using-expressions/operators.adoc b/docs/guides/modules/ROOT/partials/using-expressions/operators.adoc index 33ec94e280..0460930afd 100644 --- a/docs/guides/modules/ROOT/partials/using-expressions/operators.adoc +++ b/docs/guides/modules/ROOT/partials/using-expressions/operators.adoc @@ -1,3 +1,5 @@ +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Operator type | Operators | Description @@ -27,3 +29,4 @@ Note that `not` has very high precedence and so binds very tightly. Use sub-expr * `not foo and bar` evaluates to `false` * `not (foo and bar)` evaluates to `true` |=== +-- diff --git a/docs/guides/modules/about-circleci/pages/concepts.adoc b/docs/guides/modules/about-circleci/pages/concepts.adoc index 91c6df420d..667d919286 100644 --- a/docs/guides/modules/about-circleci/pages/concepts.adoc +++ b/docs/guides/modules/about-circleci/pages/concepts.adoc @@ -61,6 +61,8 @@ image::guides:ROOT:workspaces.png[workflow illustration] Note the following distinctions between artifacts, caches and workspaces: +[.table-scroll] +-- [cols="1,1,2,3", options="header"] |=== | Type | Lifetime | Use | Example @@ -80,6 +82,7 @@ Note the following distinctions between artifacts, caches and workspaces: | Attach the workspace in a downstream container with the `attach_workspace:` step. | The `attach_workspace` copies and recreates the entire workspace content when it runs. |=== +-- [#artifacts] === Artifacts diff --git a/docs/guides/modules/deploy/pages/deployment-overview.adoc b/docs/guides/modules/deploy/pages/deployment-overview.adoc index a36ab693a4..33512ca322 100644 --- a/docs/guides/modules/deploy/pages/deployment-overview.adoc +++ b/docs/guides/modules/deploy/pages/deployment-overview.adoc @@ -253,6 +253,8 @@ To view all commands run for a component, follow these steps: A deployment can be in one of the following states: +[.table-scroll] +-- [cols="1,2", options="header"] |=== |Status @@ -275,4 +277,5 @@ A deployment can be in one of the following states: |LOGGED |Deployment has been logged using a deploy marker and is available in the CircleCI deploys UI. -|=== \ No newline at end of file +|=== +-- \ No newline at end of file diff --git a/docs/guides/modules/deploy/pages/ecs-ecr.adoc b/docs/guides/modules/deploy/pages/ecs-ecr.adoc index caf822e277..04ff88914e 100644 --- a/docs/guides/modules/deploy/pages/ecs-ecr.adoc +++ b/docs/guides/modules/deploy/pages/ecs-ecr.adoc @@ -48,6 +48,8 @@ TIP: You can destroy most AWS resources by running `terraform destroy`. If any r In the CircleCI application, set the following xref:security:set-environment-variable.adoc#set-an-environment-variable-in-a-project[project environment variables]. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Variable | Description @@ -70,6 +72,7 @@ In the CircleCI application, set the following xref:security:set-environment-var | AWS_ECR_REGISTRY_ID | The 12 digit AWS id associated with the ECR account. |=== +-- [#configuration-walkthrough] == Configuration walkthrough diff --git a/docs/guides/modules/deploy/pages/set-up-rollbacks.adoc b/docs/guides/modules/deploy/pages/set-up-rollbacks.adoc index bce2d96200..21d3ca5396 100644 --- a/docs/guides/modules/deploy/pages/set-up-rollbacks.adoc +++ b/docs/guides/modules/deploy/pages/set-up-rollbacks.adoc @@ -9,6 +9,8 @@ Rollbacks allow you to quickly revert your application to a previous stable vers CircleCI rollbacks support two methods: Rollback by running a custom rollback pipeline or Rollback by workflow re-run. Each method has appropriate use cases, advantages and disadvantages, as follows: +[.table-scroll] +-- [options="header", cols="1,1,1,1"] |=== | @@ -32,6 +34,7 @@ a| * Limited control over rollback process a| * Simple systems * Need immediate rollback |=== +-- == Prerequisites diff --git a/docs/guides/modules/execution-managed/pages/building-docker-images.adoc b/docs/guides/modules/execution-managed/pages/building-docker-images.adoc index 0bf463bb2a..011da3f23e 100644 --- a/docs/guides/modules/execution-managed/pages/building-docker-images.adoc +++ b/docs/guides/modules/execution-managed/pages/building-docker-images.adoc @@ -55,6 +55,8 @@ Arm-based Docker jobs use an equivalent **Arm machine** resource class for remot ==== x86 architecture +[.table-scroll] +-- [cols=2*, options="header"] |=== | Docker resource class @@ -72,9 +74,12 @@ Arm-based Docker jobs use an equivalent **Arm machine** resource class for remot | `2xlarge` | `2xlarge` (Linux VM) |=== +-- ==== Arm architecture +[.table-scroll] +-- [cols=2*, options="header"] |=== | Docker resource class @@ -88,6 +93,7 @@ Arm-based Docker jobs use an equivalent **Arm machine** resource class for remot | `arm.2xlarge` | `arm.2xlarge` (Arm VM) |=== +-- - Full list of resource classes: xref:reference:ROOT:configuration-reference.adoc#resourceclass[Configuration Reference]. - Full specifications and pricing: link:https://circleci.com/pricing/price-list/[CircleCI Pricing] diff --git a/docs/guides/modules/execution-managed/pages/circleci-images.adoc b/docs/guides/modules/execution-managed/pages/circleci-images.adoc index c116c8fa93..37b5db6cce 100644 --- a/docs/guides/modules/execution-managed/pages/circleci-images.adoc +++ b/docs/guides/modules/execution-managed/pages/circleci-images.adoc @@ -319,6 +319,8 @@ does *not* control which tags are used. These tags are chosen and maintained by upstream projects. Do not assume that a given tag has the same meaning across images. +[.table-scroll] +-- [cols="1,1,2,1", options="header"] |=== |Image name |Resources |Usage |Tags @@ -413,6 +415,7 @@ images. |`- image: circleci/rust:[TAG]` |https://hub.docker.com/r/circleci/rust/tags?ordering=last_updated[Tags] |=== +-- [#next-steps] == Next steps diff --git a/docs/guides/modules/execution-managed/pages/linux-cuda-images-support-policy.adoc b/docs/guides/modules/execution-managed/pages/linux-cuda-images-support-policy.adoc index 61815b79bc..a2e940e610 100644 --- a/docs/guides/modules/execution-managed/pages/linux-cuda-images-support-policy.adoc +++ b/docs/guides/modules/execution-managed/pages/linux-cuda-images-support-policy.adoc @@ -55,6 +55,8 @@ Once a new major version of CUDA is released, we will begin the deprecation proc A major version release -- CUDA 12.0: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Version @@ -69,9 +71,12 @@ A major version release -- CUDA 12.0: | CUDA 10 | `linux-cuda-10` image deprecated |=== +-- A minor version release -- CUDA 11.8: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Version @@ -89,6 +94,7 @@ A minor version release -- CUDA 11.8: | CUDA 11.2 | Removed from `linux-cuda-11` |=== +-- Once a new even numbered minor version is released, that version will be added and the oldest existing version will be removed, provided that more than 3 minor versions exist. diff --git a/docs/guides/modules/execution-managed/pages/linux-vm-support-policy.adoc b/docs/guides/modules/execution-managed/pages/linux-vm-support-policy.adoc index 9ce9fd2ee2..1499760388 100644 --- a/docs/guides/modules/execution-managed/pages/linux-vm-support-policy.adoc +++ b/docs/guides/modules/execution-managed/pages/linux-vm-support-policy.adoc @@ -45,6 +45,8 @@ Image Lifespan will generally follow the support status of Ubuntu by Canonical. Current Deprecation (Jan 2024): +[.table-scroll] +-- [cols=2*, options="header"] |=== | Version @@ -54,10 +56,13 @@ Current Deprecation (Jan 2024): | Ubuntu 22.04 LTS |=== +-- Example: When Ubuntu 24.04 LTS is released +[.table-scroll] +-- [cols=2*, options="header"] |=== | Version @@ -72,6 +77,7 @@ Example: When Ubuntu 24.04 LTS is released | Ubuntu 24.04 LTS | `current` and `edge` tags retained |=== +-- When an image is selected for deprecation and removal, we will create an announcement on our Discuss forum and along with additional outreach where possible. diff --git a/docs/guides/modules/execution-managed/pages/next-gen-migration-guide.adoc b/docs/guides/modules/execution-managed/pages/next-gen-migration-guide.adoc index 029366463a..ef1f15e96c 100644 --- a/docs/guides/modules/execution-managed/pages/next-gen-migration-guide.adoc +++ b/docs/guides/modules/execution-managed/pages/next-gen-migration-guide.adoc @@ -42,6 +42,8 @@ Also, the following image will be renamed: All Legacy to Next-Gen image changes are captured below in this table: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Legacy Image | Next-Gen Image @@ -58,12 +60,15 @@ All Legacy to Next-Gen image changes are captured below in this table: | `circleci/golang` | cimg/go |=== +-- [#browser-testing] === Browser testing With legacy images, there were 4 different variant tags you could use to get browser testing for a particular image. For example, if you were doing browser testing with the Python v3.7.0 image, you might have used Docker `image: circleci/python:3.7`.0-browsers. These 4 tags have now been consolidated into a single tag designed to be used together with the link:https://circleci.com/developer/orbs/orb/circleci/browser-tools[CircleCI Browser Tools orb]. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Legacy variant tags | Next-gen variant tags @@ -80,6 +85,7 @@ With legacy images, there were 4 different variant tags you could use to get bro | `-node-browsers-legacy` | |=== +-- The new, single browsers variant tag includes Node.js, common utilities to use in browser testing such as Selenium, but not the actual browsers. Browsers are no longer pre-installed. Instead, browsers such as Google Chrome and Firefox, as well as their drivers ChromeDriver and Gecko, are installed via the `browsers-tools` orb. This provides the flexibility to mix and match the browser versions you need in a build rather than using strictly what CircleCI provides. You can find examples of how to use this orb https://circleci.com/developer/orbs/orb/circleci/browser-tools#usage-install_browsers[here]. diff --git a/docs/guides/modules/execution-managed/pages/remote-docker-images-support-policy.adoc b/docs/guides/modules/execution-managed/pages/remote-docker-images-support-policy.adoc index 67a0d1e672..2d3f369b65 100644 --- a/docs/guides/modules/execution-managed/pages/remote-docker-images-support-policy.adoc +++ b/docs/guides/modules/execution-managed/pages/remote-docker-images-support-policy.adoc @@ -48,6 +48,8 @@ Image lifespan will generally follow the support status of Docker Engine by Dock Current Deprecation: +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Version @@ -62,6 +64,7 @@ Current Deprecation: | Docker 27 | Set to `default` and `edge` tags. `docker27` tag is maintained for Docker 27 as default tag as well. |=== +-- Example: When Docker 28 is released: @@ -70,6 +73,8 @@ Rather than risk disruption for our customers, we chose to stay on the stable an With the release of 28.3.3, the previous issues appear to have been resolved. We are now preparing to validate and roll out the upgrade to ensure a smooth transition. +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Version @@ -87,6 +92,7 @@ We are now preparing to validate and roll out the upgrade to ensure a smooth tra | Docker 28 | Set to `default` and `edge` tags. With `docker28` tag for pinning Docker version. |=== +-- When an image is selected for deprecation and removal, we will create an announcement on our Discuss forum and along with additional outreach where possible. diff --git a/docs/guides/modules/execution-managed/pages/using-docker.adoc b/docs/guides/modules/execution-managed/pages/using-docker.adoc index eee10bec6d..26bbaf5001 100644 --- a/docs/guides/modules/execution-managed/pages/using-docker.adoc +++ b/docs/guides/modules/execution-managed/pages/using-docker.adoc @@ -112,6 +112,8 @@ Choosing Docker limits your runs to what is possible from within a Docker contai The table below shows tradeoffs between using a `docker` image versus an Ubuntu-based `machine` image as the environment for the container: +[.table-scroll] +-- [cols="2,1,1", options="header"] |=== | Capability | `docker` | `machine` @@ -164,6 +166,7 @@ The table below shows tradeoffs between using a `docker` image versus an Ubuntu- | Yes | Yes |=== +-- ^(1)^ Some less commonly used execution environments may see up to 90 seconds of start time. diff --git a/docs/guides/modules/execution-managed/pages/windows-images-support-policy.adoc b/docs/guides/modules/execution-managed/pages/windows-images-support-policy.adoc index 83f2f50640..ff1ae34016 100644 --- a/docs/guides/modules/execution-managed/pages/windows-images-support-policy.adoc +++ b/docs/guides/modules/execution-managed/pages/windows-images-support-policy.adoc @@ -54,6 +54,8 @@ After the new version of Windows Server has been released, we will then move the Current deprecation: +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Version @@ -65,9 +67,12 @@ Current deprecation: | Windows Server 2022 | `current` and `edge` tags retained |=== +-- Example: When Windows Server 2025 is released +[.table-scroll] +-- [cols=2*, options="header"] |=== | Version @@ -82,6 +87,7 @@ Example: When Windows Server 2025 is released | Windows Server 2025 | `current` and `edge` tags retained |=== +-- When an image is selected for deprecation and removal, we will create an announcement on our Discuss forum and along with additional outreach where possible. diff --git a/docs/guides/modules/execution-managed/pages/xcode-policy.adoc b/docs/guides/modules/execution-managed/pages/xcode-policy.adoc index 654c7b2611..6f513d9d6c 100644 --- a/docs/guides/modules/execution-managed/pages/xcode-policy.adoc +++ b/docs/guides/modules/execution-managed/pages/xcode-policy.adoc @@ -17,6 +17,8 @@ We support the three latest Xcode versions released. In addition, we will always For example, with Xcode 16 being the latest major version being released: +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Xcode Version | Action @@ -33,9 +35,12 @@ For example, with Xcode 16 being the latest major version being released: | Xcode 13 | We will retain the last major.minor version |=== +-- Future example, when Xcode 26 is released: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Xcode Version | Action @@ -55,6 +60,7 @@ Future example, when Xcode 26 is released: | Xcode 13 | Flagged for deprecation, removed entirely when Xcode 26 reaches GA |=== +-- Betas of new major versions of Xcode are shipped by Apple during WWDC, which usually occurs in early-mid June each year. diff --git a/docs/guides/modules/execution-runner/pages/container-runner-performance-benchmarks.adoc b/docs/guides/modules/execution-runner/pages/container-runner-performance-benchmarks.adoc index 22367ccdf5..11276a2b11 100644 --- a/docs/guides/modules/execution-runner/pages/container-runner-performance-benchmarks.adoc +++ b/docs/guides/modules/execution-runner/pages/container-runner-performance-benchmarks.adoc @@ -22,10 +22,9 @@ The tables below detail the aggregation of results from testing the link:https:/ Distilling the differences between GOAT and the 3.0 self-hosted runner, there is a net improvement across all four categories, with the most notable being the reduction in queue times. GOAT also demonstrated a minor but notable decrease in failed runs, showing an improvement when run under stress. -[tabs] -==== -goat:: -+ +== GOAT benchmarks + +[.table-scroll] -- [cols=13, options="header"] |=== @@ -555,8 +554,10 @@ h| Improvement From 3.0 | 60% |=== -- -Version 3:: -+ + +== Version 3 benchmarks + +[.table-scroll] -- [cols="9", options="header"] |=== @@ -602,15 +603,17 @@ Version 3:: | | | | | *Max* | 6413 | 113833 | 207405 | 31100 |=== -- -==== In summary, the average improvements of GOAT are as follows: +[.table-scroll] +-- [cols="4", options="header"] |=== | Average Run Time | Max Run Time | Average Queue Time | Max Queue Time | 5% | 1% | 56% | 49% |=== +-- In some instances, GOAT showed lower performance than the 3.0 self-hosted runner. In these cases, the differences are on the order of milliseconds and can often be attributed to cluster, network, and compute conditions. While some differences may appear extreme, they are often outliers in the 95th (or higher) percentile. The table above is the result of repeating the experiment four times for each row. When these extremes are considered in the context of the rest of the experiments, the net result is still positive for run times. diff --git a/docs/guides/modules/execution-runner/pages/runner-api.adoc b/docs/guides/modules/execution-runner/pages/runner-api.adoc index f34b372f42..fa11b4819f 100644 --- a/docs/guides/modules/execution-runner/pages/runner-api.adoc +++ b/docs/guides/modules/execution-runner/pages/runner-api.adoc @@ -15,6 +15,8 @@ The CircleCI's self-hosted runner API contains different authentication methods. This authentication method is based on personal tokens and follows the same rules for CircleCI v2 API. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Name @@ -26,6 +28,7 @@ This authentication method is based on personal tokens and follows the same rule | HTTP Basic auth username | The token can be provided using the Basic scheme, where username should be set as the `` and the password should be left blank. |=== +-- [#browser-session-authentication] === Browser session authentication @@ -40,6 +43,8 @@ This token is generated when creating a new resource class. This token is only d [#supported-methods] ==== Supported methods +[.table-scroll] +-- [cols=2*, options="header"] |=== | Name @@ -48,6 +53,7 @@ This token is generated when creating a new resource class. This token is only d | HTTP Bearer auth | The token that should be provided using the Bearer scheme. |=== +-- [#endpoints] == Endpoints @@ -67,6 +73,8 @@ Lists the available self-hosted runners based on the specified parameters. It is [#get-api-v3-runner-request] ==== Request +[.table-scroll] +-- [cols=5*, options="header"] |=== | Name @@ -87,6 +95,7 @@ Lists the available self-hosted runners based on the specified parameters. It is | false | filters the list of self-hosted runners by namespace. |=== +-- [#get-api-v3-runner-examples] ==== Examples @@ -104,6 +113,8 @@ curl -X GET https://runner.circleci.com/api/v3/runner?namespace=test-namespace \ [#get-api-v3-runner-response] ==== Response +[.table-scroll] +-- [cols=3*, options="header"] |=== | Status @@ -114,10 +125,13 @@ curl -X GET https://runner.circleci.com/api/v3/runner?namespace=test-namespace \ |List of agents |JSON |=== +-- [#get-api-v3-runner-response-schema] ==== Response schema +[.table-scroll] +-- [cols=4*, options="header"] |=== | Name @@ -165,6 +179,7 @@ curl -X GET https://runner.circleci.com/api/v3/runner?namespace=test-namespace \ |true |version of the machine runner launch-agent running |=== +-- [#get-api-v3-runner-example] ==== Example @@ -202,6 +217,8 @@ Get the number of unclaimed tasks for a given resource class. [#get-api-v3-tasks-request] ==== Request +[.table-scroll] +-- [cols=5*, options="header"] |=== | Name @@ -216,6 +233,7 @@ Get the number of unclaimed tasks for a given resource class. | true | filters tasks by specific resource class. |=== +-- [#get-api-v3-tasks-examples] ==== Examples @@ -228,6 +246,8 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks?resource-class=test- [#get-api-v3-tasks-response] ==== Response +[.table-scroll] +-- [cols=3*, options="header"] |=== | Status @@ -238,10 +258,13 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks?resource-class=test- |Number of unclaimed tasks |JSON |=== +-- [#get-api-v3-tasks-response-schema] ==== Response schema +[.table-scroll] +-- [cols=4*, options="header"] |=== | Name @@ -254,6 +277,7 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks?resource-class=test- |true |number of unclaimed tasks |=== +-- [#get-api-v3-tasks-example] ==== Example @@ -281,6 +305,8 @@ Get the number of running tasks for a given resource class. [#get-api-v3-tasks-running-request] ==== Request +[.table-scroll] +-- [cols=5*, options="header"] |=== | Name @@ -295,6 +321,7 @@ Get the number of running tasks for a given resource class. | true | filters tasks by specific resource class. |=== +-- [#get-api-v3-tasks-running-examples] ==== Examples @@ -307,6 +334,8 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks/running?resource-cla [#get-api-v3-tasks-running-response] ==== Response +[.table-scroll] +-- [cols=3*, options="header"] |=== | Status @@ -317,10 +346,13 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks/running?resource-cla |Number of running tasks |JSON |=== +-- [#get-api-v3-tasks-running-response-schema] ==== Response schema +[.table-scroll] +-- [cols="2,1,1,2", options="header"] |=== | Name @@ -333,6 +365,7 @@ curl -X GET https://runner.circleci.com/api/v3/runner/tasks/running?resource-cla |true |number of running tasks |=== +-- [#get-api-v3-tasks-running-example] ==== Example diff --git a/docs/guides/modules/execution-runner/pages/runner-feature-comparison-matrix.adoc b/docs/guides/modules/execution-runner/pages/runner-feature-comparison-matrix.adoc index eab53c58ad..605dc1a7b9 100644 --- a/docs/guides/modules/execution-runner/pages/runner-feature-comparison-matrix.adoc +++ b/docs/guides/modules/execution-runner/pages/runner-feature-comparison-matrix.adoc @@ -8,6 +8,8 @@ This page offers a comparison of the features available for CircleCI machine run [#feature-comparison-matrix] == Comparison matrix +[.table-scroll] +-- [cols=4*, options="header"] |=== |Feature @@ -65,6 +67,7 @@ This page offers a comparison of the features available for CircleCI machine run |Working directory cleanup |Container lifecycle |=== +-- [#feature-highlights] diff --git a/docs/guides/modules/insights/pages/insights-glossary.adoc b/docs/guides/modules/insights/pages/insights-glossary.adoc index 5e4fd4ba9a..a15e3e77fa 100644 --- a/docs/guides/modules/insights/pages/insights-glossary.adoc +++ b/docs/guides/modules/insights/pages/insights-glossary.adoc @@ -13,6 +13,8 @@ This document provides definitions for all the metrics in CircleCI Insights. You General metrics appear across the Insights experience and can refer to different entities, depending on the context. For example, the `Runs` metric may refer to a count of workflow executions or jobs, depending on the context. +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Term | Definition @@ -37,6 +39,7 @@ _Medians are a better measure of central tendency than arithmetic means because | Success Rate | The percentage of runs that completed successfully, excluding cancelled runs. Calculated by `100 x (Successful Runs / All Runs - Cancelled Runs)` |=== +-- [#organization-level-metrics] == Organization-level metrics @@ -45,6 +48,8 @@ image::guides:ROOT:insights-org-metrics.png[Organization-level metrics example] Organization-level metrics allow you to analyze your organization's performance. +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Term | Definition @@ -61,12 +66,15 @@ Organization-level metrics allow you to analyze your organization's performance. | Overall Success Rate | The percentage of runs that completed successfully across all runs in the selected projects and workflows. Excludes cancelled runs. (calculated by `100 x (All Successful Runs/ All Runs - Cancelled Runs)`) |=== +-- [#workflow-metrics] == Workflow Metrics image::guides:ROOT:insights-workflow-metrics.png[Workflow metrics example] +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Term | Definition @@ -81,6 +89,7 @@ _If there are no failed builds (and thus no recoveries) in the current time wind | Throughput | The average (mean) number of builds of any status per day. Calculated by `Sum of builds/ # of days.` |=== +-- [#trends] == Trends diff --git a/docs/guides/modules/integration/pages/outbound-webhooks.adoc b/docs/guides/modules/integration/pages/outbound-webhooks.adoc index 166ec7fc8f..f964a07c68 100644 --- a/docs/guides/modules/integration/pages/outbound-webhooks.adoc +++ b/docs/guides/modules/integration/pages/outbound-webhooks.adoc @@ -40,6 +40,8 @@ To configure webhooks within the CircleCI app: + NOTE: The test ping event has an abbreviated payload for ease of testing. See full examples for xref:reference:ROOT:outbound-webhooks-reference.adoc#sample-webhook-payloads[sample webhook payloads] section of the webhooks reference. +[.table-scroll] +-- [cols="2,1,2", options="header"] |=== | Field | Required? | Intent @@ -64,6 +66,7 @@ NOTE: The test ping event has an abbreviated payload for ease of testing. See fu | Y | You must select at least one event that will trigger a webhook |=== +-- [#communication-protocol] == Communication protocol for outbound webhooks @@ -83,6 +86,8 @@ If you have feedback about timeouts and retries, link:https://circleci.canny.io/ A number of HTTP headers are set on webhooks, as detailed in the table below. +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Header name | Value @@ -99,6 +104,7 @@ A number of HTTP headers are set on webhooks, as detailed in the table below. | `circleci-signature` | When present, this signature can be used to verify that the sender of the webhook has access to the secret token. |=== +-- [#validate-webhooks] == Validate outbound webhooks @@ -118,6 +124,8 @@ The v1 signature is the HMAC-SHA256 digest of the request body, using the config Here are some example signatures for given request bodies: +[.table-scroll] +-- [cols=3*, options="header"] |=== | Body | Secret Key | Signature @@ -134,6 +142,7 @@ Here are some example signatures for given request bodies: | `hunter123` | `9be2242094a9a8c00c64306f382a7f9d691de910b4a266f67bd314ef18ac49fa` |=== +-- The following is an example of how you might validate signatures in Python: @@ -179,6 +188,8 @@ verify_signature( CircleCI currently offers outbound webhooks for the following events: +[.table-scroll] +-- [cols=4*, options="header"] |=== | Event type | Description | Potential status | Included sub-entities @@ -200,6 +211,7 @@ a| * "success" * "unauthorized" | project, organization, workflow, pipeline, job |=== +-- [#next-steps] == Next steps diff --git a/docs/guides/modules/integration/pages/using-the-circleci-github-app-in-an-oauth-org.adoc b/docs/guides/modules/integration/pages/using-the-circleci-github-app-in-an-oauth-org.adoc index 77873771dd..001d930e2d 100644 --- a/docs/guides/modules/integration/pages/using-the-circleci-github-app-in-an-oauth-org.adoc +++ b/docs/guides/modules/integration/pages/using-the-circleci-github-app-in-an-oauth-org.adoc @@ -25,6 +25,8 @@ Compared to the GitHub OAuth app, the GitHub App offers increased control over t TIP: The majority of new CircleCI work triggering functionality will be made available through the GitHub App integration. We recommend installing the CircleCI GitHub App to ensure access to all new features. +[.table-scroll] +-- [options="header",cols="1,1,1,1"] |=== |Organization type identified by URL @@ -47,6 +49,7 @@ TIP: The majority of new CircleCI work triggering functionality will be made ava |Not available |- |=== +-- == Project types Projects are the same for all integration types. @@ -56,6 +59,8 @@ When both GitHub integrations are installed in the same organization, different TIP: All GitHub pipeline types can be managed through menu:Project settings[Project setup]. +[.table-scroll] +-- [options="header",cols="1,2,2"] |=== | @@ -118,10 +123,13 @@ _Used to trigger pipelines on a schedule (nightly builds for example)_ *API / Manual* + GitHub App pipelines can be triggered via API and manually through the CircleCI web app. |=== +-- === Summary of trigger availability by pipeline type The following table summarizes the trigger availability by pipeline type. +[.table-scroll] +-- [options="header",cols="1,1,1,1,1,1"] |=== |Pipeline type @@ -145,6 +153,7 @@ The following table summarizes the trigger availability by pipeline type. ^|Zero, one, many ^|[.circle-green]#*Yes*# |=== +-- diff --git a/docs/guides/modules/integration/pages/version-control-system-integration-overview.adoc b/docs/guides/modules/integration/pages/version-control-system-integration-overview.adoc index 50f19f6257..daf9236d68 100644 --- a/docs/guides/modules/integration/pages/version-control-system-integration-overview.adoc +++ b/docs/guides/modules/integration/pages/version-control-system-integration-overview.adoc @@ -33,6 +33,8 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration === Code checkout and repository integration +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1", options="header"] |=== | Feature | GitHub App | GitLab | GitLab self-managed | GitHub OAuth | Bitbucket Cloud | Bitbucket Data Center | CircleCI server @@ -91,6 +93,7 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration | [.circle-red]#**No**# | [.circle-red]#**No**# |=== +-- ^1^ _Possible using xref:orchestrate:dynamic-config.adoc[dynamic configuration]._ @@ -103,6 +106,8 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration === Pipeline triggers and integrations +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1", options="header"] |=== | Feature | GitHub App | GitLab | GitLab self-managed | GitHub OAuth | Bitbucket Cloud | Bitbucket Data Center | CircleCI server @@ -161,6 +166,7 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration | [.circle-green]#**Yes**# | [.circle-green]#**Yes**# |=== +-- ^1^ _One alternative is to use a xref:orchestrate:custom-webhooks.adoc[custom webhook] to generate a URL that you `curl` with a 3rd party scheduling tool._ @@ -172,6 +178,8 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration === Core capabilities +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1", options="header"] |=== | Feature | GitHub App | GitLab | GitLab self-managed | GitHub OAuth | Bitbucket Cloud | Bitbucket Data Center | CircleCI server @@ -284,9 +292,12 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration | [.circle-green]#**Yes**# |=== +-- === Security and permissions +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1", options="header"] |=== | Feature | GitHub App | GitLab | GitLab self-managed | GitHub OAuth | Bitbucket Cloud | Bitbucket Data Center | CircleCI server @@ -335,9 +346,12 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration | [.circle-green]#**Yes**# | [.circle-green]#**Yes**# |=== +-- === Open source support +[.table-scroll] +-- [cols="3,1,1,1,1,1,1,1", options="header"] |=== | Feature | GitHub App | GitLab | GitLab self-managed | GitHub OAuth | Bitbucket | Bitbucket Data Center | CircleCI server @@ -369,3 +383,4 @@ include::ROOT:partial$tips/check-github-type.adoc[Check your GitHub integration | [.circle-green]#**Yes**# |=== +-- diff --git a/docs/guides/modules/migrate/pages/migrating-from-github.adoc b/docs/guides/modules/migrate/pages/migrating-from-github.adoc index 9eb0782616..c7b73915d8 100644 --- a/docs/guides/modules/migrate/pages/migrating-from-github.adoc +++ b/docs/guides/modules/migrate/pages/migrating-from-github.adoc @@ -63,6 +63,7 @@ workflows: requires: - job_1 ---- + |=== -- diff --git a/docs/guides/modules/migrate/pages/migrating-from-teamcity.adoc b/docs/guides/modules/migrate/pages/migrating-from-teamcity.adoc index 6de1bea4f1..07db511406 100644 --- a/docs/guides/modules/migrate/pages/migrating-from-teamcity.adoc +++ b/docs/guides/modules/migrate/pages/migrating-from-teamcity.adoc @@ -89,6 +89,7 @@ jobs: - checkout - run: echo "Hello World!" ---- + |=== -- @@ -96,6 +97,7 @@ jobs: -- [cols=2*, options="header"] |=== + | TeamCity _settings.kts_ | Equivalent CircleCI _config.yml_ a| @@ -141,6 +143,7 @@ jobs: - checkout - run: echo "Hello World!" ---- + |=== -- @@ -195,6 +198,7 @@ workflows: # Job definitions assumed ---- + |=== -- @@ -202,6 +206,7 @@ workflows: -- [cols=2*, options="header"] |=== + | TeamCity Build Chain | Equivalent CircleCI Workflow a| @@ -247,8 +252,10 @@ workflows: # Job definitions assumed ---- + |=== -- + For more information on CircleCI Concepts, visit our https://circleci.com/docs/concepts/[Concepts] and https://circleci.com/docs/pipelines/#section=pipelines[Pipelines] documentation pages. == Configuration @@ -280,9 +287,9 @@ Subsequently, this flexibility allows steps to be adapted to any language, frame include::ROOT:partial$notes/docker-auth.adoc[] -[.table.table-striped.table-migrating-page.table-no-background] -[cols=2*, options="header,unbreakable,autowidth", stripes=even] -[cols="5,5"] +[.table-scroll] +-- +[cols="5,5", options="header"] |=== | TeamCity Steps | Equivalent CircleCI Steps @@ -346,82 +353,10 @@ jobs: name: Clean and Package command: mvn clean package ---- -|=== -[.table.table-striped.table-migrate-mobile] -[cols=1*, options="header", stripes=even] -[cols="100%"] |=== -| TeamCity Steps - -a| -[source, kotlin] ----- -project { - parallel { - build(Gradle) # Assume agent configured - build(Maven) # Assume agent configured - } -} - -object Gradle: BuildType({ - name = "Gradle" - - steps { - gradle { - tasks = "clean build" - } - } -}) - -object Maven: BuildType({ - name = "Maven" - - steps { - maven { - goals = "clean package" - } - } -}) ----- -|=== - -[.table.table-striped.table-migrate-mobile] -[cols=1*, options="header", stripes=even] -[cols="100%"] -|=== -| Equivalent CircleCI Steps - -a| -[source, yaml] ----- -version: 2.1 -workflows: - parallel-workflow: - jobs: - - Gradle - - Maven - -jobs: - Gradle: - docker: - - image: cimg/openjdk:17.0.1 - steps: - - checkout # Checks out source code - - run: - name: Clean and Build - command: ./gradlew clean build +-- - Maven: - docker: - - image: cimg/openjdk:17.0.1 - steps: - - checkout # Checks out source code - - run: - name: Clean and Package - command: mvn clean package ----- -|=== [#build-templates-meta-runners] === Build templates/meta-runners diff --git a/docs/guides/modules/migrate/pages/migrating-from-travis.adoc b/docs/guides/modules/migrate/pages/migrating-from-travis.adoc index a4837ff68d..ab67017cb0 100644 --- a/docs/guides/modules/migrate/pages/migrating-from-travis.adoc +++ b/docs/guides/modules/migrate/pages/migrating-from-travis.adoc @@ -33,6 +33,8 @@ will live in `.circleci/config.yml` at the root of your repository. Below, you'll find a side-by-side comparison of different configuration declarations. +[.table-scroll] +-- [cols="2,2,3", options="header"] |=== | Travis CI | CircleCI | Description @@ -90,6 +92,7 @@ Below, you'll find a side-by-side comparison of different configuration declarat | xref:reference:ROOT:configuration-reference.adoc#requires[`requires`] | Use the requires: element to define job dependencies and control concurrent jobs in workflows. |=== +-- [#building-on-pushing-code] == Building on pushing code diff --git a/docs/guides/modules/optimize/pages/artifacts.adoc b/docs/guides/modules/optimize/pages/artifacts.adoc index 891b84d459..d18c983377 100644 --- a/docs/guides/modules/optimize/pages/artifacts.adoc +++ b/docs/guides/modules/optimize/pages/artifacts.adoc @@ -183,6 +183,8 @@ curl --silent --request GET --url https://circleci.com/api/v2/workflow/:workflow You can read more about using CircleCI's API to interact with artifacts in our link:../../../api/v1/#artifacts[API reference guide]. +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Placeholder | Meaning @@ -202,6 +204,7 @@ You can read more about using CircleCI's API to interact with artifacts in our l | `:build_num` | The number of the job (aka. build) for which you want to download artifacts. |=== +-- [#artifacts-and-self-hosted-runner] == Artifact storage customization diff --git a/docs/guides/modules/optimize/pages/caching.adoc b/docs/guides/modules/optimize/pages/caching.adoc index 111e47e7b3..471e2313d0 100644 --- a/docs/guides/modules/optimize/pages/caching.adoc +++ b/docs/guides/modules/optimize/pages/caching.adoc @@ -312,6 +312,8 @@ The following are examples of caching strategies for different goals: During step execution, the templates above are replaced by runtime values and use the resultant string as the `key`. The following table describes the available cache `key` templates: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Template | Description @@ -337,6 +339,7 @@ During step execution, the templates above are replaced by runtime values and us | `{{ arch }}` | Captures OS and CPU (architecture, family, model) information. Useful when caching compiled binaries that depend on OS and CPU architecture, for example, `darwin-amd64-6_58` versus `linux-amd64-6_62`. See xref:reference:ROOT:faq.adoc#cpu-architecture-circleci-support[supported CPU architectures]. |=== +-- [#further-notes-on-using-keys-and-templates] === Further notes on using keys and templates diff --git a/docs/guides/modules/optimize/pages/java-oom.adoc b/docs/guides/modules/optimize/pages/java-oom.adoc index 51cea5daf5..dbbe1f89d0 100644 --- a/docs/guides/modules/optimize/pages/java-oom.adoc +++ b/docs/guides/modules/optimize/pages/java-oom.adoc @@ -72,6 +72,8 @@ The lower the number, the higher the precedence level, with 0 being the highest. +[.table-scroll] +-- [cols="2,1,1,1,1,1", options="header"] |=== | Java Environment Variable | Java | Gradle | Maven | Kotlin | Lein @@ -132,6 +134,7 @@ with 0 being the highest. | no | no |=== +-- The above environment variables are listed below, along with details on why to choose one over another. diff --git a/docs/guides/modules/optimize/pages/parallelism-faster-jobs.adoc b/docs/guides/modules/optimize/pages/parallelism-faster-jobs.adoc index 3fce9552e6..58ce6712d1 100644 --- a/docs/guides/modules/optimize/pages/parallelism-faster-jobs.adoc +++ b/docs/guides/modules/optimize/pages/parallelism-faster-jobs.adoc @@ -181,6 +181,8 @@ Use the `circleci tests run` command to run your tests, split your tests across The following table show a full list of option flags available when using `circleci tests run`. +[.table-scroll] +-- |=== | Flag | Type | Description | Required? @@ -214,6 +216,7 @@ The following table show a full list of option flags available when using `circl | enable verbose logging output. | No |=== +-- [#the-tests-split-command] === The tests split command diff --git a/docs/guides/modules/optimize/pages/persist-data.adoc b/docs/guides/modules/optimize/pages/persist-data.adoc index 466e15a7e1..121b97c16a 100644 --- a/docs/guides/modules/optimize/pages/persist-data.adoc +++ b/docs/guides/modules/optimize/pages/persist-data.adoc @@ -7,6 +7,8 @@ This guide gives an introductory overview of the various ways to persist and opt Note the following distinctions between artifacts, workspaces, and caches: +[.table-scroll] +-- [cols="1,2,2", options="header"] |=== | Type | Use | Example @@ -23,6 +25,7 @@ Note the following distinctions between artifacts, workspaces, and caches: | Store non-vital data that may help the job run faster, for example npm or Gem packages. | The `save_cache` job step with a `path` to a list of directories to add and a `key` to uniquely identify the cache (for example, the branch, build number, or revision). Restore the cache with `restore_cache` and the appropriate `key`. |=== +-- [#caching] == Caching diff --git a/docs/guides/modules/orchestrate/pages/github-trigger-event-options.adoc b/docs/guides/modules/orchestrate/pages/github-trigger-event-options.adoc index fd3d3c04af..0bb69e2698 100644 --- a/docs/guides/modules/orchestrate/pages/github-trigger-event-options.adoc +++ b/docs/guides/modules/orchestrate/pages/github-trigger-event-options.adoc @@ -68,6 +68,8 @@ The following two pipeline values are available for all GitHub App pipelines. Us The available GitHub App options for these values are listed in the following table: +[.table-scroll] +-- [cols=3*, options="header"] |=== |Trigger type @@ -88,6 +90,7 @@ a| * `opened` * `labeled` |=== +-- All pipelines triggered by link:https://docs.github.com/en/webhooks/webhook-events-and-payloads#pull_request[pull request events] also have the following xref:reference:ROOT:variables.adoc#pipeline-values[pipeline values] populated: diff --git a/docs/guides/modules/orchestrate/pages/jobs-steps.adoc b/docs/guides/modules/orchestrate/pages/jobs-steps.adoc index 69c3aeeb26..d2cd3f1424 100644 --- a/docs/guides/modules/orchestrate/pages/jobs-steps.adoc +++ b/docs/guides/modules/orchestrate/pages/jobs-steps.adoc @@ -134,6 +134,8 @@ stateDiagram-v2 unauthorized --> [*] ---- +[.table-scroll] +-- [cols="1,2", options="header"] |=== | Status | Description @@ -155,6 +157,7 @@ stateDiagram-v2 | Unauthorized | The job uses a restricted context and the actor that triggered the work does NOT have access to that context. |=== +-- [#steps-overview] == Steps overview diff --git a/docs/guides/modules/orchestrate/pages/workflows.adoc b/docs/guides/modules/orchestrate/pages/workflows.adoc index 9fde7308a9..50060fd8de 100644 --- a/docs/guides/modules/orchestrate/pages/workflows.adoc +++ b/docs/guides/modules/orchestrate/pages/workflows.adoc @@ -922,6 +922,8 @@ stateDiagram-v2 Workflows may have one of the following states: +[.table-scroll] +-- [cols="2,2,1", options="header"] |=== | State | Description | Terminal state @@ -963,6 +965,7 @@ Workflows may have one of the following states: | No |=== +-- NOTE: After 90 days non-terminal workflows are automatically cancelled by CircleCI. diff --git a/docs/guides/modules/permissions-authentication/pages/openid-connect-tokens.adoc b/docs/guides/modules/permissions-authentication/pages/openid-connect-tokens.adoc index 41e976a79b..7c6ef09df6 100644 --- a/docs/guides/modules/permissions-authentication/pages/openid-connect-tokens.adoc +++ b/docs/guides/modules/permissions-authentication/pages/openid-connect-tokens.adoc @@ -62,6 +62,7 @@ For `$CIRCLE_OIDC_TOKEN_V2` its value depends on the xref:orchestrate:triggers-o | `exp` | The expiration time. Its value is one hour after the time of issuance. + |=== -- @@ -295,6 +296,9 @@ After navigating to the **Grant Access** section of the GCP web UI, follow these + Configuring the provider attributes provides an opportunity to map claims in CircleCI's Token to Google's "understanding". Use this mapping: + + +[.table-scroll] +-- [cols="1,2"] |=== | `google.subject` @@ -306,6 +310,7 @@ Configuring the provider attributes provides an opportunity to map claims in Cir | `attribute.project` | `assertion['oidc.circleci.com/project-id']` |=== +-- + . Navigate to **Service Account** in the IAM & Admin Panel to create a service account, and give appropriate permission. . Navigate back to **Workload Identity Federation** and select the provider from the table. @@ -371,6 +376,8 @@ echo $CIRCLE_OIDC_TOKEN >> CIRCLE_OIDC_TOKEN_FILE You will also need to add the following environment variables to a xref:security:contexts.adoc[context]. +[.table-scroll] +-- [cols=3*, options="header"] |=== | **Context var name** @@ -393,6 +400,7 @@ You will also need to add the following environment variables to a xref:security | `myserviceacct@myproject.iam.gserviceaccount.com` | https://cloud.google.com/iam/docs/service-accounts#user-managed[User-managed Service Accounts] |=== +-- Below is a full example configuration adding GCP to a job and demonstrating that authentication works with the `gcp-oidc-authenticate` command. This example uses the link:https://circleci.com/developer/orbs/orb/circleci/gcp-cli[`circleci/gcp-cli` orb]. Note that you can enable the use of OIDC token when using `circleci/gcp-cli` orb version 3.0.0 or later. diff --git a/docs/guides/modules/permissions-authentication/pages/roles-and-permissions-overview.adoc b/docs/guides/modules/permissions-authentication/pages/roles-and-permissions-overview.adoc index e4889397f1..edf2c469e0 100644 --- a/docs/guides/modules/permissions-authentication/pages/roles-and-permissions-overview.adoc +++ b/docs/guides/modules/permissions-authentication/pages/roles-and-permissions-overview.adoc @@ -17,6 +17,8 @@ For instructions on managing roles and permissions, see the xref:manage-roles-an The table below shows the permissions associated with each CircleCI organization role: +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -112,7 +114,10 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -127,8 +132,12 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-green]#**Yes**# ^| [.circle-green]#**Yes**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -148,10 +157,15 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| ORGANIZATION ROLES @@ -174,8 +188,12 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -205,10 +223,15 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| ORGANIZATION ROLES @@ -236,8 +259,12 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -267,10 +294,15 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| ORGANIZATION ROLES @@ -288,10 +320,15 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| ORGANIZATION ROLES @@ -314,10 +351,15 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| ORGANIZATION ROLES @@ -335,8 +377,12 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -386,7 +432,9 @@ The table below shows the permissions associated with each CircleCI organization ^| [.circle-green]#**Yes**# ^| [.circle-green]#**Yes**# ^| [.circle-green]#**Yes**# + |=== +-- [#project-role-permissions-matrix] @@ -394,8 +442,11 @@ The table below shows the permissions associated with each CircleCI organization The table below shows the permissions associated with each CircleCI project role: +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| PROJECT ROLES @@ -428,10 +479,15 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| PROJECT ROLES @@ -449,10 +505,15 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| PROJECT ROLES @@ -470,8 +531,13 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- + +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -496,8 +562,12 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -529,9 +599,13 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-red]#**No**# |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== + | ACTIONS 3+^| PROJECT ROLES @@ -549,8 +623,12 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-green]#**Yes**# ^| [.circle-red]#**No**# ^| [.circle-red]#**No**# + |=== +-- +[.table-scroll] +-- [cols=4*, options="header"] |=== | ACTIONS @@ -592,6 +670,7 @@ The table below shows the permissions associated with each CircleCI project role ^| [.circle-red]#**No**# |=== +-- [#permissions-scope] == Permissions scope diff --git a/docs/guides/modules/security/pages/audit-logs.adoc b/docs/guides/modules/security/pages/audit-logs.adoc index c9a7c621e1..5de1930d62 100644 --- a/docs/guides/modules/security/pages/audit-logs.adoc +++ b/docs/guides/modules/security/pages/audit-logs.adoc @@ -387,6 +387,8 @@ The following list shows common and important events found in the audit log. Thi == Audit log fields +[.table-scroll] +-- [cols="1,4", options="header"] |=== | Field | Description @@ -401,4 +403,5 @@ The following list shows common and important events found in the audit log. Thi | `scope` | If the target is owned by an Account in the CircleCI domain model, the account field should be filled in with the Account name and ID. This data is a JSON blob that will always contain `id` and `type` and will likely contain `name`. | `success` | A flag to indicate if the action was successful. | `request` | If this event was triggered by an external request, this data will be populated and may be used to connect events that originate from the same external request. The format is a JSON blob containing `id` (the unique ID assigned to this request by CircleCI). -|=== \ No newline at end of file +|=== +-- \ No newline at end of file diff --git a/docs/guides/modules/security/pages/contexts.adoc b/docs/guides/modules/security/pages/contexts.adoc index 3e47bedaf0..1153b6f754 100644 --- a/docs/guides/modules/security/pages/contexts.adoc +++ b/docs/guides/modules/security/pages/contexts.adoc @@ -333,6 +333,8 @@ xref:orchestrate:pipeline-variables.adoc#pipeline-values[Pipeline values] can be Job-specific variables are also available to use in expressions, as follows: +[.table-scroll] +-- [cols=3*, options="header"] |=== | name | type | description @@ -341,6 +343,7 @@ Job-specific variables are also available to use in expressions, as follows: | boolean | `true` if SSH is enabled for the job, `false` otherwise |=== +-- If an expression references a variable that has no value set in the pipeline, the expression will _fail closed_ and prevent use of the context. @@ -364,6 +367,8 @@ The following table shows operator precedence table, from weakest to strongest b NOTE: All operators are left associative. In practice, you should avoid operator chaining for anything other than `and` or `or`. This is because evaluation may cause type mismatches for other operators (see <>). +[.table-scroll] +-- [cols=2*, options="header"] |=== | Operator | Associativity @@ -386,6 +391,7 @@ NOTE: All operators are left associative. In practice, you should avoid operator | `not` `!` | |=== +-- [#literals] === Literals diff --git a/docs/guides/modules/security/pages/delete-organizations-and-projects.adoc b/docs/guides/modules/security/pages/delete-organizations-and-projects.adoc index 0eb68f6309..3f271b6747 100644 --- a/docs/guides/modules/security/pages/delete-organizations-and-projects.adoc +++ b/docs/guides/modules/security/pages/delete-organizations-and-projects.adoc @@ -7,6 +7,8 @@ This page details everything you need to know about deleting organizations and p If you only want to stop builds for a project and keep the complete build history, see the xref:security:stop-building-a-project-on-circleci.adoc[Stop building a project on CircleCI] page. +[.table-scroll] +-- [cols="1,^1,^1,2", options="header"] |=== | VCS integration | Delete organization | Delete project | Notes @@ -37,6 +39,7 @@ If you only want to stop builds for a project and keep the complete build histor | Deleting the organization removes all content from the organization. The organization will remain visible but without data underneath. |=== +-- [#delete-an-organization] diff --git a/docs/guides/modules/security/pages/rename-organizations-and-repositories.adoc b/docs/guides/modules/security/pages/rename-organizations-and-repositories.adoc index 305c8b8366..3480e310a3 100644 --- a/docs/guides/modules/security/pages/rename-organizations-and-repositories.adoc +++ b/docs/guides/modules/security/pages/rename-organizations-and-repositories.adoc @@ -5,6 +5,8 @@ This page details everything you need to know about renaming organizations and repositories connected to CircleCI. Renaming works differently depending on how your account is connected: +[.table-scroll] +-- [cols="1,1,1,1,2", options="header"] |=== | VCS integration | Rename organization | Rename repository | Rename project | Notes @@ -40,6 +42,7 @@ This page details everything you need to know about renaming organizations and r | Org and repository names map directly to org and project names in CircleCI. Changing either by following <> will update the corresponding name in CircleCI. |=== +-- TIP: To find out if you authorized through the GitHub OAuth app or the CircleCI GitHub App, see the xref:integration:github-apps-integration.adoc[GitHub App integration] page. diff --git a/docs/guides/modules/test/pages/adaptive-testing.adoc b/docs/guides/modules/test/pages/adaptive-testing.adoc index 62c32f380d..5604de2dcb 100644 --- a/docs/guides/modules/test/pages/adaptive-testing.adoc +++ b/docs/guides/modules/test/pages/adaptive-testing.adoc @@ -456,6 +456,8 @@ Check the analysis command is creating a coverage file formatted correctly by ru The following options are available to be defined in the options map in config: +[.table-scroll] +-- [cols=3*, options="header"] |=== |Options Field|Default|Description @@ -491,9 +493,12 @@ Any remaining tests will be analysed the next time test analysis is run. |Whether the tests should be distributed across a shared queue and fetched across multiple dynamic batches. + If a test runner has slow start up time per batch, disabling this can speed up tests. |=== +-- The following flags are available to be defined on the `circleci run testsuite` command. +[.table-scroll] +-- [cols=3*, options="header"] |=== |Flag|Default|Description @@ -512,6 +517,7 @@ a| * `all` selects and runs all discovered tests, used to run the full test suit * `impacted` selects and runs only the tests impacted by a change. + * `none` skips running tests, used to skip straight to analysis. |=== +-- == 3. Start using adaptive testing diff --git a/docs/guides/modules/test/pages/collect-test-data.adoc b/docs/guides/modules/test/pages/collect-test-data.adoc index 0d2faefea6..3f43f8cce5 100644 --- a/docs/guides/modules/test/pages/collect-test-data.adoc +++ b/docs/guides/modules/test/pages/collect-test-data.adoc @@ -91,6 +91,8 @@ For detailed information on how to test your iOS applications, refer to the xref This section provides the following test runner examples: +[.table-scroll] +-- [cols="1,1,2,2", options="header"] |=== | Language | Test Runner | Formatter | Examples @@ -200,6 +202,7 @@ This section provides the following test runner examples: | link:https://cmake.org/cmake/help/latest/manual/ctest.1.html#cmdoption-ctest-output-junit[CTest] | <> |=== +-- [#jest] === Jest diff --git a/docs/guides/modules/test/pages/fix-flaky-tests.adoc b/docs/guides/modules/test/pages/fix-flaky-tests.adoc index f22c7f0e9a..f645d0d6da 100644 --- a/docs/guides/modules/test/pages/fix-flaky-tests.adoc +++ b/docs/guides/modules/test/pages/fix-flaky-tests.adoc @@ -337,6 +337,9 @@ You also get a code diff of the proposed fix along with logs of the decision pro The following table shows the configuration options available when setting up Chunk: .Chunk configuration options + +[.table-scroll] +-- [cols=3*] |=== |Setting |Description |Default @@ -363,6 +366,7 @@ a|* Daily (Sunday through Thursday at 22:00 UTC ) |Limits the number of pull requests Chunk can have open at one time. |1-20 or "Unlimited" (default). |=== +-- == Limitations diff --git a/docs/guides/modules/toolkit/pages/api-intro.adoc b/docs/guides/modules/toolkit/pages/api-intro.adoc index 1227188d85..d5f1f30fa2 100644 --- a/docs/guides/modules/toolkit/pages/api-intro.adoc +++ b/docs/guides/modules/toolkit/pages/api-intro.adoc @@ -26,6 +26,8 @@ For a complete list of all API v2 endpoints, refer to the link:../../../api/v2/[ With API v2, several endpoints from v1 have been deprecated, which are listed in the table below. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Endpoint | Description @@ -39,6 +41,7 @@ With API v2, several endpoints from v1 have been deprecated, which are listed in | `GET /recent-builds` | This endpoint enabled users to retrieve an array of recent builds. |=== +-- [#next-steps] == Next steps diff --git a/docs/guides/modules/toolkit/pages/environment-cli-usage-guide.adoc b/docs/guides/modules/toolkit/pages/environment-cli-usage-guide.adoc index 0d3d1e2b84..bac832c92e 100644 --- a/docs/guides/modules/toolkit/pages/environment-cli-usage-guide.adoc +++ b/docs/guides/modules/toolkit/pages/environment-cli-usage-guide.adoc @@ -117,6 +117,8 @@ A _planned_ deployment is displayed in the Deploys UI with `pending` status. *Flags* +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -136,6 +138,7 @@ A _planned_ deployment is displayed in the Deploys UI with `pending` status. | `namespace` | Optional flag to use a namespace value other than default. |=== +-- *Example usage:* @@ -162,6 +165,8 @@ A subcommand of `release`. Use the `circleci run release update` command to upda *Flags* +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -169,6 +174,7 @@ A subcommand of `release`. Use the `circleci run release update` command to upda | `status` | Update the deploy status (values can be `RUNNING`, `SUCCESS`, or `FAILED`). |=== +-- *Example usage:* @@ -193,6 +199,8 @@ A subcommand of `release`. The `circleci run release log` command allows you to *Flags* +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -209,6 +217,7 @@ A subcommand of `release`. The `circleci run release log` command allows you to | `namespace` | Optional flag to use a namespace value other than default. |=== +-- *Example usage:* @@ -255,6 +264,8 @@ A subcommand of `tests`. Use `circleci tests split` to split grouped tests into *Flags* +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -280,6 +291,7 @@ A subcommand of `tests`. Use `circleci tests split` to split grouped tests into | `timings-file` | JSON file containing historical timing data. |=== +-- *Example usage:* @@ -307,6 +319,8 @@ A subcommand of `Tests`. Use `circleci tests glob` to print files matching the g NOTE: The available flag for the `glob` subcommand is a pattern, and supports the following symbols: +[.table-scroll] +-- [cols="2,3"] |=== | Symbol | Description @@ -326,6 +340,7 @@ following symbols: | `{...}` | Matches a sequence of characters, if any of the alternatives in braces matches. |=== +-- *Example usage:* @@ -350,6 +365,8 @@ A subcommand of `tests`. The `circleci tests run` command splits and runs tests. *Flags* +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -372,6 +389,7 @@ A subcommand of `tests`. The `circleci tests run` command splits and runs tests. | `show-counts` | Print test file or test class counts to stderr (default `false`). |=== +-- *Example usage:* @@ -421,6 +439,8 @@ jobs: == Global flags +[.table-scroll] +-- [cols="2,3"] |=== | Flag | Description @@ -431,6 +451,7 @@ jobs: | `--help` | Show help for a command. |=== +-- *Example usage for `--verbose`:* diff --git a/docs/guides/modules/toolkit/pages/examples-and-guides-overview.adoc b/docs/guides/modules/toolkit/pages/examples-and-guides-overview.adoc index 26a1319217..6fa13774ac 100644 --- a/docs/guides/modules/toolkit/pages/examples-and-guides-overview.adoc +++ b/docs/guides/modules/toolkit/pages/examples-and-guides-overview.adoc @@ -20,6 +20,8 @@ To get a project up and running on CircleCI, see the following quickstart guides We have created demo applications in various languages so you can learn by example. Each language listed below has an associated guide and public repository on GitHub. +[.table-scroll] +-- [cols=3*, options="header"] |=== | Language Guide @@ -46,6 +48,7 @@ We have created demo applications in various languages so you can learn by examp | Flask, Vue.js | link:https://github.com/CircleCI-Public/sample-monorepo-cfd[sample-monorepo-cfd] |=== +-- @@ -54,6 +57,8 @@ We have created demo applications in various languages so you can learn by examp Use the tutorial associated with your platform to learn about the customization that is possible in a xref:reference:ROOT:configuration-reference.adoc[`.circleci/config.yml`]. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Platform guide @@ -68,6 +73,7 @@ Use the tutorial associated with your platform to learn about the customization | xref:execution-managed:hello-world-windows.adoc#example-application[Windows Project Tutorial] | Full example of setting up a .NET project in CircleCI. |=== +-- [#next-steps] == Next steps diff --git a/docs/guides/modules/toolkit/pages/how-to-use-the-circleci-local-cli.adoc b/docs/guides/modules/toolkit/pages/how-to-use-the-circleci-local-cli.adoc index 361a8dd91a..a16c69eb51 100644 --- a/docs/guides/modules/toolkit/pages/how-to-use-the-circleci-local-cli.adoc +++ b/docs/guides/modules/toolkit/pages/how-to-use-the-circleci-local-cli.adoc @@ -733,6 +733,8 @@ circleci policy logs --owner-id [flags] Note that you can filter results using any combination of the following flags: +[.table-scroll] +-- [cols="1,3,2", options="header"] |=== | Flag | Description | Example @@ -749,6 +751,7 @@ Note that you can filter results using any combination of the following flags: | Only include logs for a specific branch. | `--branch feature/fixes` |=== +-- For full details on the `logs` sub-command, refer to the link:https://circleci-public.github.io/circleci-cli/circleci_policy_logs.html[CLI docs]. diff --git a/docs/orbs/modules/author/pages/orb-author.adoc b/docs/orbs/modules/author/pages/orb-author.adoc index 0c0ca99358..a962953070 100644 --- a/docs/orbs/modules/author/pages/orb-author.adoc +++ b/docs/orbs/modules/author/pages/orb-author.adoc @@ -62,6 +62,8 @@ To begin creating orbs, you will need to xref:guides:toolkit:local-cli.adoc#inst Orb CLI commands are scoped to different user permission levels, set by your VCS. You are the owner of your own organization. If you are authoring or publishing orbs for a namespace owned by another organization, you may require assistance from your organization admin: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Orb Command | Permission Scope @@ -81,6 +83,7 @@ Orb CLI commands are scoped to different user permission levels, set by your VCS | `circleci orb publish` production version | Owner |=== +-- [#register-a-namespace] === Register a namespace @@ -123,6 +126,9 @@ $ git branch If you have run the `circleci orb init` command, you will automatically be in the `alpha` branch and have a repository with `.circleci` and `src` directories. .Orb Project Structure + +[.table-scroll] +-- [cols=2*, options="header"] |=== | type | name @@ -145,6 +151,7 @@ If you have run the `circleci orb init` command, you will automatically be in th | File | link:https://github.com/CircleCI-Public/Orb-Template/blob/main/README.md[`README.md`] |=== +-- [#orb-source] ==== Orb source @@ -152,6 +159,9 @@ If you have run the `circleci orb init` command, you will automatically be in th Navigate to the `src` directory to look at the included sections. .Orb Project `src` Directory + +[.table-scroll] +-- [cols=2*, options="header"] |=== | type | name @@ -174,6 +184,7 @@ Navigate to the `src` directory to look at the included sections. | File | link:https://github.com/CircleCI-Public/Orb-Template/blob/main/src/%40orb.yml[`@orb.yml`] |=== +-- The directories listed above represent orb components that can be included with your orb. @orb.yml acts as the root of your orb. In addition to the directories representing your orb's YAML components, you will also see a <> directory where we can store code we want to inject into our components. diff --git a/docs/orbs/modules/author/pages/orb-concepts.adoc b/docs/orbs/modules/author/pages/orb-concepts.adoc index d8afbcdab2..fd7f71fcf2 100644 --- a/docs/orbs/modules/author/pages/orb-concepts.adoc +++ b/docs/orbs/modules/author/pages/orb-concepts.adoc @@ -175,6 +175,8 @@ In Semantic versioning, release versions are represented by three integers separ [Major].[Minor].[Patch] ---- +[.table-scroll] +-- [cols=2*, options="header"] |=== | SemVer | Description @@ -188,9 +190,12 @@ In Semantic versioning, release versions are represented by three integers separ | Patch | Bug fixes. |=== +-- When you import an orb, you can pin it to a particular SemVer component. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Imported Version | Description @@ -207,6 +212,7 @@ When you import an orb, you can pin it to a particular SemVer component. | volatile | *Not Recommended* Will pull the last published version of the orb, may be useful in testing. Not a part of SemVer versioning. |=== +-- To avoid negatively impacting a user's CI process, orb authors should strictly adhere to SemVer versioning to ensure no breaking changes are introduced at the `minor` or `patch` update levels. @@ -295,6 +301,9 @@ All CircleCI orbs are singular YAML files, typically named `orb.yml`. However, f NOTE: If you are using the orb development kit, orb packing is handled automatically, by the included CI/CD pipeline, with the link:https://circleci.com/developer/orbs/orb/circleci/orb-tools#jobs-pack[orb-tools/pack] job. .Orb Project Structure + +[.table-scroll] +-- [cols=2*, options="header"] |=== | type | name @@ -314,6 +323,7 @@ NOTE: If you are using the orb development kit, orb packing is handled automatic | File | link:https://github.com/CircleCI-Public/Orb-Template/blob/main/src/%40orb.yml[@orb.yml] |=== +-- In order to _pack_ an orb, an xref:orb-author.adoc#orbyml[@orb.yml] file must be present. The `@` signifies the _root_ of our orb project. Within the same directory, you can include additional directories for each orb component's type, such as xref:reference:ROOT:reusing-config.adoc#authoring-reusable-commands[commands], xref:reference:ROOT:reusing-config.adoc#authoring-parameterized-jobs[jobs], xref:reference:ROOT:reusing-config.adoc#authoring-reusable-executors[executors], and <>. Any additional files or folders will be safely ignored. diff --git a/docs/orbs/modules/author/pages/orbs-best-practices.adoc b/docs/orbs/modules/author/pages/orbs-best-practices.adoc index 7e41636bb9..92c4179845 100644 --- a/docs/orbs/modules/author/pages/orbs-best-practices.adoc +++ b/docs/orbs/modules/author/pages/orbs-best-practices.adoc @@ -12,6 +12,8 @@ This guide covers best practices for creating orbs. An orb "slug" is made up of a _namespace_ and _orb_ name separated by a forward slash. The namespace represents, the individual, company, or organization that owns and maintains the orb, while the orb name itself should describe the product, service, or action provided by the individual orb. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Proper Orb Slug | Bad Orb Slug @@ -22,6 +24,7 @@ An orb "slug" is made up of a _namespace_ and _orb_ name separated by a forward | `company/orb` | `company/cci-plugin` |=== +-- [#categorize-your-orb] === Categorize your orb @@ -229,6 +232,8 @@ Orb xref:orb-concepts.adoc#usage-examples[Usage Examples] provide an excellent w Be sure to name your usage examples so they reflect the use-case they demonstrate. +[.table-scroll] +-- [cols=2*, options="header"] |=== | Good Usage Example Names | Bad Usage Example Names @@ -239,6 +244,7 @@ Be sure to name your usage examples so they reflect the use-case they demonstrat | `install-cli` | `demo` |=== +-- [#all-public-orbs-should-contain-at-least-one-usage-example] ==== All public orbs should contain at least one usage example. diff --git a/docs/orbs/modules/use/pages/orb-intro.adoc b/docs/orbs/modules/use/pages/orb-intro.adoc index 6b6a1daebe..6e3035fcfb 100644 --- a/docs/orbs/modules/use/pages/orb-intro.adoc +++ b/docs/orbs/modules/use/pages/orb-intro.adoc @@ -189,6 +189,8 @@ CAUTION: In order to use uncertified registry orbs (partner or community), your Orbs in the registry will appear with one of three different namespace designations: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Designation | Description @@ -202,6 +204,7 @@ Orbs in the registry will appear with one of three different namespace designati | Community | Written by the community |=== +-- [#public-or-private] === Public or private diff --git a/docs/reference/modules/ROOT/pages/configuration-reference.adoc b/docs/reference/modules/ROOT/pages/configuration-reference.adoc index a46de50f0a..c605e1088c 100644 --- a/docs/reference/modules/ROOT/pages/configuration-reference.adoc +++ b/docs/reference/modules/ROOT/pages/configuration-reference.adoc @@ -14,6 +14,8 @@ You can see a complete `config.yml` in our <> section below. |=== +-- The following example uses the `node` orb that exists in the certified `circleci` namespace. Refer to the Node orb page in the https://circleci.com/developer/orbs/orb/circleci/node[Orb Registry] for more examples and information. @@ -129,6 +138,8 @@ NOTE: The `commands` key is supported in `version: 2.1` configuration A `command` defines a sequence of steps as a map to be executed in a job, enabling you to reuse a single command definition across multiple jobs. For more information see the xref:reusing-config.adoc#[Reusable Config Reference Guide]. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -148,6 +159,7 @@ A `command` defines a sequence of steps as a map to be executed in a job, enabli | String | A string that describes the purpose of the command. |=== +-- *Example:* @@ -175,6 +187,8 @@ NOTE: The pipeline `parameters` key is supported in `version: 2.1` configuration Use the `parameters` key at the top level of your config to declare _pipeline parameters_ for use in the configuration. See xref:guides:orchestrate:pipeline-variables.adoc#pipeline-parameters-in-configuration[Pipeline Values and Parameters] for usage details. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -184,6 +198,7 @@ Use the `parameters` key at the top level of your config to declare _pipeline pa | Map | A map of parameter keys. Supports `string`, `boolean`, `integer` and `enum` types. See xref:reusing-config.adoc#parameter-syntax[Parameter Syntax] for details. |=== +-- *Example:* @@ -209,6 +224,8 @@ NOTE: The `executors` key is supported in `version: 2.1` configuration Executors define the execution environment in which the steps of a job will be run, allowing you to reuse a single executor definition across multiple jobs. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -253,6 +270,7 @@ Executors define the execution environment in which the steps of a job will be r | Map | A map of environment variable names and values. |=== +-- ^(1)^ One executor type should be specified per job. If more than one is set you will receive an error. @@ -317,6 +335,8 @@ jobs: Each job consists of the job's name as a key and a map as a value. A name should be case insensitive unique within a current `jobs` list. The value map has the following attributes: +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -391,6 +411,7 @@ Each job consists of the job's name as a key and a map as a value. A name should | Map | Configure job retention periods for cache data (1-15 days, for example, "1d", "7d", "15d"). This reduces retention from the organization-level default, automatically removing cache data after the specified period. |=== +-- ^(1)^ One executor type should be specified per job. If more than one is set you will receive an error. @@ -650,6 +671,8 @@ Learn more about execution environments and executors in the xref:guides:executi Configure a job to use the Docker execution environment using the `docker` key which takes a list of maps: +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -694,6 +717,7 @@ Configure a job to use the Docker execution environment using the `docker` key | Map | Authentication for AWS Elastic Container Registry (ECR) |=== +-- For a xref:glossary.adoc#primary-container[primary container], (the first container in the list) if neither `command` nor `entrypoint` is specified in the configuration, then any `ENTRYPOINT` and `COMMAND` in the image are ignored. The primary container is typically only used for running the `steps` and not for its `ENTRYPOINT`, and an `ENTRYPOINT` may consume significant resources or exit prematurely. @@ -819,6 +843,8 @@ NOTE: *Using CircleCI cloud?* The use of `machine: true` is deprecated. You must The machine executor is configured using the `machine` key, which takes a map: +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -833,6 +859,7 @@ The machine executor is configured using the `machine` key, which takes a map: | Boolean | Set this to `true` to enable xref:guides:optimize:docker-layer-caching.adoc#[Docker layer caching]. |=== +-- *Example:* @@ -971,6 +998,8 @@ jobs: CircleCI supports running jobs on link:https://developer.apple.com/macos/[macOS], to allow you to build, test, and deploy apps for macOS, link:https://developer.apple.com/ios/[iOS], link:https://developer.apple.com/tvos/[tvOS] and https://developer.apple.com/watchos/[watchOS]. To run a job on a macOS virtual machine, add the `macos` key to the top-level configuration for your job and specify the version of Xcode to use. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -980,6 +1009,7 @@ CircleCI supports running jobs on link:https://developer.apple.com/macos/[macOS] | String | The version of Xcode that is installed on the virtual machine, see the xref:guides:execution-managed:using-macos.adoc#supported-xcode-versions[Supported Xcode Versions section of the Testing iOS] document for the complete list. |=== +-- *Example:* Use a macOS virtual machine with Xcode version 14.2.0: @@ -1322,6 +1352,8 @@ In this case, the `checkout` step will check out project source code into the jo In general all steps can be described as: +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1331,6 +1363,7 @@ In general all steps can be described as: | Map or String | A configuration map for the step or some string whose semantics are defined by the step. |=== +-- Each built-in step is described in detail below. @@ -1343,6 +1376,8 @@ The `run` step is used to invoke command-line programs. The `run` step takes eit NOTE: the `run` step replaces the deprecated `deploy` step. If your job has a parallelism of 1, the deprecated `deploy` step can be swapped out directly for the `run` step. If your job has parallelism `> 1`, see xref:guides:orchestrate:migrate-from-deploy-to-run.adoc#[Migrate from deploy to run]. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1398,6 +1433,7 @@ NOTE: the `run` step replaces the deprecated `deploy` step. If your job has a pa | The delay between reruns of the step if it fails. This delay can only be set along with `max_auto_reruns`. The string is a decimal with unit suffix using either seconds `s` or minutes `m` up to a maximum of 10 minutes, such as "10s", "2m". |=== +-- Each `run` declaration represents a new shell. It is possible to specify a multi-line `command`, each line of which will be run in the same shell. @@ -1575,6 +1611,8 @@ A job can exit without failing by using `run: circleci-agent step halt`. However The following attributes can be used to automatically rerun a step if it fails, and delay that rerun if required: +[.table-scroll] +-- [cols="2,1,1,2"] |=== | Key | Required | Type | Description @@ -1589,6 +1627,7 @@ The following attributes can be used to automatically rerun a step if it fails, | String | The delay between reruns of the step if it fails. This delay can only be set along with `max_auto_reruns`. The string is a decimal with unit suffix using either seconds `s` or minutes `m` up to a maximum of 10 minutes, such as "10s", "2m". If you do not supply a delay, the rerun will start immediately after the step fails. |=== +-- Automatic reruns are only supported for `run` steps, not special steps like `checkout` or `setup_remote_docker`. @@ -1621,6 +1660,8 @@ NOTE: The `when` and `unless` steps are supported in `version: 2.1` configuratio A conditional step consists of a step with the key `when` or `unless`. Under the `when` key are the subkeys `condition` and `steps`. The purpose of the `when` step is customizing commands and job configuration to run on custom conditions (determined at config-compile time) that are checked before a workflow runs. See the xref:reusing-config.adoc#defining-conditional-steps[Conditional Steps section of the reusable configuration reference] for more details. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1635,6 +1676,7 @@ A conditional step consists of a step with the key `when` or `unless`. Under the | Sequence | A list of steps to execute when the condition is true |=== +-- *Example:* @@ -1674,6 +1716,8 @@ workflows: A special step used to check out source code to the configured `path` (defaults to the `working_directory`). The reason this is a special step is because it is more of a helper function designed to simplify the process of checking out code. If you require doing git over HTTPS you should not use this step as it configures git to checkout over SSH. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1688,6 +1732,7 @@ A special step used to check out source code to the configured `path` (defaults | String | Checkout directory. Will be interpreted relative to the <> of the job). (default: `.`) |=== +-- If `path` already exists and is: @@ -1772,6 +1817,8 @@ NOTE: The `checkout` step will configure Git to skip automatic garbage collectio Allows Docker commands to be run locally. See xref:guides:execution-managed:building-docker-images.adoc#[Running Docker commands] for details. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1786,6 +1833,7 @@ Allows Docker commands to be run locally. See xref:guides:execution-managed:buil | String | Version string of Docker you would like to use (default: `24.0.9`). View the list of supported Docker versions xref:guides:execution-managed:building-docker-images.adoc#docker-version[here]. |=== +-- *Example:* @@ -1810,6 +1858,8 @@ Generates and stores a cache of a file or directory of files such as dependencie Cache retention can be customized on the link:https://app.circleci.com/[CircleCI web app] by navigating to menu:Plan[Usage Controls]. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1834,11 +1884,14 @@ Cache retention can be customized on the link:https://app.circleci.com/[CircleCI | String | <>. Takes the following values: `always`, `on_success`, `on_fail` (default: `on_success`) |=== +-- The cache for a specific `key` is immutable and cannot be changed once written. If the cache for the given `key` already exists it will not be modified, and job execution will proceed to the next step. When storing a new cache, the `key` value may contain special, templated, values for your convenience: +[.table-scroll] +-- [cols=2*, options="header"] |=== | Template | Description @@ -1867,6 +1920,7 @@ When storing a new cache, the `key` value may contain special, templated, values | `{{ arch }}` | The OS and CPU information. Useful when caching compiled binaries that depend on OS and CPU architecture, for example, `darwin amd64` versus `linux i386/32-bit`. |=== +-- During step execution, the templates above will be replaced by runtime values and the resultant string is used as the `key`. @@ -1914,6 +1968,8 @@ Wildcards are not currently supported in `save_cache` paths. Visit the link:http Restores a previously saved cache based on a `key`. Cache needs to have been saved first for this key using the <>. Learn more in xref:guides:optimize:caching.adoc#[the caching documentation]. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1933,6 +1989,7 @@ Restores a previously saved cache based on a `key`. Cache needs to have been sav | String | Title of the step to be shown in the CircleCI UI (default: "Restoring Cache") |=== +-- ^(1)^ at least one attribute has to be present. If `key` and `keys` are both given, `key` will be checked first, and then `keys`. @@ -2002,6 +2059,8 @@ See <> for current processes. If you have parallelism `> 1` in your job, se Step to store artifacts (for example logs, binaries, etc) to be available in the web app or through the API. See the xref:guides:optimize:artifacts.adoc#[Uploading Artifacts] page for more information. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2016,6 +2075,7 @@ Step to store artifacts (for example logs, binaries, etc) to be available in the | String | Prefix added to the artifact paths in the artifacts API (default: the directory of the file specified in `path`) |=== +-- There can be multiple `store_artifacts` steps in a job. Using a unique prefix for each step prevents them from overwriting files. @@ -2042,6 +2102,8 @@ Special step used to upload and store test results for a build. Test results are You can also store test results as build artifacts. For steps, refer to <> section. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2051,6 +2113,7 @@ You can also store test results as build artifacts. For steps, refer to < Additional SSH keys] the MD5 fingerprint will be visible. SHA256 support is planned for an upcoming server release. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2204,6 +2275,7 @@ CAUTION: *Using server?* only MD5 fingerprints are supported. In CircleCI in men | List | List of fingerprints corresponding to the keys to be added (default: all keys added) |=== +-- [,yaml] ---- @@ -2283,6 +2355,8 @@ NOTE: The workflows `version` key is *not* required for `version: 2.1` configura The Workflows `version` field is used to issue warnings for deprecation or breaking changes. +[.table-scroll] +-- [cols=4*, options="header"] |=== | Key | Required | Type | Description @@ -2292,6 +2366,7 @@ The Workflows `version` field is used to issue warnings for deprecation or break | String | Should currently be `2` |=== +-- [,yml] ---- @@ -2350,6 +2425,8 @@ For more information, see the xref:guides:orchestrate:automatic-reruns.adoc[Auto Specifies which triggers will cause this workflow to be executed. Default behavior is to trigger the workflow when pushing to a branch. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2359,6 +2436,7 @@ Specifies which triggers will cause this workflow to be executed. Default behavi | Array | Should currently be `schedule`. |=== +-- [,yml] ---- @@ -2410,6 +2488,8 @@ workflows: The `cron` key is defined using POSIX `crontab` syntax. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2419,6 +2499,7 @@ The `cron` key is defined using POSIX `crontab` syntax. | String | See the link:https://pubs.opengroup.org/onlinepubs/7908799/xcu/crontab.html[`crontab` man page]. |=== +-- [,yml] ---- @@ -2443,6 +2524,8 @@ workflows: Trigger filters can have the key `branches`. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2452,6 +2535,7 @@ Trigger filters can have the key `branches`. | Map | A map defining rules for execution on specific branches |=== +-- [,yml] ---- @@ -2502,6 +2586,8 @@ workflows: - coverage ---- +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2521,6 +2607,7 @@ workflows: | String, or List of Strings | Either a single branch specifier, or a list of branch specifiers |=== +-- ^1^: One of either `only` or `ignore` branch filters must be specified. If both are present, `only` is used. @@ -2561,6 +2648,8 @@ Refer to the xref:guides:orchestrate:workflows.adoc#[Workflows] for more example A job can have the keys `requires`, `name`, `context`, `type`, and `filters`. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2570,6 +2659,7 @@ A job can have the keys `requires`, `name`, `context`, `type`, and `filters`. | List | A list of jobs to run with their dependencies |=== +-- ''' @@ -2602,6 +2692,8 @@ workflows: The `override-with` key is used to override the job configuration with a job from the referenced orb. For more information, see the xref:guides:orchestrate:how-to-override-config.adoc#[How to override config] page. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2611,6 +2703,7 @@ The `override-with` key is used to override the job configuration with a job fro | String | The orb job name that will be used to override the existing job configuration. (Both URL-based and registry orbs are supported) |=== +-- *Example:* @@ -2655,6 +2748,8 @@ Jobs in a serial group follow an order protection mechanism, as follows: If there are no serial groups waiting/running, a pipeline with a lower number can start, such as restoring back to a previous pipeline via a rerun workflow. ==== +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2664,6 +2759,7 @@ If there are no serial groups waiting/running, a pipeline with a lower number ca | String | A string that is used across an org to group jobs together to run one after another. Can include pipeline values and parameters. Use this same serial group across multiple pipelines to control the orchestration of jobs across an organization. |=== +-- *Example:* @@ -2681,6 +2777,8 @@ For more information, see the xref:guides:orchestrate:controlling-serial-executi Jobs are run concurrently by default, so you must explicitly require any dependencies by their job name if you need some jobs to run sequentially. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2698,6 +2796,7 @@ Possible types of `requires` items: The possible *status* values are: `success`, `failed` and `canceled`. |=== +-- [,yml] ---- @@ -2730,6 +2829,8 @@ workflows: The `name` key can be used to invoke reusable jobs across any number of workflows. Using the name key ensures numbers are not appended to your job name (for example, sayhello-1 , sayhello-2, etc.). The name you assign to the `name` key needs to be unique, otherwise the numbers will still be appended to the job name. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2739,6 +2840,7 @@ The `name` key can be used to invoke reusable jobs across any number of workflow | String | A replacement for the job name. Useful when calling a job multiple times. If you want to invoke the same job multiple times, and a job requires one of the duplicate jobs, this key is required. (2.1 only) |=== +-- [,yml] ---- @@ -2756,6 +2858,8 @@ workflows: Jobs may be configured to use global environment variables set for an organization, see the xref:guides:security:contexts.adoc#[Contexts] document for adding a context in the application settings. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2765,6 +2869,7 @@ Jobs may be configured to use global environment variables set for an organizati | String/List | The name of the context(s). The initial default name is `org-global`. Each context name must be unique. If using CircleCI server, only a single context per workflow is supported. *Note:* A maximum of 100 unique contexts across all workflows is allowed. |=== +-- [,yml] ---- @@ -2831,6 +2936,8 @@ Job filters can have the keys `branches` or `tags`. NOTE: Workflows will ignore job-level branching. If you use job-level branching and later add workflows, you must remove the branching at the job level and instead declare it in the workflows section of your `config.yml`. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -2840,6 +2947,7 @@ NOTE: Workflows will ignore job-level branching. If you use job-level branching | Map | A map or string to define rules for job execution. Branch and tag filters require a map. Expression-based filters require a string. |=== +-- The following is an example of how the CircleCI documentation project uses a regular expression to filter running a job in a workflow only on a specific branch: @@ -2986,6 +3094,8 @@ The branches filter can have the keys `only` and `ignore`, which map to a single * If neither `only` nor `ignore` are specified then all branches will run the job. * If both `only` and `ignore` are specified the `only` is considered before `ignore`. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -3005,6 +3115,7 @@ The branches filter can have the keys `only` and `ignore`, which map to a single | String, or list of strings | Either a single branch specifier, or a list of branch specifiers. |=== +-- [source,yaml] ---- @@ -3041,6 +3152,8 @@ Tags can have the keys `only` and `ignore`. You may also use regular expressions * If neither `only` nor `ignore` are specified then the job is skipped for all tags. * If both `only` and `ignore` are specified the `only` is considered before `ignore`. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -3060,6 +3173,7 @@ Tags can have the keys `only` and `ignore`. You may also use regular expressions | String, or List of Strings | Either a single tag specifier, or a list of tag specifiers |=== +-- For more information, see the xref:guides:orchestrate:workflows.adoc#executing-workflows-for-a-git-tag[Executing workflows for a git tag] section of the Workflows page. @@ -3086,6 +3200,8 @@ NOTE: The `matrix` key is supported in `version: 2.1` configuration The `matrix` stanza allows you to run a parameterized job multiple times with different arguments. For more information see the how-to guide on xref:guides:orchestrate:using-matrix-jobs.adoc#[Using Matrix Jobs]. In order to use the `matrix` stanza, you must use parameterized jobs. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -3105,6 +3221,7 @@ The `matrix` stanza allows you to run a parameterized job multiple times with di | String | An alias for the matrix, usable from another job's `requires` stanza. Defaults to the name of the job being executed |=== +-- *Example:* @@ -3298,6 +3415,8 @@ Logic statements are evaluated to boolean values at configuration compilation time, that is, before the workflow is run. The group of logic statements includes: +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Type | Arguments | `true` if | Example @@ -3342,6 +3461,7 @@ includes: | `value` matches the `pattern` | `+matches: { pattern: "^feature-.+$", value: << pipeline.git.branch >> }+` |=== +-- The following logic values are considered falsy: diff --git a/docs/reference/modules/ROOT/pages/faq.adoc b/docs/reference/modules/ROOT/pages/faq.adoc index 54190528b8..f11011d96f 100644 --- a/docs/reference/modules/ROOT/pages/faq.adoc +++ b/docs/reference/modules/ROOT/pages/faq.adoc @@ -6,6 +6,9 @@ This page answers frequently asked questions about the following CircleCI topics: [.table] + +[.table-scroll] +-- [cols=2*] |=== | <> @@ -29,6 +32,7 @@ This page answers frequently asked questions about the following CircleCI topics | <> | |=== +-- [#general] == General diff --git a/docs/reference/modules/ROOT/pages/outbound-webhooks-reference.adoc b/docs/reference/modules/ROOT/pages/outbound-webhooks-reference.adoc index 172466b4a8..e5b793bf2b 100644 --- a/docs/reference/modules/ROOT/pages/outbound-webhooks-reference.adoc +++ b/docs/reference/modules/ROOT/pages/outbound-webhooks-reference.adoc @@ -7,6 +7,8 @@ Each webhook will have some common data as part of the event: +[.table-scroll] +-- [cols="1,2,1", options="header"] |=== | Field @@ -25,6 +27,7 @@ Each webhook will have some common data as part of the event: | A map of metadata representing the webhook that was triggered | Map |=== +-- NOTE: The event payloads are open maps, meaning new fields may be added to maps in the webhook payload without considering it a breaking change. @@ -40,6 +43,8 @@ Some common sub-entities that will appear across various webhooks are described The following data about the project associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -58,12 +63,15 @@ The following data about the project associated with the webhook event is provid | yes | Name of the project (for example, `web-ui`) |=== +-- [#organization] === Organization The following data about the organization associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -78,6 +86,7 @@ The following data about the organization associated with the webhook event is p | yes | Name of the organization (for example, `circleci`) |=== +-- [#job] === Job @@ -86,6 +95,8 @@ A xref:guides:orchestrate:jobs-steps.adoc[job] typically represents one phase in The following data about the job associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -116,12 +127,15 @@ The following data about the job associated with the webhook event is provided: | no | When the job reached a terminal state (if applicable) |=== +-- [#workflow] === Workflow xref:guides:orchestrate:workflows.adoc[Workflows] orchestrate jobs. The following data about the workflow associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -152,6 +166,7 @@ xref:guides:orchestrate:workflows.adoc[Workflows] orchestrate jobs. The followin | Yes | URL to the workflow in CircleCI's UI |=== +-- [#pipeline] === Pipeline @@ -160,6 +175,8 @@ Pipelines are the most high-level unit of work, and contain zero or more workflo The following Data about the pipeline associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -190,12 +207,15 @@ The following Data about the pipeline associated with the webhook event is provi | No | A map of metadata about the git commit associated with this pipeline -- see below |=== +-- [#trigger] === Trigger The following data about the trigger associated with the webhook event is provided: +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -206,12 +226,15 @@ The following data about the trigger associated with the webhook event is provid | yes | How this pipeline was triggered (for example, "webhook", "api", "schedule") |=== +-- [#trigger-parameters] === Trigger parameters NOTE: Data associated to the pipeline. Present for pipelines associated with GitLab, GitHub App, or Bitbucket Data Center. For parameters available for GitHub OAuth app and Bitbucket Cloud integrations, see <<#vcs>> below. To find out which GitHub integration you have, see the xref:guides:integration:github-apps-integration.adoc[GitHub Apps integration] page. +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -230,10 +253,13 @@ NOTE: Data associated to the pipeline. Present for pipelines associated with Git | no | A map present when the pipeline is associated with a GitLab, GitHub App or Bitbucket Data Center trigger |=== +-- [#circleci] ==== `circleci` +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -256,12 +282,15 @@ NOTE: Data associated to the pipeline. Present for pipelines associated with Git | no | CircleCI user id that the pipeline was attributed to |=== +-- [#vcs] === VCS NOTE: The VCS map and its contents are always present for GitHub OAuth app and Bitbucket Cloud projects, but not for GitLab, GitHub App or Bitbucket Data Center projects. See <<#trigger-parameters,trigger parameters>> above for GitLab, GitHub App or Bitbucket Data Center parameters. To find out which GitHub integration you have, see the xref:guides:integration:github-apps-integration.adoc[GitHub Apps integration] page. +[.table-scroll] +-- [cols="1,1,2", options="header"] |=== | Field @@ -320,6 +349,7 @@ NOTE: The VCS map and its contents are always present for GitHub OAuth app and B | no | Tag being built (mutually exclusive with "branch") |=== +-- [#sample-webhook-payloads] == Sample webhook payloads diff --git a/docs/reference/modules/ROOT/pages/reusing-config.adoc b/docs/reference/modules/ROOT/pages/reusing-config.adoc index 62da9f5f08..6f509c3083 100644 --- a/docs/reference/modules/ROOT/pages/reusing-config.adoc +++ b/docs/reference/modules/ROOT/pages/reusing-config.adoc @@ -52,6 +52,8 @@ workflows: A parameter can have the following keys as immediate children: +[.table-scroll] +-- [cols="1,2,1", options="header"] |=== | Key Name | Description | Default value @@ -68,6 +70,7 @@ A parameter can have the following keys as immediate children: | The default value for the parameter. Required for pipeline parameters. For all other parameters, if not present, the parameter is implied to be required. | N/A |=== +-- [#parameter-types] === Parameter types @@ -440,6 +443,8 @@ commands: A command defines a sequence of steps as a map to be executed in a job, enabling you to reuse a single command definition across multiple jobs. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -459,6 +464,7 @@ A command defines a sequence of steps as a map to be executed in a job, enabling | String | A string that describes the purpose of the command. Used for generating documentation. |=== +-- [#invoking-reusable-commands] === Invoking reusable commands @@ -638,6 +644,8 @@ jobs: Executors define the environment in which the steps of a job will be run, allowing you to reuse a single executor definition across multiple jobs. +[.table-scroll] +-- [cols="2,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -677,6 +685,7 @@ Executors define the environment in which the steps of a job will be run, allowi | Map | A map of environment variable names and values. |=== +-- Example: @@ -1148,6 +1157,8 @@ workflows: Under the `when` key are the subkeys `condition` and `steps`. The subkey `steps` are run only if the condition evaluates to a truthy value. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1162,12 +1173,15 @@ Under the `when` key are the subkeys `condition` and `steps`. The subkey `steps` | Sequence | A list of steps to execute when the condition is truthy. |=== +-- [#the-unless-step] === *The `unless` step* Under the `unless` key are the subkeys `condition` and `steps`. The subkey `steps` are run only if the condition evaluates to a falsy value. +[.table-scroll] +-- [cols="1,1,1,2", options="header"] |=== | Key | Required | Type | Description @@ -1182,6 +1196,7 @@ Under the `unless` key are the subkeys `condition` and `steps`. The subkey `step | Sequence | A list of steps to execute when the condition is falsy. |=== +-- [#writing-inline-orbs] == Writing inline orbs diff --git a/docs/reference/modules/ROOT/pages/troubleshoot.adoc b/docs/reference/modules/ROOT/pages/troubleshoot.adoc index 9a54172a3e..3f332f6592 100644 --- a/docs/reference/modules/ROOT/pages/troubleshoot.adoc +++ b/docs/reference/modules/ROOT/pages/troubleshoot.adoc @@ -6,6 +6,9 @@ This page offers troubleshooting suggestions for the following aspects of CircleCI: [.table] + +[.table-scroll] +-- [cols=2*] |=== | <> @@ -15,6 +18,7 @@ This page offers troubleshooting suggestions for the following aspects of Circle | <> |=== +-- == Orbs diff --git a/docs/server-admin-4.2/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.2/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc index 5474335ff3..3372f1ee3f 100644 --- a/docs/server-admin-4.2/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.2/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc @@ -12,8 +12,9 @@ The guides in this section walk you through the steps required to install Circle == Required components for air-gapped installation The following table shows an overview of the prerequisites required to run an air-gapped CircleCI server installation. These items must be present in your air-gapped environment in order to move forward with the installation. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Component | Used for @@ -34,6 +35,7 @@ The following table shows an overview of the prerequisites required to run an ai | Machines for running Nomad |=== +-- [#copy-images] == 1. Copy images diff --git a/docs/server-admin-4.2/modules/installation/pages/hardening-your-cluster.adoc b/docs/server-admin-4.2/modules/installation/pages/hardening-your-cluster.adoc index ce0d2506fb..3eb82fd94f 100644 --- a/docs/server-admin-4.2/modules/installation/pages/hardening-your-cluster.adoc +++ b/docs/server-admin-4.2/modules/installation/pages/hardening-your-cluster.adoc @@ -32,8 +32,9 @@ The rules explained here are assumed to be stateful and for TCP connections only === Reverse proxy status You may wish to check the status of the services routing traffic in your CircleCI server installation and alert if there are any issues. Since we use both nginx and Kong in CircleCI server, we expose the status pages of both via port 80. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Service | Endpoint @@ -44,6 +45,7 @@ You may wish to check the status of the services routing traffic in your CircleC | Kong | `/kong_status` |=== +-- [#kubernetes-load-balancers] ## Kubernetes load balancers @@ -53,8 +55,9 @@ Depending on your setup, your load balancers might be transparent (that is, they === Ingress If the traffic rules for your load balancers have not been created automatically, here are their respective ports: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Name | Port @@ -86,6 +89,7 @@ If the traffic rules for your load balancers have not been created automatically | Nomad clients | Communication with Nomad clients |=== +-- [#egress-load-balancers] === Egress @@ -125,8 +129,9 @@ If you are using a managed service, you can check the rules created for the traf [#egress-kubernetes] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -144,6 +149,7 @@ If you are using a managed service, you can check the rules created for the traf | other nodes | Allow intra-cluster traffic |=== +-- [#nomad-clients-ingress-egress] == Nomad clients @@ -151,8 +157,10 @@ Nomad clients do not need to communicate with each other. You can block traffic [#ingress-nomad] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -166,11 +174,14 @@ Nomad clients do not need to communicate with each other. You can block traffic | External | Rerun jobs with SSH functionality |=== +-- [#egress-nomad] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -196,6 +207,7 @@ Nomad clients do not need to communicate with each other. You can block traffic | Output Processor Load Balancer | Internal communication |=== +-- [#external-vms] == External VMs @@ -203,8 +215,10 @@ Similar to Nomad clients, there is no need for external VMs to communicate with [#ingress-external] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -230,6 +244,7 @@ Similar to Nomad clients, there is no need for external VMs to communicate with | External | Rerun jobs with SSH functionality |=== +-- [#egress-external] === Egress @@ -262,8 +277,9 @@ When the `assignPublicIP` option is set to false, restricting traffic with secur Within the ingress rules of the VM security group, the following rules can be created to harden your installation: -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -291,6 +307,7 @@ Within the ingress rules of the VM security group, the following rules can be cr | Allows users to SSH into failed vm-based jobs and to retry and debug |=== +-- [#using-public-ips] === Using public IPs @@ -303,8 +320,9 @@ If both Nomad clients and VM service VMs have been assigned public IPs, SSH and When hardening an installation where the VM service uses public IPs, the following rules can be created. -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -331,6 +349,7 @@ When hardening an installation where the VM service uses public IPs, the followi | Allows users to SSH into failed vm-based jobs to retry and debug. |=== +-- ifndef::pdf[] ## Next steps diff --git a/docs/server-admin-4.2/modules/installation/pages/installation-reference.adoc b/docs/server-admin-4.2/modules/installation/pages/installation-reference.adoc index ee72057f08..0d4e0b4053 100644 --- a/docs/server-admin-4.2/modules/installation/pages/installation-reference.adoc +++ b/docs/server-admin-4.2/modules/installation/pages/installation-reference.adoc @@ -152,7 +152,9 @@ nomad: == All Helm `values.yaml` options pass:[] -[.table.table-striped] + +[.table-scroll] +-- [cols="4,1,1,2", options="header"] |=== |Key |Type |Default |Description @@ -913,4 +915,5 @@ deployment. |`workflows_conductor_grpc.replicas` |int |`+1+` |Number of replicas to deploy for the workflows-conductor-grpc deployment. |=== +-- pass:[] diff --git a/docs/server-admin-4.2/modules/installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.2/modules/installation/pages/phase-1-prerequisites.adoc index fb5acf505a..1a58810e8f 100644 --- a/docs/server-admin-4.2/modules/installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.2/modules/installation/pages/phase-1-prerequisites.adoc @@ -16,8 +16,9 @@ NOTE: In the following sections, replace any sections indicated by `< >` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -44,6 +45,7 @@ Download and install the following software before continuing: | Helping with `values.yaml` changes and updates | Optional, but may help with troubleshooting between releases |=== +-- // Don't include this section in the GCP PDF. @@ -78,8 +80,9 @@ endif::env-aws[] == 2. Create a Kubernetes cluster CircleCI server installs into an existing Kubernetes cluster. The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -99,6 +102,7 @@ CircleCI server installs into an existing Kubernetes cluster. The application us | 240 GB | 10 Gbps |=== +-- [#vpc-cluster-sizing-recommendations] === VPC and cluster sizing recommendations @@ -116,8 +120,9 @@ For high availability, and to avoid potential outages, you should provision subn [#supported-kubernetes-versions] === Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -125,6 +130,7 @@ For high availability, and to avoid potential outages, you should provision subn | 4.2.x | 1.22 - 1.28 |=== +-- [#minimum-permissions-requirments] === Minimum permissions requirements diff --git a/docs/server-admin-4.2/modules/installation/pages/phase-3-execution-environments.adoc b/docs/server-admin-4.2/modules/installation/pages/phase-3-execution-environments.adoc index 685b44efd8..0d3762b92f 100644 --- a/docs/server-admin-4.2/modules/installation/pages/phase-3-execution-environments.adoc +++ b/docs/server-admin-4.2/modules/installation/pages/phase-3-execution-environments.adoc @@ -457,9 +457,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions see the link:https://github.com/circleci/realitycheck#prerequisites-1[repository readme]. +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -473,10 +474,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -490,6 +493,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.2/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.2/modules/operator/pages/circleci-server-security-features.adoc index 35f96bf6bd..98228e0beb 100644 --- a/docs/server-admin-4.2/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.2/modules/operator/pages/circleci-server-security-features.adoc @@ -97,8 +97,9 @@ The following are the system events that are logged. See `action` in the <] -[.table.table-striped] + +[.table-scroll] +-- [cols=4*, options="header"] |=== |Key |Type |Default |Description @@ -1376,4 +1378,5 @@ limit configuration for the workflows-conductor-grpc deployment. |workflows_conductor_grpc.resources.limits.memory |string |`+"8Gi"+` |Memory limit configuration for the workflows-conductor-grpc deployment. |=== +-- pass:[] diff --git a/docs/server-admin-4.3/modules/installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.3/modules/installation/pages/phase-1-prerequisites.adoc index b7a7b13afd..4378c31d62 100644 --- a/docs/server-admin-4.3/modules/installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.3/modules/installation/pages/phase-1-prerequisites.adoc @@ -14,8 +14,9 @@ NOTE: In the following sections, replace any sections indicated by `< >` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -42,6 +43,7 @@ Download and install the following software before continuing: | Helping with `values.yaml` changes and updates | Optional, but may help with troubleshooting between releases |=== +-- // Don't include this section in the GCP PDF. @@ -76,8 +78,9 @@ endif::env-aws[] == 2. Create a Kubernetes cluster CircleCI server installs into an existing Kubernetes cluster. The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -97,6 +100,7 @@ CircleCI server installs into an existing Kubernetes cluster. The application us | 240 GB | 10 Gbps |=== +-- [#vpc-cluster-sizing-recommendations] === VPC and cluster sizing recommendations @@ -114,8 +118,9 @@ For high availability, and to avoid potential outages, you should provision subn [#supported-kubernetes-versions] === Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -123,6 +128,7 @@ For high availability, and to avoid potential outages, you should provision subn | 4.3.x | 1.26 - 1.29 |=== +-- [#minimum-permissions-requirments] === Minimum permissions requirements diff --git a/docs/server-admin-4.3/modules/installation/pages/phase-3-execution-environments.adoc b/docs/server-admin-4.3/modules/installation/pages/phase-3-execution-environments.adoc index a67bd4e3b9..bc4fe6a3b9 100644 --- a/docs/server-admin-4.3/modules/installation/pages/phase-3-execution-environments.adoc +++ b/docs/server-admin-4.3/modules/installation/pages/phase-3-execution-environments.adoc @@ -458,9 +458,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions see the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -474,10 +475,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -491,6 +494,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.3/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.3/modules/operator/pages/circleci-server-security-features.adoc index ce830596b3..493a4ecaaf 100644 --- a/docs/server-admin-4.3/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.3/modules/operator/pages/circleci-server-security-features.adoc @@ -95,8 +95,9 @@ The following are the system events that are logged. See `action` in the <] [.table-scroll] -- -[.table.table-striped] [cols=4*, options="header"] |=== |Key |Type |Default |Description diff --git a/docs/server-admin-4.4/modules/installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.4/modules/installation/pages/phase-1-prerequisites.adoc index 82a7235e9c..cdffe66e78 100644 --- a/docs/server-admin-4.4/modules/installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.4/modules/installation/pages/phase-1-prerequisites.adoc @@ -16,8 +16,9 @@ NOTE: In the following sections, replace any sections indicated by `< >` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -60,6 +61,7 @@ Download and install the following software before continuing: | Required for installations outside AWS and GCP, for example, local installation. |=== +-- @@ -104,8 +106,9 @@ CircleCI server installs into an existing Kubernetes cluster. If you have not al ==== Compute resources The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -125,12 +128,14 @@ The application uses a large number of resources. Depending on your usage, your | 240 GB | 10 Gbps |=== +-- [#supported-kubernetes-versions] ==== Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -138,6 +143,7 @@ The application uses a large number of resources. Depending on your usage, your | 4.4.x | {kubernetesversions} |=== +-- [#minimum-permissions-requirments] ==== Minimum permissions requirements diff --git a/docs/server-admin-4.4/modules/installation/pages/phase-3-execution-environments.adoc b/docs/server-admin-4.4/modules/installation/pages/phase-3-execution-environments.adoc index 35971e7241..e05161b950 100644 --- a/docs/server-admin-4.4/modules/installation/pages/phase-3-execution-environments.adoc +++ b/docs/server-admin-4.4/modules/installation/pages/phase-3-execution-environments.adoc @@ -501,9 +501,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions see the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -517,10 +518,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -534,6 +537,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.4/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.4/modules/operator/pages/circleci-server-security-features.adoc index f21f7c94a0..becb15f204 100644 --- a/docs/server-admin-4.4/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.4/modules/operator/pages/circleci-server-security-features.adoc @@ -99,8 +99,9 @@ The following are the system events that are logged. See `action` in the <] -[.table.table-striped] + +[.table-scroll] +-- [cols=4*, options="header"] |=== |Key |Type |Default |Description @@ -1444,4 +1446,5 @@ limit configuration for the workflows-conductor-grpc deployment. |workflows_conductor_grpc.resources.limits.memory |string |`+"8Gi"+` |Memory limit configuration for the workflows-conductor-grpc deployment. |=== +-- pass:[] diff --git a/docs/server-admin-4.5/modules/installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.5/modules/installation/pages/phase-1-prerequisites.adoc index 39e025fe27..a0ac697b14 100644 --- a/docs/server-admin-4.5/modules/installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.5/modules/installation/pages/phase-1-prerequisites.adoc @@ -16,8 +16,9 @@ NOTE: In the following sections, replace any sections indicated by `< >` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -60,6 +61,7 @@ Download and install the following software before continuing: | Required for installations outside AWS and GCP, for example, local installation. |=== +-- @@ -104,8 +106,9 @@ CircleCI server installs into an existing Kubernetes cluster. If you have not al ==== Compute resources The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -125,12 +128,14 @@ The application uses a large number of resources. Depending on your usage, your | 240 GB | 10 Gbps |=== +-- [#supported-kubernetes-versions] ==== Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -138,6 +143,7 @@ The application uses a large number of resources. Depending on your usage, your | 4.5.x | {kubernetesversions} |=== +-- [#minimum-permissions-requirments] ==== Minimum permissions requirements diff --git a/docs/server-admin-4.5/modules/installation/pages/phase-3-execution-environments.adoc b/docs/server-admin-4.5/modules/installation/pages/phase-3-execution-environments.adoc index 97c8ec4550..825c15547a 100644 --- a/docs/server-admin-4.5/modules/installation/pages/phase-3-execution-environments.adoc +++ b/docs/server-admin-4.5/modules/installation/pages/phase-3-execution-environments.adoc @@ -501,9 +501,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions refer to the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. -.Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- + +[cols=2*, options="header"] |=== |Name |Value @@ -517,10 +518,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -534,6 +537,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.5/modules/operator/pages/application-lifecycle.adoc b/docs/server-admin-4.5/modules/operator/pages/application-lifecycle.adoc index 132d6b86ac..6d201fee91 100644 --- a/docs/server-admin-4.5/modules/operator/pages/application-lifecycle.adoc +++ b/docs/server-admin-4.5/modules/operator/pages/application-lifecycle.adoc @@ -28,8 +28,9 @@ With each minor release, in accordance with our link:https://circleci.com/legal/ CAUTION: Future dates listed here may change at any time. -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Version | Released | End of Support @@ -57,3 +58,4 @@ CAUTION: Future dates listed here may change at any time. |7/28/2022 |7/31/2023 |=== +-- diff --git a/docs/server-admin-4.5/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.5/modules/operator/pages/circleci-server-security-features.adoc index ec5aa752dc..fc8978396e 100644 --- a/docs/server-admin-4.5/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.5/modules/operator/pages/circleci-server-security-features.adoc @@ -99,8 +99,9 @@ The following are the system events that are logged. See `action` in the <] -[.table.table-striped] +[.table-scroll] +-- [cols=4*, options="header"] |=== |Key |Type |Default |Description @@ -1455,4 +1456,5 @@ limit configuration for the workflows-conductor-grpc deployment. |workflows_conductor_grpc.resources.limits.memory |string |`+"8Gi"+` |Memory limit configuration for the workflows-conductor-grpc deployment. |=== +-- pass:[] diff --git a/docs/server-admin-4.6/modules/installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.6/modules/installation/pages/phase-1-prerequisites.adoc index 4a047d8eea..36a6734ae7 100644 --- a/docs/server-admin-4.6/modules/installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.6/modules/installation/pages/phase-1-prerequisites.adoc @@ -16,8 +16,9 @@ NOTE: In the following sections, replace any sections indicated by `< >` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -60,6 +61,7 @@ Download and install the following software before continuing: | Required for installations outside AWS and GCP, for example, local installation. |=== +-- @@ -104,8 +106,9 @@ CircleCI server installs into an existing Kubernetes cluster. If you have not al ==== Compute resources The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -125,12 +128,14 @@ The application uses a large number of resources. Depending on your usage, your | 240 GB | 10 Gbps |=== +-- [#supported-kubernetes-versions] ==== Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -138,6 +143,7 @@ The application uses a large number of resources. Depending on your usage, your | 4.6.x | {kubernetesversions} |=== +-- [#minimum-permissions-requirments] ==== Minimum permissions requirements diff --git a/docs/server-admin-4.6/modules/installation/pages/phase-3-execution-environments.adoc b/docs/server-admin-4.6/modules/installation/pages/phase-3-execution-environments.adoc index aa5f29ace7..afee574c89 100644 --- a/docs/server-admin-4.6/modules/installation/pages/phase-3-execution-environments.adoc +++ b/docs/server-admin-4.6/modules/installation/pages/phase-3-execution-environments.adoc @@ -501,9 +501,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions refer to the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -517,10 +518,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -534,6 +537,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.6/modules/operator/pages/application-lifecycle.adoc b/docs/server-admin-4.6/modules/operator/pages/application-lifecycle.adoc index 5ca88b5c32..ef3c66cef7 100644 --- a/docs/server-admin-4.6/modules/operator/pages/application-lifecycle.adoc +++ b/docs/server-admin-4.6/modules/operator/pages/application-lifecycle.adoc @@ -28,8 +28,9 @@ With each minor release, in accordance with our link:https://circleci.com/legal/ CAUTION: Future dates listed here may change at any time. -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Version | Released | End of Support @@ -61,3 +62,4 @@ CAUTION: Future dates listed here may change at any time. |7/28/2022 |7/31/2023 |=== +-- diff --git a/docs/server-admin-4.6/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.6/modules/operator/pages/circleci-server-security-features.adoc index bff0ca4124..39a7c28f5a 100644 --- a/docs/server-admin-4.6/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.6/modules/operator/pages/circleci-server-security-features.adoc @@ -99,8 +99,9 @@ The following are the system events that are logged. See `action` in the <` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -54,6 +55,7 @@ endif::env-aws[] | Required for installations outside AWS and GCP, for example, local installation. |=== +-- [#create-a-vpc] == 2. Create a VPC @@ -95,8 +97,9 @@ CircleCI server installs into an existing Kubernetes cluster. If you have not al ==== Compute resources The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -116,12 +119,14 @@ The application uses a large number of resources. Depending on your usage, your | 240 GB | 10 Gbps |=== +-- [#supported-kubernetes-versions] ==== Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -129,6 +134,7 @@ The application uses a large number of resources. Depending on your usage, your | 4.7.x | {kubernetesversions} |=== +-- [#minimum-permissions-requirments] ==== Minimum permissions requirements diff --git a/docs/server-admin-4.7/modules/ROOT/partials/installation/phase-3.adoc b/docs/server-admin-4.7/modules/ROOT/partials/installation/phase-3.adoc index 4acdb9f169..982eb95d1f 100644 --- a/docs/server-admin-4.7/modules/ROOT/partials/installation/phase-3.adoc +++ b/docs/server-admin-4.7/modules/ROOT/partials/installation/phase-3.adoc @@ -507,9 +507,11 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions refer to the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. + +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -523,10 +525,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -540,6 +544,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.7/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.7/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc index 66a7eb14be..6c985ce858 100644 --- a/docs/server-admin-4.7/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.7/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc @@ -13,8 +13,9 @@ The guides in this section walk you through the steps required to install Circle == Required components for air-gapped installation The following table shows an overview of the prerequisites required to run an air-gapped CircleCI server installation. These items must be present in your air-gapped environment in order to move forward with the installation. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Component | Used for @@ -35,6 +36,7 @@ The following table shows an overview of the prerequisites required to run an ai | Machines for running Nomad |=== +-- [#copy-images] == 1. Copy images diff --git a/docs/server-admin-4.7/modules/installation/pages/hardening-your-cluster.adoc b/docs/server-admin-4.7/modules/installation/pages/hardening-your-cluster.adoc index 309e21e96f..c820d41de4 100644 --- a/docs/server-admin-4.7/modules/installation/pages/hardening-your-cluster.adoc +++ b/docs/server-admin-4.7/modules/installation/pages/hardening-your-cluster.adoc @@ -34,8 +34,9 @@ The rules explained here are assumed to be stateful and for TCP connections only === Reverse proxy status You may wish to check the status of the services routing traffic in your CircleCI server installation and alert if there are any issues. Since we use both nginx and Kong in CircleCI server, we expose the status pages of both via port 80. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Service | Endpoint @@ -46,6 +47,7 @@ You may wish to check the status of the services routing traffic in your CircleC | Kong | `/kong_status` |=== +-- [#kubernetes-load-balancers] ## Kubernetes load balancers @@ -55,8 +57,9 @@ Depending on your setup, your load balancers might be transparent (that is, they === Ingress If the traffic rules for your load balancers have not been created automatically, here are their respective ports: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Name | Port @@ -88,6 +91,7 @@ If the traffic rules for your load balancers have not been created automatically | Nomad clients | Communication with Nomad clients |=== +-- [#egress-load-balancers] === Egress @@ -127,8 +131,9 @@ If you are using a managed service, you can check the rules created for the traf [#egress-kubernetes] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -142,6 +147,7 @@ If you are using a managed service, you can check the rules created for the traf | other nodes | Allow intra-cluster traffic |=== +-- [#nomad-clients-ingress-egress] == Nomad clients @@ -149,8 +155,10 @@ Nomad clients do not need to communicate with each other. You can block traffic [#ingress-nomad] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -164,11 +172,14 @@ Nomad clients do not need to communicate with each other. You can block traffic | External | Rerun jobs with SSH functionality |=== +-- [#egress-nomad] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -182,6 +193,7 @@ Nomad clients do not need to communicate with each other. You can block traffic | Nomad Load Balancer | Internal communication |=== +-- [#external-vms] == External VMs @@ -189,8 +201,10 @@ Similar to Nomad clients, there is no need for external VMs to communicate with [#ingress-external] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -216,6 +230,7 @@ Similar to Nomad clients, there is no need for external VMs to communicate with | External | Rerun jobs with SSH functionality |=== +-- [#egress-external] === Egress @@ -243,8 +258,9 @@ When the `assignPublicIP` option is set to false, restricting traffic with secur Within the ingress rules of the VM security group, the following rules can be created to harden your installation: -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -255,6 +271,7 @@ Within the ingress rules of the VM security group, the following rules can be cr | Allows users to SSH into failed virtual machine based jobs and to retry and debug |=== +-- [#using-public-ips] === Using public IP addresses @@ -263,8 +280,9 @@ When the `assignPublicIP` option is set to true, all EC2 instances created by ma When hardening an installation where the machine provisioner uses public IP addresses, the following rules can be created: -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -275,6 +293,7 @@ When hardening an installation where the machine provisioner uses public IP addr | Allows users to SSH into failed virtual machine based jobs to retry and debug. |=== +-- ifndef::pdf[] ## Next steps diff --git a/docs/server-admin-4.7/modules/installation/pages/installation-reference.adoc b/docs/server-admin-4.7/modules/installation/pages/installation-reference.adoc index 2a447a2570..5596d56d07 100644 --- a/docs/server-admin-4.7/modules/installation/pages/installation-reference.adoc +++ b/docs/server-admin-4.7/modules/installation/pages/installation-reference.adoc @@ -164,7 +164,9 @@ nomad: == All Helm `values.yaml` options pass:[] -[.table.table-striped] + +[.table-scroll] +-- [cols=4*, options="header"] |=== |Key |Type |Default |Description @@ -1480,4 +1482,5 @@ limit configuration for the workflows-conductor-grpc deployment. |workflows_conductor_grpc.resources.limits.memory |string |`+"8Gi"+` |Memory limit configuration for the workflows-conductor-grpc deployment. |=== +-- pass:[] diff --git a/docs/server-admin-4.7/modules/operator/pages/application-lifecycle.adoc b/docs/server-admin-4.7/modules/operator/pages/application-lifecycle.adoc index 5e1171cad3..481531d3ee 100644 --- a/docs/server-admin-4.7/modules/operator/pages/application-lifecycle.adoc +++ b/docs/server-admin-4.7/modules/operator/pages/application-lifecycle.adoc @@ -28,8 +28,9 @@ With each minor release, in accordance with our link:https://circleci.com/legal/ CAUTION: Future dates listed here may change at any time. -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Version | Released | End of Support @@ -65,3 +66,4 @@ CAUTION: Future dates listed here may change at any time. |7/28/2022 |7/31/2023 |=== +-- diff --git a/docs/server-admin-4.7/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.7/modules/operator/pages/circleci-server-security-features.adoc index f7d5bac0b7..501ad0be46 100644 --- a/docs/server-admin-4.7/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.7/modules/operator/pages/circleci-server-security-features.adoc @@ -99,8 +99,9 @@ The following are the system events that are logged. See `action` in the <` with yo == 1. Install required software Download and install the following software before continuing: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Tool | Version @@ -54,6 +55,7 @@ endif::env-aws[] | Required for installations outside AWS and GCP, for example, local installation. |=== +-- [#create-a-vpc] == 2. Create a VPC @@ -95,8 +97,9 @@ CircleCI server installs into an existing Kubernetes cluster. If you have not al ==== Compute resources The application uses a large number of resources. Depending on your usage, your Kubernetes cluster should meet the following requirements: -[.table.table-striped] -[cols=5*, options="header", stripes=even] +[.table-scroll] +-- +[cols=5*, options="header"] |=== | Number of daily active CircleCI users | Minimum Nodes @@ -116,12 +119,14 @@ The application uses a large number of resources. Depending on your usage, your | 240 GB | 10 Gbps |=== +-- [#supported-kubernetes-versions] ==== Supported Kubernetes versions -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | CircleCI Version | Kubernetes Version @@ -129,6 +134,7 @@ The application uses a large number of resources. Depending on your usage, your | 4.8.x | {kubernetesversions} |=== +-- [#minimum-permissions-requirments] ==== Minimum permissions requirements @@ -260,10 +266,10 @@ endif::env-aws[] CAUTION: If GitHub Enterprise and CircleCI server are not on the same domain, then images and icons from GHE will fail to load in the CircleCI web app. -Registering and setting up a new GitHub OAuth app for CircleCI server allows for the following: +Registering and setting up a new GitHub OAuth app for CircleCI server allows for the following: * Authorization control to your server installation using GitHub OAuth . -* Updates to GitHub projects/repos using build status information. +* Updates to GitHub projects/repos using build status information. The following steps apply for both GitHub.com and GitHub Enterprise. diff --git a/docs/server-admin-4.8/modules/ROOT/partials/installation/phase-3.adoc b/docs/server-admin-4.8/modules/ROOT/partials/installation/phase-3.adoc index b1dcf058af..89047bf318 100644 --- a/docs/server-admin-4.8/modules/ROOT/partials/installation/phase-3.adoc +++ b/docs/server-admin-4.8/modules/ROOT/partials/installation/phase-3.adoc @@ -536,9 +536,10 @@ git push Once you have successfully cloned the repository, you can follow it from within your CircleCI server installation. You need to set the following variables. For full instructions refer to the link:https://github.com/circleci/realitycheck#prerequisites-1[repository README]. +[.table-scroll] +-- .Environmental Variables -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[cols=2*, options="header"] |=== |Name |Value @@ -552,10 +553,12 @@ Once you have successfully cloned the repository, you can follow it from within |CIRCLE_CLOUD_PROVIDER |< `aws`, `gcp`, or `other` > |=== +-- +[.table-scroll] +-- .Contexts -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[cols=3*, options="header"] |=== |Name |Environmental Variable Key @@ -569,6 +572,7 @@ Once you have successfully cloned the repository, you can follow it from within |MULTI_CONTEXT_END_TO_END_VAR |Leave blank |=== +-- Once you have configured the environmental variables and contexts, rerun the Reality Check tests. You should see the features and resource jobs complete successfully. Your test results should look something like the following: diff --git a/docs/server-admin-4.8/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc b/docs/server-admin-4.8/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc index 6e48ec4bb2..87d01c5479 100644 --- a/docs/server-admin-4.8/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc +++ b/docs/server-admin-4.8/modules/air-gapped-installation/pages/phase-1-prerequisites.adoc @@ -9,8 +9,9 @@ The guides in this section walk you through the steps required to install Circle == Required components for air-gapped installation The following table shows an overview of the prerequisites required to run an air-gapped CircleCI server installation. These items must be present in your air-gapped environment in order to move forward with the installation. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Component | Used for @@ -31,6 +32,7 @@ The following table shows an overview of the prerequisites required to run an ai | Machines for running Nomad |=== +-- [#copy-images] == 1. Copy images diff --git a/docs/server-admin-4.8/modules/installation/pages/hardening-your-cluster.adoc b/docs/server-admin-4.8/modules/installation/pages/hardening-your-cluster.adoc index edc116542c..3519613582 100644 --- a/docs/server-admin-4.8/modules/installation/pages/hardening-your-cluster.adoc +++ b/docs/server-admin-4.8/modules/installation/pages/hardening-your-cluster.adoc @@ -31,8 +31,9 @@ The rules explained here are assumed to be stateful and for TCP connections only === Reverse proxy status You may wish to check the status of the services routing traffic in your CircleCI server installation and alert if there are any issues. Since we use both nginx and Kong in CircleCI server, we expose the status pages of both via port 80. -[.table.table-striped] -[cols=2*, options="header", stripes=even] +[.table-scroll] +-- +[cols=2*, options="header"] |=== | Service | Endpoint @@ -43,6 +44,7 @@ You may wish to check the status of the services routing traffic in your CircleC | Kong | `/kong_status` |=== +-- [#kubernetes-load-balancers] ## Kubernetes load balancers @@ -52,8 +54,9 @@ Depending on your setup, your load balancers might be transparent (that is, they === Ingress If the traffic rules for your load balancers have not been created automatically, here are their respective ports: -[.table.table-striped] -[cols=4*, options="header", stripes=even] +[.table-scroll] +-- +[cols=4*, options="header"] |=== | Name | Port @@ -85,6 +88,7 @@ If the traffic rules for your load balancers have not been created automatically | Nomad clients | Communication with Nomad clients |=== +-- [#egress-load-balancers] === Egress @@ -124,8 +128,9 @@ If you are using a managed service, you can check the rules created for the traf [#egress-kubernetes] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -139,6 +144,7 @@ If you are using a managed service, you can check the rules created for the traf | other nodes | Allow intra-cluster traffic |=== +-- [#nomad-clients-ingress-egress] == Nomad clients @@ -146,8 +152,10 @@ Nomad clients do not need to communicate with each other. You can block traffic [#ingress-nomad] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -161,11 +169,14 @@ Nomad clients do not need to communicate with each other. You can block traffic | External | Rerun jobs with SSH functionality |=== +-- [#egress-nomad] === Egress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Destination @@ -179,6 +190,7 @@ Nomad clients do not need to communicate with each other. You can block traffic | Nomad Load Balancer | Internal communication |=== +-- [#external-vms] == External VMs @@ -186,8 +198,10 @@ Similar to Nomad clients, there is no need for external VMs to communicate with [#ingress-external] === Ingress -[.table.table-striped] -[cols=3*, options="header", stripes=even] + +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Source @@ -213,6 +227,7 @@ Similar to Nomad clients, there is no need for external VMs to communicate with | External | Rerun jobs with SSH functionality |=== +-- [#egress-external] === Egress @@ -240,8 +255,9 @@ When the `assignPublicIP` option is set to false, restricting traffic with secur Within the ingress rules of the VM security group, the following rules can be created to harden your installation: -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -252,6 +268,7 @@ Within the ingress rules of the VM security group, the following rules can be cr | Allows users to SSH into failed virtual machine based jobs and to retry and debug |=== +-- [#using-public-ips] === Using public IP addresses @@ -260,8 +277,9 @@ When the `assignPublicIP` option is set to true, all EC2 instances created by ma When hardening an installation where the machine provisioner uses public IP addresses, the following rules can be created: -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Port | Origin @@ -272,6 +290,7 @@ When hardening an installation where the machine provisioner uses public IP addr | Allows users to SSH into failed virtual machine based jobs to retry and debug. |=== +-- ifndef::pdf[] ## Next steps diff --git a/docs/server-admin-4.8/modules/operator/pages/application-lifecycle.adoc b/docs/server-admin-4.8/modules/operator/pages/application-lifecycle.adoc index 7fcf47d391..e12487ff0f 100644 --- a/docs/server-admin-4.8/modules/operator/pages/application-lifecycle.adoc +++ b/docs/server-admin-4.8/modules/operator/pages/application-lifecycle.adoc @@ -25,8 +25,9 @@ With each minor release, in accordance with our link:https://circleci.com/legal/ CAUTION: Future dates listed here may change at any time. -[.table.table-striped] -[cols=3*, options="header", stripes=even] +[.table-scroll] +-- +[cols=3*, options="header"] |=== | Version | Released | End of Support @@ -66,3 +67,4 @@ CAUTION: Future dates listed here may change at any time. |7/28/2022 |7/31/2023 |=== +-- diff --git a/docs/server-admin-4.8/modules/operator/pages/circleci-server-security-features.adoc b/docs/server-admin-4.8/modules/operator/pages/circleci-server-security-features.adoc index f18e80c201..1bb368097d 100644 --- a/docs/server-admin-4.8/modules/operator/pages/circleci-server-security-features.adoc +++ b/docs/server-admin-4.8/modules/operator/pages/circleci-server-security-features.adoc @@ -96,8 +96,9 @@ The following are the system events that are logged. See `action` in the < Date: Sun, 9 Nov 2025 00:22:10 +0000 Subject: [PATCH 10/13] remove dependencies --- package-lock.json | 974 +--------------------------------------------- 1 file changed, 3 insertions(+), 971 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9778441533..cdabdd7f4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,8 +21,7 @@ "@sntke/antora-mermaid-extension": "^0.0.8", "browser-sync": "^3.0.4", "gulp": "^5.0.0", - "httpsnippet": "^3.0.9", - "puppeteer": "^23.0.0" + "httpsnippet": "^3.0.9" } }, "node_modules/@algolia/abtesting": { @@ -1158,67 +1157,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@puppeteer/browsers": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", - "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.0", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.6.3", - "tar-fs": "^3.0.6", - "unbzip2-stream": "^1.4.3", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@puppeteer/browsers/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", @@ -1544,13 +1482,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/cors": { "version": "2.8.18", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.18.tgz", @@ -1590,17 +1521,6 @@ "dev": true, "optional": true }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -1790,19 +1710,6 @@ "node": ">=8.11" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -1911,88 +1818,6 @@ "license": "Apache-2.0", "optional": true }, - "node_modules/bare-fs": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.0.tgz", - "integrity": "sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", - "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", - "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", - "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-path": "^3.0.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2024,16 +1849,6 @@ "node": "^4.5.0 || >= 5.9" } }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -2273,16 +2088,6 @@ "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/camelize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", @@ -2334,27 +2139,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chromium-bidi": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", - "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "3.0.1", - "zod": "3.23.8" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/chromium-bidi/node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -2555,33 +2339,6 @@ "node": ">= 0.10" } }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -2687,16 +2444,6 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -2739,21 +2486,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2806,13 +2538,6 @@ "node": ">= 0.8.0" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1367902", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", - "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/diff3": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", @@ -3121,26 +2846,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -3209,62 +2914,6 @@ "dev": true, "license": "MIT" }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -3346,79 +2995,6 @@ "dev": true, "license": "MIT" }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/extract-zip/node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/fast-copy": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", @@ -3537,16 +3113,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/fdir": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", @@ -3874,46 +3440,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -4327,45 +3853,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/http2-client": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", @@ -4555,23 +4042,6 @@ "node": ">=0.10.0" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4608,16 +4078,6 @@ "node": ">=10.13.0" } }, - "node_modules/ip-address": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", - "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -4632,13 +4092,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4928,13 +4381,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, "node_modules/json-pointer": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", @@ -5061,13 +4507,6 @@ "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -5432,19 +4871,9 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", @@ -5743,65 +5172,6 @@ "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==", "dev": true }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -5816,19 +5186,6 @@ "dev": true, "license": "(MIT AND Zlib)" }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -5844,25 +5201,6 @@ "node": ">=0.8" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -6256,68 +5594,6 @@ "node": ">=12.0.0" } }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -6329,94 +5605,6 @@ "once": "^1.3.1" } }, - "node_modules/puppeteer": { - "version": "23.11.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", - "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", - "deprecated": "< 24.15.0 is no longer supported", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.6.1", - "chromium-bidi": "0.11.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1367902", - "puppeteer-core": "23.11.1", - "typed-query-selector": "^2.12.0" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "23.11.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", - "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.6.1", - "chromium-bidi": "0.11.0", - "debug": "^4.4.0", - "devtools-protocol": "0.0.1367902", - "typed-query-selector": "^2.12.0", - "ws": "^8.18.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/puppeteer-core/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6729,16 +5917,6 @@ "node": ">=0.10.0" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/resolve-options": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", @@ -7365,17 +6543,6 @@ "node": ">=8.0.0" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/socket.io": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", @@ -7536,61 +6703,6 @@ "dev": true, "license": "MIT" }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/sonic-boom": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", @@ -7925,33 +7037,6 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", @@ -8043,13 +7128,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true, - "license": "MIT" - }, "node_modules/ua-parser-js": { "version": "1.0.40", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", @@ -8091,42 +7169,6 @@ "node": ">=0.8.0" } }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unbzip2-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -8575,16 +7617,6 @@ "dependencies": { "buffer-crc32": "~0.2.3" } - }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } From ff55f801cb084a4457d177ddc2656085932a0689 Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Sun, 9 Nov 2025 00:47:38 +0000 Subject: [PATCH 11/13] fix some style issues --- .../execution-resources/docker-arm-resource-table.adoc | 2 +- styles/config/vocabularies/Docs/accept.txt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc b/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc index d43afb514e..549b981a8a 100644 --- a/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc +++ b/docs/guides/modules/ROOT/partials/execution-resources/docker-arm-resource-table.adoc @@ -2,7 +2,7 @@ **** *Arm on Docker* For credit and access information see the link:https://circleci.com/product/features/resource-classes/[Resource classes page]. Resource class access is dependent on your xref:guides:plans-pricing:plan-overview.adoc[Plan] -To find out which CircleCI Docker convenience images support Arm resource classes, you can refer to link:https://hub.docker.com/u/cimg[Docker hub]: +To find out which CircleCI Docker convenience images support Arm resource classes, you can refer to link:https://hub.docker.com/u/cimg[Docker Hub]: . Select the image (for example, `cimg/python`). . Select the **tags** tab. diff --git a/styles/config/vocabularies/Docs/accept.txt b/styles/config/vocabularies/Docs/accept.txt index 71387d9461..c7bc4a7efa 100644 --- a/styles/config/vocabularies/Docs/accept.txt +++ b/styles/config/vocabularies/Docs/accept.txt @@ -163,7 +163,7 @@ GKE \bGoogle Container Registry\b \bGoogle Play Store\b gotestsum -GPU +GPUs? Gradle Grafana Gzip @@ -371,6 +371,7 @@ URLEncoder UUID UUIDs? [Vv]alidator +vCPUs? VCS Velero Viget From 60b2da96b4be07f26e1f93e5ab3b6167356d8a6d Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Tue, 11 Nov 2025 10:17:13 +0000 Subject: [PATCH 12/13] don't lint the style guide --- docs/contributors/modules/docs-style/pages/formatting.adoc | 4 ++++ docs/contributors/modules/docs-style/pages/headings.adoc | 2 ++ docs/contributors/modules/docs-style/pages/index.adoc | 2 ++ docs/contributors/modules/docs-style/pages/links.adoc | 2 ++ .../modules/docs-style/pages/style-and-voice.adoc | 2 ++ .../modules/docs-style/pages/using-code-samples.adoc | 4 +++- docs/contributors/modules/docs-style/pages/using-images.adoc | 4 +++- docs/contributors/modules/docs-style/pages/using-lists.adoc | 2 ++ docs/contributors/modules/docs-style/pages/using-tables.adoc | 4 +++- .../modules/templates/pages/template-conceptual.adoc | 2 ++ .../contributors/modules/templates/pages/template-how-to.adoc | 3 +++ .../modules/templates/pages/template-tutorial.adoc | 3 +++ docs/contributors/modules/templates/pages/test-page-one.adoc | 3 +++ 13 files changed, 34 insertions(+), 3 deletions(-) diff --git a/docs/contributors/modules/docs-style/pages/formatting.adoc b/docs/contributors/modules/docs-style/pages/formatting.adoc index b908721223..312f6e0bb2 100644 --- a/docs/contributors/modules/docs-style/pages/formatting.adoc +++ b/docs/contributors/modules/docs-style/pages/formatting.adoc @@ -2,6 +2,8 @@ :page-noindex: true :experimental: +pass:[] + [#styling-text] == Styling text @@ -94,3 +96,5 @@ This is a longer admonition with an ordered list: . Step 2 . Step 3 **** + +pass:[] diff --git a/docs/contributors/modules/docs-style/pages/headings.adoc b/docs/contributors/modules/docs-style/pages/headings.adoc index 8402ea885d..e7711ad2b0 100644 --- a/docs/contributors/modules/docs-style/pages/headings.adoc +++ b/docs/contributors/modules/docs-style/pages/headings.adoc @@ -1,5 +1,6 @@ = Headings +pass:[] * Write headings in a logical sequence. If you read section titles in order, the flow should present a good storyline for the doc. * Do not skip heading levels. For example, try not to jump from `h2` to `h4`, missing out `h3`. @@ -21,3 +22,4 @@ ** **Bad:** For more information, see the xref:guides:getting-started:hello-world.adoc["Hello world"] guide. * Do not use inline literal text in headings. +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/index.adoc b/docs/contributors/modules/docs-style/pages/index.adoc index c2be532380..3170de092d 100644 --- a/docs/contributors/modules/docs-style/pages/index.adoc +++ b/docs/contributors/modules/docs-style/pages/index.adoc @@ -3,6 +3,8 @@ :experimental: :page-layout: subsection +pass:[] This guide is a reference for contributors to CircleCI docs. Our style guide evolves so you will probably find older documentation does not meet the requirements set out here. Use this guide to help you write new docs, and when working on existing documentation it would be great if you can make edits to help keep everything consistent. For further information on markdown and AsciiDoc syntax refer to the https://github.github.com/gfm/[markdown documentation] and https://asciidoctor.org/docs/user-manual/[Asciidoctor User Guide]. +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/links.adoc b/docs/contributors/modules/docs-style/pages/links.adoc index 8ddefa8265..51f20f47ac 100644 --- a/docs/contributors/modules/docs-style/pages/links.adoc +++ b/docs/contributors/modules/docs-style/pages/links.adoc @@ -1,5 +1,6 @@ = Cross references and links +pass:[] This page covers how to create links and cross references in CircleCI docs. [#cross-references] @@ -26,3 +27,4 @@ See the link:https://docs.antora.org/antora/latest/page/resource-id-coordinates/ ---- link:https://circleci.com[CircleCI] ---- +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/style-and-voice.adoc b/docs/contributors/modules/docs-style/pages/style-and-voice.adoc index ad64bf56ff..7f51b6f2a1 100644 --- a/docs/contributors/modules/docs-style/pages/style-and-voice.adoc +++ b/docs/contributors/modules/docs-style/pages/style-and-voice.adoc @@ -1,6 +1,7 @@ = Style and voice :experimental: +pass:[] == Talk confidently and directly Use an active voice, talk directly to the reader using simple, direct, clear and confident language. Using active voice helps us to keep instructions as short as possible, and is, in most cases, the quickest way to convey meaning to the reader @@ -73,3 +74,4 @@ Assume technical competence but explain concepts clearly and simply. Some concep ** Read the setup guide … ** Set up your account … * **Do use** open source, **not** opensource, or open-source +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/using-code-samples.adoc b/docs/contributors/modules/docs-style/pages/using-code-samples.adoc index 807d3f8b4f..7dae32298b 100644 --- a/docs/contributors/modules/docs-style/pages/using-code-samples.adoc +++ b/docs/contributors/modules/docs-style/pages/using-code-samples.adoc @@ -1,5 +1,6 @@ = Using code samples +pass:[] * Provide code examples to help with clarity, and to help the reader reproduce the subject matter. * CircleCI config should always be tested as valid before adding it to docs. @@ -52,4 +53,5 @@ workflows: my-workflow: jobs: - hello-job ----- \ No newline at end of file +---- +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/using-images.adoc b/docs/contributors/modules/docs-style/pages/using-images.adoc index 9d2454526b..515dc0104c 100644 --- a/docs/contributors/modules/docs-style/pages/using-images.adoc +++ b/docs/contributors/modules/docs-style/pages/using-images.adoc @@ -2,6 +2,7 @@ :page-description: Guidelines for using images in CircleCI documentation. :experimental: +pass:[] This page provides guidelines for using images in CircleCI documentation. == Guidelines for all images @@ -109,4 +110,5 @@ sequenceDiagram participant Bob Alice->>Bob: Hello Bob, how are you? Bob-->>Alice: Great! -.... \ No newline at end of file +.... +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/using-lists.adoc b/docs/contributors/modules/docs-style/pages/using-lists.adoc index c77669d975..c5bd8e3464 100644 --- a/docs/contributors/modules/docs-style/pages/using-lists.adoc +++ b/docs/contributors/modules/docs-style/pages/using-lists.adoc @@ -1,5 +1,6 @@ = Using lists +pass:[] * To generate numbered steps (an ordered list) use the following syntax: + [source,adoc] @@ -28,3 +29,4 @@ * Capitalize the first word of each item in a list. * If the text in the bullet is a full sentence or completes the intro stem use a period at the end. +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/docs-style/pages/using-tables.adoc b/docs/contributors/modules/docs-style/pages/using-tables.adoc index 50d04a3adc..f490569f97 100644 --- a/docs/contributors/modules/docs-style/pages/using-tables.adoc +++ b/docs/contributors/modules/docs-style/pages/using-tables.adoc @@ -1,5 +1,6 @@ = Using tables +pass:[] == Basic table syntax Use the following format for tables: @@ -84,4 +85,5 @@ Looks like: == Advanced table options -There are a lot of options for formatting tables, cell, rows, columns. For more information, see the link:https://docs.asciidoctor.org/asciidoc/latest/tables/build-a-basic-table/[Asciidoctor docs] \ No newline at end of file +There are a lot of options for formatting tables, cell, rows, columns. For more information, see the link:https://docs.asciidoctor.org/asciidoc/latest/tables/build-a-basic-table/[Asciidoctor docs] +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/templates/pages/template-conceptual.adoc b/docs/contributors/modules/templates/pages/template-conceptual.adoc index 1b1c440d0c..47575ded39 100644 --- a/docs/contributors/modules/templates/pages/template-conceptual.adoc +++ b/docs/contributors/modules/templates/pages/template-conceptual.adoc @@ -3,6 +3,7 @@ :page-description: A short page description goes here max 155 characters. :experimental: +pass:[] //// :page-platform: drives the platform badges that you see in the info bar under the page title. :page-description: is used for SEO and meta description. This should be a short description of the page content. Between 70 and 155 characters. @@ -196,3 +197,4 @@ Place the answer here after the question. * xref:template-tutorial.adoc[Tutorial template] * xref:guides:about-circleci:benefits-of-circleci.adoc[Benefits of CircleCI] * xref:guides:about-circleci:concepts.adoc[CircleCI concepts] +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/templates/pages/template-how-to.adoc b/docs/contributors/modules/templates/pages/template-how-to.adoc index 48fb51346d..2f2f7935ce 100644 --- a/docs/contributors/modules/templates/pages/template-how-to.adoc +++ b/docs/contributors/modules/templates/pages/template-how-to.adoc @@ -3,6 +3,7 @@ :page-description: A short page description goes here max 155 characters. :experimental: +pass:[] //// Some notes on attributes: :page-platform: drives the platform badges that you see in the info bar under the page title. @@ -191,3 +192,5 @@ End the guide with a conclusion section that summarizes what was covered. // Here you can inlude links to other pages in docs or the blog etc. where the reader should head next. * xref:guides:about-circleci:benefits-of-circleci.adoc[Benefits of CircleCI] * xref:guides:about-circleci:concepts.adoc[CircleCI concepts] + +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/templates/pages/template-tutorial.adoc b/docs/contributors/modules/templates/pages/template-tutorial.adoc index 6240e3c624..b12e6177cd 100644 --- a/docs/contributors/modules/templates/pages/template-tutorial.adoc +++ b/docs/contributors/modules/templates/pages/template-tutorial.adoc @@ -3,6 +3,7 @@ :page-description: A short page description goes here :experimental: +pass:[] //// Some notes on attributes @@ -153,3 +154,5 @@ End the tutoral with a conclusion section that summarizes what was covered. // Here you can inlude links to other pages in docs or the blog etc. where the reader should head next. * xref:guides:about-circleci:benefits-of-circleci.adoc[Benefits of CircleCI] * xref:guides:about-circleci:concepts.adoc[CircleCI concepts] + +pass:[] \ No newline at end of file diff --git a/docs/contributors/modules/templates/pages/test-page-one.adoc b/docs/contributors/modules/templates/pages/test-page-one.adoc index 1213cc8d56..a3dfdbd1ee 100644 --- a/docs/contributors/modules/templates/pages/test-page-one.adoc +++ b/docs/contributors/modules/templates/pages/test-page-one.adoc @@ -3,6 +3,7 @@ :page-description: A page with all components for testing the new docs site. :experimental: +pass:[] [#introduction] == Introduction @@ -115,3 +116,5 @@ workflows: *Thing two*:: Definition of thing two. *Thing three*:: Definition of thing three. + +pass:[] \ No newline at end of file From 947cb95b0c756150ff57b5a3ca54c64f1db675cd Mon Sep 17 00:00:00 2001 From: rosie yohannan Date: Tue, 11 Nov 2025 10:34:05 +0000 Subject: [PATCH 13/13] some style fixes --- .../about-circleci/pages/concepts.adoc | 22 +++++++++++++------ .../pages/circleci-images.adoc | 15 ++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/docs/guides/modules/about-circleci/pages/concepts.adoc b/docs/guides/modules/about-circleci/pages/concepts.adoc index 667d919286..1f855224d6 100644 --- a/docs/guides/modules/about-circleci/pages/concepts.adoc +++ b/docs/guides/modules/about-circleci/pages/concepts.adoc @@ -46,7 +46,11 @@ CircleCI configurations use YAML. See the xref:getting-started:introduction-to-y [#contexts] == Contexts -Contexts provide a mechanism for securing and sharing environment variables across projects. The environment variables are defined as name/value pairs and are injected at runtime. After a context has been created, you can use the `context` key in the workflows section of a project's `.circleci/config.yml` file to give any job(s) access to the environment variables associated with the context. +Contexts provide a mechanism for securing and sharing environment variables across projects. The environment variables are defined as name/value pairs and are injected at runtime. The process to use a context is as follows: + +. Create a context. +. Add environment variables to the context. +. Use the `context` key in the workflows section of a project's configuration file to give access to the environment variables stored in the context. image::guides:ROOT:contexts_cloud.png[Contexts Overview] @@ -55,7 +59,11 @@ See the xref:security:contexts.adoc[Using contexts] page for more information. [#data-persistence] == Data persistence -Persist data to move data between jobs and speed up your build. There are three main methods for persisting data in CircleCI: artifacts, caches, and workspaces. +Persist data to move data between jobs and speed up your build. Persist data using one of three methods in CircleCI: + +* Artifacts +* Caches +* Workspaces. image::guides:ROOT:workspaces.png[workflow illustration] @@ -226,7 +234,7 @@ See the xref:optimize:docker-layer-caching.adoc[Docker layer caching] page for m [#dynamic-configuration] == Dynamic configuration -Instead of manually creating your configuration for each CircleCI project, you can generate this configuration dynamically, based on specific pipeline parameters or file paths. This is especially helpful where your team is working on a monorepo (or a single repository). Dynamic configuration allows you to trigger builds from _specific_ parts of your project, rather than rebuilding everything each time. +Instead of manually creating your configuration for each CircleCI project, you can generate this configuration dynamically, based on specific pipeline parameters or file paths. Dynamic configuration is especially helpful where your team is working on a monorepo (or a single repository). Dynamic configuration allows you to trigger builds from _specific_ parts of your project, rather than rebuilding everything each time. See the xref:orchestrate:dynamic-config.adoc[Dynamic configuration] page for more information. @@ -328,7 +336,7 @@ workflows: -- ==== -The primary container is defined by the first image listed in `.circleci/config.yml` file. This is where commands are executed. The Docker executor spins up a container with a Docker image. The machine executor spins up a complete Ubuntu virtual machine image. Further images can be added to spin up secondary/service containers. +The primary container is defined by the first image listed in `.circleci/config.yml` file. Commands are executed in the primary container. The Docker executor spins up a container with a Docker image. The machine executor spins up a complete Ubuntu virtual machine image. Further images can be added to spin up secondary/service containers. For added security when using the Docker executor and running Docker commands, the `setup_remote_docker` key can be used to spin up another Docker container in which to run these commands. For more information see the xref:execution-managed:building-docker-images.adoc[Running Docker commands] page. @@ -337,7 +345,7 @@ For more information, see the xref:execution-managed:executor-intro.adoc[Executi [#images] == Images -An image is a packaged system that includes instructions for creating a running container. The primary container is defined by the first image listed in a `.circleci/config.yml` file. This is where commands are executed for jobs, using the Docker or machine executor. +An image is a packaged system that includes instructions for creating a running container. The primary container is defined by the first image listed in a `.circleci/config.yml` file. The primary container is where commands are executed for jobs, using the Docker or machine executor. The *Docker executor* spins up a container with a Docker image. CircleCI maintains xref:execution-managed:circleci-images.adoc[convenience images] for popular languages on Docker Hub. @@ -439,7 +447,7 @@ See xref:optimize:parallelism-faster-jobs.adoc[Test splitting and parallelism] p [#pipelines] == Pipelines -A CircleCI pipeline is the full set of processes you run when you trigger work on your projects. Pipelines encompass your workflows, which in turn coordinate your jobs. This is all defined in your project <>. +A CircleCI pipeline is the full set of processes you run when you trigger work on your projects. Pipelines encompass your workflows, which in turn coordinate your jobs. Pipelines are defined in your project <>. Pipelines represent methods for interacting with your configuration: @@ -475,7 +483,7 @@ A standalone project can have: * One or more configurations (pipeline definitions), including, but not limited to, a `.circleci/config.yml` file in the repository associated with the project. * One or more triggers (events from a source of change), including, but not limited to, a VCS. A trigger determines which configuration it should use to start a pipeline. -Select *Projects* in the CircleCI web app sidebar to enter the projects dashboard. On the dashboard, you can set up and follow any project you have access to. There are two options: +Select *Projects* in the CircleCI web app sidebar to enter the projects dashboard. On the dashboard, you can set up and follow any project you have access to. * _Set Up_ or _Create_ any project that you are the owner of in your VCS. * _Follow_ any project in your organization to gain access to its pipelines and to subscribe to xref:integration:notifications.adoc[email notifications] for the project's status. diff --git a/docs/guides/modules/execution-managed/pages/circleci-images.adoc b/docs/guides/modules/execution-managed/pages/circleci-images.adoc index 37b5db6cce..544db5b8a1 100644 --- a/docs/guides/modules/execution-managed/pages/circleci-images.adoc +++ b/docs/guides/modules/execution-managed/pages/circleci-images.adoc @@ -62,8 +62,7 @@ next-generation convenience images are based on this image. *When to use it?* -If you need a generic image to run on CircleCI, to use with orbs, or to use as a -base for your own custom Docker image, this image is for you. +If you need a generic image to use with orbs, or to use as a base for your own custom Docker image, this image is for you. *Resources* @@ -84,9 +83,9 @@ This Go image is a direct replacement for the legacy CircleCI Go image (`circlec [#best-practices] == Best practices -The next-gen convenience images in the following sections are based on the most recent Ubuntu LTS Docker images and installed with the base libraries for the language or services, so it is best practice to use the most specific image possible. This makes your builds more deterministic by preventing an upstream image from introducing unintended changes to your image. +The next-gen convenience images in the following sections are based on the most recent Ubuntu LTS Docker images. Next-gen images have base libraries for languages and/or services. It is best practice to use the most specific image possible to make your builds more deterministic by preventing an upstream image from introducing unintended changes to your image. -That is, to prevent unintended changes that come from upstream, instead of using `cimg/ruby:2.4-node` use a more specific version of these containers to ensure the image does not change with upstream changes until you change the tag. +To prevent unintended changes from upstream, instead of using `cimg/ruby:2.4-node` use a more specific version of these containers. This ensures the image does not change with upstream changes until you change the tag. For example, pin down those images to a specific point version, like `cimg/ruby:2.4.10-node`. Specifying the version is possible for any of the CircleCI images. @@ -274,13 +273,7 @@ All convenience images have been extended with additional tools, installed with * `xvfb` (legacy images only) * `zip` -The specific version of a particular package that gets installed in a particular -CircleCI image variant depends on the default version included in the package -directory for the Linux distribution/version installed in that variant's base -image. The legacy CircleCI convenience images are https://packages.debian.org/jessie/[Debian Jessie]- -or https://packages.debian.org/stretch/[Stretch]-based images, -however the next-gen images, `cimg`, extend the official https://packages.ubuntu.com[Ubuntu] image. -For details on the next-gen images, see the https://circleci.com/developer/images/[Developer Hub]. Each image is tracked in its own repository. +The specific version of a package that gets installed in a CircleCI image variant depends on the default version included in the package directory for the Linux distribution/version installed in that variant's base image. The legacy CircleCI convenience images are link:https:/ packages.debian.org/jessie/[Debian Jessie]- or https://packages.debian.org/stretch/[Stretch]-based images, however the next-gen images, `cimg`, extend the official https://packages.ubuntu.com[Ubuntu] image. For details on the next-gen images, see the https://circleci.com/developer/images/[Developer Hub]. Each image is tracked in its own repository. The following packages are pre-installed in convenience images using `curl` or other means.