Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2021-08-16 21:27:34 +0300
committerGar <gar+gh@danger.computer>2021-08-17 19:02:11 +0300
commit7a582644d544af2c2b450b18bed1b4d5f71cd786 (patch)
treee157c4c548d878a98a7bc06ab43ac481fc32ffd6
parent22f3bbb2a0bf22280e0656852b9bb20795463ec5 (diff)
chore(ci): check that docs are up to date in ci
When we accidentally edit the auto-generated portions of the docs, this will catch the error and cause CI to fail. Later phase automated safety check that the early-stage human commenting in the last commit also addresses. Re: #3654 Re: #3630 PR-URL: https://github.com/npm/cli/pull/3655 Credit: @isaacs Close: #3655 Reviewed-by: @nlf
-rw-r--r--.github/workflows/ci.yml19
-rw-r--r--Makefile8
-rw-r--r--scripts/git-dirty.js16
3 files changed, 41 insertions, 2 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3b622ed82..ffa194d01 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -20,7 +20,24 @@ jobs:
run: node . run posttest
env:
DEPLOY_VERSION: testing
-
+
+ check_docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js 14.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: 14.x
+ - name: Install dependencies
+ run: |
+ node . install --ignore-scripts --no-audit
+ - name: Rebuild the docs
+ run: make freshdocs
+ - name: Git should not be dirty
+ run: node scripts/git-dirty.js
+
+
licenses:
runs-on: ubuntu-latest
steps:
diff --git a/Makefile b/Makefile
index 0005223d9..8762574da 100644
--- a/Makefile
+++ b/Makefile
@@ -76,6 +76,12 @@ docs/content/using-npm/config.md: scripts/config-doc.js lib/utils/config/*.js
docs/content/commands/npm-%.md: lib/%.js scripts/config-doc-command.js lib/utils/config/*.js
node scripts/config-doc-command.js $@ $<
+freshdocs:
+ touch lib/utils/config/definitions.js
+ touch scripts/config-doc-command.js
+ touch scripts/config-doc.js
+ make docs
+
test: dev-deps
node bin/npm-cli.js test
@@ -109,4 +115,4 @@ publish: gitclean ls-ok link test smoke-tests docs prune
release: gitclean ls-ok docs prune
@bash scripts/release.sh
-.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok dev-deps prune
+.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok dev-deps prune freshdocs
diff --git a/scripts/git-dirty.js b/scripts/git-dirty.js
new file mode 100644
index 000000000..4199768de
--- /dev/null
+++ b/scripts/git-dirty.js
@@ -0,0 +1,16 @@
+#!/usr/bin/env node
+const { spawnSync } = require('child_process')
+const changes = spawnSync('git', ['status', '--porcelain', '-uno'])
+const stdout = changes.stdout.toString('utf8')
+const stderr = changes.stderr.toString('utf8')
+const { status, signal } = changes
+console.log(stdout)
+console.error(stderr)
+if (status || signal) {
+ console.error({ status, signal })
+ process.exitCode = status || 1
+}
+if (stdout.trim() !== '')
+ throw new Error('git dirty')
+else
+ console.log('git clean')