gvisor/README.md

88 lines
2.2 KiB
Markdown

# gVisor Website
This repository holds the content for the gVisor website. It uses
[hugo](https://gohugo.io/) to generate the website and
[Docsy](https://github.com/google/docsy) as the theme.
## Requirements
Building the website requires the extended version of
[hugo](https://gohugo.io/) and [node.js](https://nodejs.org/) in order to
generate CSS files. Please install them before building.
- Node.js >= 10.15.0 LTS
- hugo extended >= v0.53
## Building
Build the website using `make`:
```
make
```
This will output the App Engine application code, configuration, and html and
CSS into the `public/` directory.
## Testing
You can use the hugo web server for testing. This will start a webserver that
will rebuild the site when you make content changes:
```
make server
```
Access the site at http://localhost:8080
## Deploy
Deploying the website to App Engine requires gcloud. First create a configuration:
```
{
gcloud config configurations create gvisor-website
gcloud config set project gvisor-website
}
```
Deploy the application:
```
make deploy
```
## Editing documentation
Documentation is located in the [content/docs/](content/docs/) directory.
Documentation is written in markdown with hugo extensions. Please read more
about [content management](https://gohugo.io/categories/content-management) in
the hugo documentation.
## Submit a Build
Normally a build is triggered when you push to the gvisor-website repository.
However, you can submit a build to Cloud Build manually.
As one-time setup, enable the App Engine Admin API, and set IAM roles for the [Cloud Build service
account](https://cloud.google.com/cloud-build/docs/securing-builds/set-service-account-permissions).
```
{
PROJECT_NUMBER=$(gcloud projects list --filter=projectId:gvisor-website --format="value(projectNumber)")
gcloud services enable appengine.googleapis.com
gcloud projects add-iam-policy-binding gvisor-website \
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
--role='roles/appengine.deployer'
gcloud projects add-iam-policy-binding gvisor-website \
--member=serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com \
--role='roles/appengine.serviceAdmin'
}
```
Submit the build.
```
make cloud-build
```