зеркало из https://github.com/github/docs.git
add separate clone script to be run as heroku-prebuild script or locally by docs writers
This commit is contained in:
Родитель
4341a92e7f
Коммит
129641c359
|
@ -140,7 +140,7 @@
|
|||
"prevent-pushes-to-main": "node script/prevent-pushes-to-main.js",
|
||||
"pa11y-ci": "pa11y-ci",
|
||||
"pa11y-test": "start-server-and-test browser-test-server 4001 pa11y-ci",
|
||||
"heroku-prebuild": "rm -rf content/early-access-test && git clone https://${TEMP_KEY_ACCESS_KEY}@github.com/docs/early-access-test content/early-access-test && rm -rf content/early-access-test/.git"
|
||||
"heroku-prebuild": "node script/clone-early-access.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "12 - 14"
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
// [start-readme]
|
||||
//
|
||||
// This script is run as a prebuild script during staging and deployments on Heroku.
|
||||
// If you have access to the PAT, it can also be run locally to clone https://github.com/docs/early-access.
|
||||
// The script clones a branch in the early-access repo that matches the current branch in the docs repo;
|
||||
// if one can't be found, it clones the `main` branch.
|
||||
//
|
||||
// [end-readme]
|
||||
|
||||
require('dotenv').config()
|
||||
const { GITHUB_DOCUBOT_REPO_PAT } = process.env
|
||||
|
||||
// TODO...
|
||||
// // Exit if early access is not enabled
|
||||
// if (!process.env.EARLY_ACCESS_ENABLED) {
|
||||
// console.log('Skipping early access, not enable')
|
||||
// process.exit(0)
|
||||
// }
|
||||
|
||||
// Exit if PAT is not found
|
||||
if (!process.env.GITHUB_DOCUBOT_REPO_PAT) {
|
||||
console.log('Skipping early access, not authorized')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const { execSync } = require('child_process')
|
||||
const rimraf = require('rimraf').sync
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
// Early Access details
|
||||
const earlyAccessDir = 'early-access-test'
|
||||
const earlyAccessRepo = `https://${GITHUB_DOCUBOT_REPO_PAT}@github.com/docs/${earlyAccessDir}`
|
||||
const earlyAccessContentDir = path.join(process.cwd(), 'content', earlyAccessDir)
|
||||
|
||||
// Look for a branch in early-access that matches the current docs branch;
|
||||
// otherwise fall back to `main`
|
||||
const docsBranch = execSync('git branch --show-current').toString().trim()
|
||||
|
||||
const earlyAccessBranch = execSync(`git ls-remote --heads ${earlyAccessRepo} ${docsBranch}`).toString()
|
||||
? docsBranch
|
||||
: 'main'
|
||||
|
||||
// Remove any dir that may pre-exist
|
||||
rimraf(earlyAccessContentDir)
|
||||
|
||||
// Clone the repo
|
||||
execSync(`git clone --single-branch --branch ${earlyAccessBranch} ${earlyAccessRepo} ${earlyAccessContentDir}`)
|
||||
console.log(`Branch: ${earlyAccessBranch}`)
|
||||
|
||||
// Remove the .git dir
|
||||
rimraf(`${earlyAccessContentDir}/.git`)
|
||||
|
||||
// Confirm the directory exists
|
||||
fs.existsSync(earlyAccessContentDir)
|
Загрузка…
Ссылка в новой задаче