This repo contains all the code and contents behind gcppodcast.com.
The first episode explains the architecture, you can listen to it here.
You will find three directories in the repository: dev
, ga_handler
, and site
.
- dev: dev tools
- ga_handler: an App Engine module written in Python used to send events to Google Analytics
- site: the hugo structure that generates the static website
This directory contains all the tooling we use to build/deploy the podcast.
In particular it has a Dockerfile
that defines an environment with all the tools we
use to generate the website and tag mp3
files.
You can build this image using the Makefile
on the root of this repository.
You will be able to push it or pull it from
Google Container Registry too,
but you might need to modify the TAG
variable to match a project you have
access to.
Finally, once you've built the image, you should be able to create a new interactive
shell by running make shell
or make attach
if you want to attach to an existing one.
site: the hugo structure that generates the static website
This directory contains all the resources that we use to generate the podcast website.
You can use the Makefile
provided in the directory to:
- Run Interactive Hugo Server (port 1313):
make server
- Sassify->CCS Assets:
make assets-update
- does production css generation, compressed and everything. - Deploy the Project to App Engine:
make deploy
- This will not make the version default. Useful if you just want to test/share a version live.make deploy-default
- This will replace the default version (but the old version is kept, in case)
This directory contains an App Engine service
that provides a way to access the mp3
files stored in Google Cloud Storage
while logging those accesses with Google Analytics.
The following commands can be run from inside the ga_handler
directory:
- Run full code lint and tests:
nox
- Start Local Episode Redirect Module:
python main.py
- Deploy Episode Redirect Module:
gcloud app deploy
Environment variables must be set for STORAGE_BUCKET and GA_TRACKING_ID.
This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.