feat: allow user to specify deploymentBranch property in docusaurus.config.js (#5841)

* feat: allow user to specify deploymentBranch property in docusaurus.config.js

* docs: remove extra backtick

* docs: fix broken code block
This commit is contained in:
William Poetra Yoga 2021-10-31 11:29:22 +07:00 committed by GitHub
parent 6ccda86e0f
commit ca9bd244aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 6 deletions

View file

@ -39,6 +39,7 @@ export interface DocusaurusConfig {
noIndex: boolean; noIndex: boolean;
organizationName?: string; organizationName?: string;
projectName?: string; projectName?: string;
deploymentBranch?: string;
githubHost?: string; githubHost?: string;
githubPort?: string; githubPort?: string;
plugins?: PluginConfig[]; plugins?: PluginConfig[];

View file

@ -109,13 +109,18 @@ This behavior can have SEO impacts and create relative link issues.
// - Site url: https://<organization>.github.io // - Site url: https://<organization>.github.io
const isGitHubPagesOrganizationDeploy = const isGitHubPagesOrganizationDeploy =
projectName.indexOf('.github.io') !== -1; projectName.indexOf('.github.io') !== -1;
if (isGitHubPagesOrganizationDeploy && !process.env.DEPLOYMENT_BRANCH) { if (
isGitHubPagesOrganizationDeploy &&
!process.env.DEPLOYMENT_BRANCH &&
!siteConfig.deploymentBranch
) {
throw new Error(`For GitHub pages organization deployments, 'docusaurus deploy' does not assume anymore that 'master' is your default Git branch. throw new Error(`For GitHub pages organization deployments, 'docusaurus deploy' does not assume anymore that 'master' is your default Git branch.
Please provide the branch name to deploy to as an environment variable. Please provide the branch name to deploy to as an environment variable, for example DEPLOYMENT_BRANCH=main or DEPLOYMENT_BRANCH=master .
Try using DEPLOYMENT_BRANCH=main or DEPLOYMENT_BRANCH=master`); You can also set the deploymentBranch property in docusaurus.config.js .`);
} }
const deploymentBranch = process.env.DEPLOYMENT_BRANCH || 'gh-pages'; const deploymentBranch =
process.env.DEPLOYMENT_BRANCH || siteConfig.deploymentBranch || 'gh-pages';
console.log(`${chalk.cyan('deploymentBranch:')} ${deploymentBranch}`); console.log(`${chalk.cyan('deploymentBranch:')} ${deploymentBranch}`);
const githubHost = const githubHost =

View file

@ -143,6 +143,7 @@ export const ConfigSchema = Joi.object({
.default(DEFAULT_CONFIG.onDuplicateRoutes), .default(DEFAULT_CONFIG.onDuplicateRoutes),
organizationName: Joi.string().allow(''), organizationName: Joi.string().allow(''),
projectName: Joi.string().allow(''), projectName: Joi.string().allow(''),
deploymentBranch: Joi.string().optional(),
customFields: Joi.object().unknown().default(DEFAULT_CONFIG.customFields), customFields: Joi.object().unknown().default(DEFAULT_CONFIG.customFields),
githubHost: Joi.string(), githubHost: Joi.string(),
plugins: Joi.array().items(PluginSchema).default(DEFAULT_CONFIG.plugins), plugins: Joi.array().items(PluginSchema).default(DEFAULT_CONFIG.plugins),

View file

@ -194,6 +194,18 @@ module.exports = {
}; };
``` ```
### `deploymentBranch` {#deploymentbranch}
- Type: `string`
The name of the branch to deploy the static files to. Used by the deployment command.
```js title="docusaurus.config.js"
module.exports = {
deploymentBranch: 'gh-pages',
};
```
### `githubHost` {#githubhost} ### `githubHost` {#githubhost}
- Type: `string` - Type: `string`

View file

@ -29,7 +29,7 @@ They are used in a number of places such as your site's title and headings, brow
### Deployment configurations {#deployment-configurations} ### Deployment configurations {#deployment-configurations}
Deployment configurations such as `projectName` and `organizationName` are used when you deploy your site with the `deploy` command. Deployment configurations such as `projectName`, `organizationName`, and optionally `deploymentBranch` are used when you deploy your site with the `deploy` command.
It is recommended to check the [deployment docs](deployment.mdx) for more information. It is recommended to check the [deployment docs](deployment.mdx) for more information.

View file

@ -75,6 +75,7 @@ First, modify your `docusaurus.config.js` and add the required params:
| --- | --- | | --- | --- |
| `organizationName` | The GitHub user or organization that owns the repository. If you are the owner, it is your GitHub username. In the case of Docusaurus, it is "_facebook_" which is the GitHub organization that owns Docusaurus. | | `organizationName` | The GitHub user or organization that owns the repository. If you are the owner, it is your GitHub username. In the case of Docusaurus, it is "_facebook_" which is the GitHub organization that owns Docusaurus. |
| `projectName` | The name of the GitHub repository. For example, the repository name for Docusaurus is "docusaurus", so the project name is "docusaurus". | | `projectName` | The name of the GitHub repository. For example, the repository name for Docusaurus is "docusaurus", so the project name is "docusaurus". |
| `deploymentBranch` | The name of the branch to deploy the static files to. This defaults to "gh-pages" for non-organization GitHub Pages repos. If the repo name ends in ".github.io", you have to either specify this property or set the environment variable `DEPLOYMENT_BRANCH`. |
| `url` | URL for your GitHub Page's user/organization page. This is commonly https://_username_.github.io. | | `url` | URL for your GitHub Page's user/organization page. This is commonly https://_username_.github.io. |
| `baseUrl` | Base URL for your project. For projects hosted on GitHub pages, it follows the format "/_projectName_/". For https://github.com/facebook/docusaurus, `baseUrl` is `/docusaurus/`. | | `baseUrl` | Base URL for your project. For projects hosted on GitHub pages, it follows the format "/_projectName_/". For https://github.com/facebook/docusaurus, `baseUrl` is `/docusaurus/`. |
@ -127,7 +128,7 @@ Optional parameters, also set as environment variables:
| Name | Description | | Name | Description |
| --- | --- | | --- | --- |
| `USE_SSH` | Set to `true` to use SSH instead of the default HTTPS for the connection to the GitHub repo. | | `USE_SSH` | Set to `true` to use SSH instead of the default HTTPS for the connection to the GitHub repo. |
| `DEPLOYMENT_BRANCH` | The branch that the website will be deployed to, defaults to `gh-pages`. For GitHub Pages Organization repos (`config.projectName` ending in `github.io`), this env variable is required. | | `DEPLOYMENT_BRANCH` | The branch that the website will be deployed to, defaults to `gh-pages`. For GitHub Pages Organization repos (`config.projectName` ending in `github.io`), you need to either set this env variable or specify the `deploymentBranch` param in `docusaurus.config.js`. |
| `CURRENT_BRANCH` | The branch that contains the latest docs changes that will be deployed. Usually, the branch will be `main`, but it could be any branch (default or otherwise) except for `gh-pages`. If nothing is set for this variable, then the current branch will be used. | | `CURRENT_BRANCH` | The branch that contains the latest docs changes that will be deployed. Usually, the branch will be `main`, but it could be any branch (default or otherwise) except for `gh-pages`. If nothing is set for this variable, then the current branch will be used. |
| `GIT_PASS` | Password (or token) of the `git` user (specified by `GIT_USER`). For example, to facilitate non-interactive deployment (e.g. continuous deployment) | | `GIT_PASS` | Password (or token) of the `git` user (specified by `GIT_USER`). For example, to facilitate non-interactive deployment (e.g. continuous deployment) |