After getting the blog set up, I went to Cloud Source Repositories, created a repo
website, and the self-start
git commit -m "initial commit, creating this blog" git remote add google https://source.developers.google.com/p/ashrafulla-website/r/website git push --all google
and I’m now in version control.
Next, I want to automate the deploy. Cloud Build builds images, when what
I want is to run this command every time I push to
rm -rf public && hugo -b "https://ashrafulla-website.firebaseapp.com" && firebase deploy --only hosting
Robert Sahlin says that I basically need to think of each step as Docker image creation and then I’m good to go. Let’s try it. The prep work is getting a Hugo image and a Firebase image into my project. I’m updating Robert’s instructions a little bit and trying to not bounce around folders too much because for whatever reason I’m lame like that:
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community ~/cloud-builders-community gcloud builds submit --config ~/cloud-builders-community/hugo/cloudbuild.yaml ~/cloud-builders-community/hugo/ gcloud builds submit --config ~/cloud-builders-community/firebase/cloudbuild.yaml ~/cloud-builders-community/firebase/
(by the way, I tried
!!:gs/hugo/firebase/ and the substitution failed).
I then added a cloudbuild.yaml to my repository with the following:
steps: - name: 'gcr.io/$PROJECT_ID/hugo' args: ['-b', "https://ashrafulla-website.firebaseapp.com"] - name: 'gcr.io/$PROJECT_ID/firebase' args: ['deploy', '--project', '$PROJECT_ID', '--only', 'hosting']
where I’m going to try to not use secret tokens because the Firebase builder README says I can just add permissions to the Google Cloud Build service account. I gave that account Firebase Admin (which makes sense). Trying it out with
gcloud builds submit --config cloudbuild.yaml .
Let’s automate to finish this. I’ll use the Cloud Build GUI which is as simple as
triggering the use of
cloudbuild.yaml whenever the master branch is updated
(select “Cloud Build configuration file” in the last step). This post’s commit
will be the trigger. Wish it luck!
It wasn’t very lucky. It turns out my use of
git submodule has somehow torched
themes/kube library. When I ran the Hugo step, it would only pick up ~10
of the ~50 files needed for the blog, missing the entire themes folder. For now,
I actually had to
mv themes/kube themes/syed and update
config.toml to have
themes="syed" to get this to work. I suspect something in the repository in
CSR is not replicating what’s here locally (maybe a
.gitmodules?) so for now
I’m stuck with a weird name for a template.