diff options
-rw-r--r-- | Makefile | 25 | ||||
-rw-r--r-- | README.md | 71 |
2 files changed, 40 insertions, 56 deletions
@@ -21,8 +21,6 @@ public: public/app.yaml: public cp -vr cmd/gvisor-website/app.yaml public/ - - # Load repositories. upstream: mkdir -p upstream @@ -44,29 +42,38 @@ content/docs/community/sigs: upstream/community $(wildcard upstream/community/si $(GO_TARGET): public $(GO_SOURCE) cd cmd/gvisor-website && find . -name "*.go" -exec cp --parents \{\} ../../public \; -deploy: public/app.yaml - cd public && $(GCLOUD) app deploy -.PHONY: deploy - public/static: node_modules config.toml $(shell find archetypes assets content themes -type f | sed 's/ /\\ /g') $(HUGO) -server: all-upstream - $(HUGO) server -FD --port 8080 - node_modules: package.json package-lock.json # Use npm ci because npm install will update the package-lock.json. # See: https://github.com/npm/npm/issues/18286 $(NPM) ci +# Run a local content development server. Redirects will not be supported. +server: all-upstream + $(HUGO) server -FD --port 8080 +.PHONY: server + +# Deploy the website to App Engine. +deploy: public/app.yaml + cd public && $(GCLOUD) app deploy +.PHONY: deploy + +# CI related Commmands +############################################################################## + +# Submit a build to Cloud Build manually. Used to test cloudbuild.yaml changes. cloud-build: gcloud builds submit --config cloudbuild/cloudbuild.yaml . +# Build and push the hugo Docker image used by Cloud Build. hugo-docker-image: docker build --build-arg HUGO_VERSION=$(HUGO_VERSION) -t gcr.io/gvisor-website/hugo:$(HUGO_VERSION) cloudbuild/hugo/ docker push gcr.io/gvisor-website/hugo:$(HUGO_VERSION) .PHONY: hugo-docker-image +# Build and push the html-proofer image used by Cloud Build. htmlproofer-docker-image: docker build --build-arg HTMLPROOFER_VERSION=$(HTMLPROOFER_VERSION) -t gcr.io/gvisor-website/html-proofer:$(HTMLPROOFER_VERSION) cloudbuild/html-proofer/ docker push gcr.io/gvisor-website/html-proofer:$(HTMLPROOFER_VERSION) @@ -13,18 +13,24 @@ generate CSS files. Please install them before building. - Node.js >= 10.15.0 LTS - hugo extended >= v0.53 -## Building +## Contributing to Documentation -Build the website using `make`: +### Using Github -``` -make -``` +You can use the "Edit this page" link on any documentation page to edit the +page content directly via GitHub and submit a pull request. This should +generally be done for relatively small changes. -This will output the App Engine application code, configuration, and html and -CSS into the `public/` directory. +### Using Git -## Testing +You can submit pull requests by making changes in a Git branch. See more +information on GitHub pull requests +[here](https://help.github.com/en/articles/about-pull-requests). + +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. You can use the hugo web server for testing. This will start a webserver that will rebuild the site when you make content changes: @@ -35,53 +41,24 @@ 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 -} -``` +## Building -Deploy the application: +If you are making changes to App Engine config or application code, you can +build the website using `make`. This will output the App Engine application +code, configuration, and html and CSS into the `public/` directory. ``` -make deploy +make ``` -## 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). +If you have Go installed you can run a local version of the website via the +`public/` directory. ``` { - 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' + cd public/ + go run main.go } ``` -Submit the build. - -``` -make cloud-build -``` +Access the site at http://localhost:8080 |