mirror of https://github.com/grpc/grpc.io.git
README: updated instructions for building etc (#622)
This commit is contained in:
parent
1f3b539980
commit
d7ed0e7de2
|
|
@ -30,6 +30,7 @@
|
||||||
"protoc",
|
"protoc",
|
||||||
"pushback",
|
"pushback",
|
||||||
"relref",
|
"relref",
|
||||||
|
"repo's",
|
||||||
"RPC's",
|
"RPC's",
|
||||||
"RPCs",
|
"RPCs",
|
||||||
"runtimes",
|
"runtimes",
|
||||||
|
|
@ -41,6 +42,7 @@
|
||||||
"threadsafe",
|
"threadsafe",
|
||||||
"unencrypted",
|
"unencrypted",
|
||||||
"unmarshalling",
|
"unmarshalling",
|
||||||
|
"unminified",
|
||||||
"URL's",
|
"URL's",
|
||||||
"Xcode"
|
"Xcode"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
127
README.md
127
README.md
|
|
@ -1,45 +1,124 @@
|
||||||
# The gRPC website and documentation
|
# gRPC website
|
||||||
|
|
||||||
This repository houses the assets used to build and deploy the gRPC website, available at https://grpc.io. The site is built using the [Hugo](https://gohugo.io) static site generator. Check out the [Hugo quick start](https://gohugo.io/getting-started/quick-start/) for a quick intro.
|
The [grpc.io][] site, built using [Hugo][] and hosted on [Netlify][].
|
||||||
|
|
||||||
## Prerequisites
|
## Build prerequisites
|
||||||
|
|
||||||
|
### 1. Install the following tools
|
||||||
|
|
||||||
- **[Hugo, extended version][hugo-install]**
|
- **[Hugo, extended version][hugo-install]**
|
||||||
- **[nvm][]**, the Node Version Manager
|
- **[nvm][]**, the Node Version Manager
|
||||||
|
|
||||||
## Serving the site locally
|
### 2. Clone this repo _and_ its submodules
|
||||||
|
|
||||||
First install NPM packages:
|
> IMPORTANT: This repo has **recursive git _submodules_**, which affects how you
|
||||||
|
> clone it.
|
||||||
|
|
||||||
|
The _simplest_ way to get a full copy of this repo is to clone the repo _and_
|
||||||
|
its submodules _at the same time_ by running this command from a command shell /
|
||||||
|
window:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ git clone --recurse-submodules https://github.com/grpc/grpc.io.git
|
||||||
|
```
|
||||||
|
### 3. Change directories
|
||||||
|
|
||||||
|
From this point on you'll be working from the `grpc.io` directory:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ cd grpc.io
|
||||||
|
```
|
||||||
|
### 4. Did you get the submodules?
|
||||||
|
|
||||||
|
Forgetting to clone the submodules is a common error.
|
||||||
|
|
||||||
|
If you forgot the `--recurse-submodules` option when you ran the `clone` command
|
||||||
|
given in step 2 above or, if you cloned the repo using another method, as
|
||||||
|
described in [Cloning a repository][], then you'll need to fetch the repo's
|
||||||
|
submodules.
|
||||||
|
|
||||||
|
To (recursively) fetch the submodules, run the following command from the
|
||||||
|
`grpc.io` directory:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ git submodule update --init --recursive --depth 1
|
||||||
|
```
|
||||||
|
|
||||||
|
> NOTE: Unsure if you've fetched the submodules? The Git command above is
|
||||||
|
> idempotent, so you can safely (re-)run it -- if you already have the
|
||||||
|
> submodules, it will have no effect.
|
||||||
|
|
||||||
|
### 5. Run installation scripts
|
||||||
|
|
||||||
|
Install NPM packages:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ npm install
|
$ npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
To build and locally serve this site, you can use **any one** of the following
|
## Build the site
|
||||||
commands:
|
|
||||||
|
|
||||||
- Build and serve using [Hugo][], via `make`:
|
Run the following command to have Hugo generate the site files:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ make serve
|
$ hugo
|
||||||
```
|
```
|
||||||
|
|
||||||
- Build and serve using [Netlify dev][], which allows you to exercise features
|
The `public` folder contains the generated site.
|
||||||
such as site redirects:
|
|
||||||
|
|
||||||
```console
|
## Serve the site locally
|
||||||
$ npx netlify dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## Publishing the site
|
To locally serve this site, use **one** of the following commands.
|
||||||
|
|
||||||
The gRPC website is _automatically_ published by [Netlify][]. Any time changes
|
> **Note**: Hugo serves pages from memory by default, so if you want to
|
||||||
are committed to the default branch, the site is rebuilt and redeployed.
|
> (re-)generate the website files to disk, use the build command above.
|
||||||
|
|
||||||
## Site content
|
### a) Serve using [Hugo][] via `make`
|
||||||
|
|
||||||
All of the [Markdown](https://www.markdownguide.org) content used to build the
|
```console
|
||||||
site's documentation, blog, etc. is in the [content](content) directory.
|
$ make serve
|
||||||
|
hugo server
|
||||||
|
Start building sites …
|
||||||
|
...
|
||||||
|
Environment: "development"
|
||||||
|
Serving pages from memory
|
||||||
|
...
|
||||||
|
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
|
||||||
|
Press Ctrl+C to stop
|
||||||
|
```
|
||||||
|
|
||||||
|
This generates _unminified_ site pages. Other [Makefile](Makefile) targets
|
||||||
|
include the following:
|
||||||
|
|
||||||
|
- `serve-drafts` to also serve draft and future pages
|
||||||
|
- `serve-production` to server files exactly as they'll appear in production
|
||||||
|
|
||||||
|
### b) Serve using Netlify dev
|
||||||
|
|
||||||
|
[Netlify dev][] uses Hugo under the hood to serve the site, but it also creates
|
||||||
|
a proxy (at port 8888 by default), to handle [site redirects][]:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npx netlify dev
|
||||||
|
```
|
||||||
|
|
||||||
|
If you also want to serve draft and future pages use this command:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ npx netlify dev -c "hugo serve -DFw"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Site deploys and PR previews
|
||||||
|
|
||||||
|
Commits to the `main` branch are _automatically_ published by [Netlify][]. You
|
||||||
|
can see deploy logs and more from the [Netlify gRPC Team dashboard][], provided
|
||||||
|
you have the necessary permissions.
|
||||||
|
|
||||||
|
_PR previews_ are automatically built by [Netlify][] as well. By default, a PR
|
||||||
|
preview is identical to a production build.
|
||||||
|
|
||||||
|
If you want draft and future pages to also appear in a PR preview, then make
|
||||||
|
sure that the word "draft" appears in the branch name used to create the PR.
|
||||||
|
|
||||||
## Checking links
|
## Checking links
|
||||||
|
|
||||||
|
|
@ -55,8 +134,12 @@ internal links prefixed with `/grpc` do not work in your local environment
|
||||||
(there are redirects applied by [Netlify](https://netlify.com)). Any errors
|
(there are redirects applied by [Netlify](https://netlify.com)). Any errors
|
||||||
returned from `/grpc` links are false negatives that you can ignore.
|
returned from `/grpc` links are false negatives that you can ignore.
|
||||||
|
|
||||||
|
[Cloning a repository]: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository
|
||||||
|
[grpc.io]: https://grpc.io
|
||||||
[Hugo]: https://gohugo.io
|
[Hugo]: https://gohugo.io
|
||||||
[hugo-install]: https://gohugo.io/getting-started/installing
|
[hugo-install]: https://gohugo.io/getting-started/installing
|
||||||
[Netlify]: https://netlify.com
|
[Netlify]: https://netlify.com
|
||||||
[Netlify dev]: https://www.netlify.com/products/dev
|
[Netlify dev]: https://www.netlify.com/products/dev
|
||||||
|
[Netlify gRPC Team dashboard]: https://app.netlify.com/teams/grpc/overview
|
||||||
[nvm]: https://github.com/nvm-sh/nvm/blob/master/README.md#installing-and-updating
|
[nvm]: https://github.com/nvm-sh/nvm/blob/master/README.md#installing-and-updating
|
||||||
|
[site redirects]: layouts/index.redirects
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue