Skip to content

Instantly share code, notes, and snippets.

@troyharvey
Last active January 8, 2024 00:38
Show Gist options
  • Save troyharvey/bae82c86c27a3aa539dea83857ee9ecd to your computer and use it in GitHub Desktop.
Save troyharvey/bae82c86c27a3aa539dea83857ee9ecd to your computer and use it in GitHub Desktop.
Deploy Google Cloud Functions: GitLab CI/CD Pipeline Config File
# Update Jan 2024
# Deploying Cloud Functions is much simpler than it was 6 years ago.
# I'm leaving the gist in it's original 2018 state for now,
# but skip the the recent comments below for a simpler solution.
variables:
GCP_ZONE: us-central1-a
stages:
- npm-install
- push
npm-install:
image: node:8-alpine
stage: npm-install
only:
- master
script:
- cd replaceWithYourCloudFunction
- npm install
artifacts:
paths:
- replaceWithYourCloudFunction/node_modules/
push:
stage: push
image: docker:latest
only:
- master
dependencies:
- npm-install
script:
# Install CA certs, openssl to https downloads, python for gcloud sdk
- apk add --update make ca-certificates openssl python
- update-ca-certificates
# Download and install Google Cloud SDK
- wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
- tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --quiet --usage-reporting=false --path-update=true
- PATH="google-cloud-sdk/bin:${PATH}"
- gcloud --quiet components update
- gcloud components install beta
# Authenticate using the service account stored here: https://gitlab.com/groups/{YOUR_GITLAB_PROJECT}/-/settings/ci_cd
- echo $GCLOUD_SERVICE_KEY > ${HOME}/gcloud-service-key.json
- gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
# Deploy
- gcloud beta functions deploy replaceWithYourCloudFunction --source=./replaceWithYourCloudFunction --trigger-http
@cjoshmartin
Copy link

This was a helpful page if you are not familiar with gcloud deploy https://cloud.google.com/sdk/gcloud/reference/functions/deploy

@EchedelleLR
Copy link

This + the comments helped me as a template. Thank you so much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment