Skip to content

Commit

Permalink
feat(ci): deploy demo environment to GKE
Browse files Browse the repository at this point in the history
  • Loading branch information
Salaton committed Apr 17, 2023
1 parent 62e33cb commit ae9516d
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 56 deletions.
91 changes: 37 additions & 54 deletions .github/workflows/demo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,34 @@ on:
- demo

env:
# Schema Registry CLI command version
CLI_VERSION: v0.0.2
GKE_ZONE: europe-west1-b
GKE_PROJECT: sghi-307909
TEST_CLUSTER_NAME: sghi-apps
DOCKER_IMAGE_TAG: eu.gcr.io/${{ secrets.GOOGLE_CLOUD_PROJECT }}/${{ secrets.GCR_NAME }}:${{ github.sha }}
NAMESPACE: ${{ secrets.NAMESPACE }}
APP_REPLICA_COUNT: ${{ secrets.APP_REPLICA_COUNT }}
PORT: ${{ secrets.PORT }}
GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }}
FIREBASE_WEB_API_KEY: ${{ secrets.FIREBASE_WEB_API_KEY }}
ENVIRONMENT: ${{ secrets.ENVIRONMENT }}
SERVICE_HOST: ${{ secrets.SERVICE_HOST }}
GOOGLE_PROJECT_NUMBER: ${{ secrets.GOOGLE_PROJECT_NUMBER }}
ROOT_COLLECTION_SUFFIX: ${{ secrets.ROOT_COLLECTION_SUFFIX }}
CLOUD_HEALTH_PUBSUB_TOPIC: ${{ secrets.CLOUD_HEALTH_PUBSUB_TOPIC }}
CLOUD_HEALTH_DATASET_ID: ${{ secrets.CLOUD_HEALTH_DATASET_ID }}
OPENCONCEPTLAB_TOKEN: ${{ secrets.OPENCONCEPTLAB_TOKEN }}
OPENCONCEPTLAB_API_URL: ${{ secrets.OPENCONCEPTLAB_API_URL }}
JWT_KEY: ${{ secrets.JWT_KEY }}
CLOUD_HEALTH_FHIRSTORE_ID: ${{ secrets.CLOUD_HEALTH_FHIRSTORE_ID }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SAVANNAH_ADMIN_EMAIL: ${{ secrets.SAVANNAH_ADMIN_EMAIL }}
APP_DOMAIN: ${{ secrets.APP_DOMAIN }}
APP_NAME: ${{ secrets.APP_NAME }}
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}

jobs:
deploy_to_demo:
name: Deploy demo server to google cloud run
name: Deploy demo server to google kubernetes engine
runs-on: ubuntu-latest
environment:
name: demo
Expand All @@ -35,56 +57,17 @@ jobs:
docker build -t eu.gcr.io/${{ secrets.GOOGLE_CLOUD_PROJECT }}/${{ secrets.GCR_NAME }}:$GITHUB_SHA .
docker push eu.gcr.io/${{ secrets.GOOGLE_CLOUD_PROJECT }}/${{ secrets.GCR_NAME }}:$GITHUB_SHA
- name: Deploy to Google Cloud Run
uses: 'google-github-actions/deploy-cloudrun@v0'
with:
service: ${{ secrets.SERVICE_NAME }}
region: 'europe-west1'
image: 'eu.gcr.io/${{ secrets.GOOGLE_CLOUD_PROJECT }}/${{ secrets.GCR_NAME }}:${{ github.sha }}'
env_vars: |
GOOGLE_CLOUD_PROJECT=${{ secrets.GOOGLE_CLOUD_PROJECT }}
FIREBASE_WEB_API_KEY=${{ secrets.FIREBASE_WEB_API_KEY }}
JWT_KEY=${{ secrets.JWT_KEY }}
ENVIRONMENT=${{ secrets.ENVIRONMENT }}
GOOGLE_PROJECT_NUMBER=${{ secrets.GOOGLE_PROJECT_NUMBER }}
SENTRY_DSN=${{ secrets.SENTRY_DSN }}
ROOT_COLLECTION_SUFFIX=${{ secrets.ROOT_COLLECTION_SUFFIX }}
CLOUD_HEALTH_PUBSUB_TOPIC=${{ secrets.CLOUD_HEALTH_PUBSUB_TOPIC }}
CLOUD_HEALTH_DATASET_ID=${{ secrets.CLOUD_HEALTH_DATASET_ID }}
CLOUD_HEALTH_FHIRSTORE_ID=${{ secrets.CLOUD_HEALTH_FHIRSTORE_ID }}
OPENCONCEPTLAB_TOKEN=${{ secrets.OPENCONCEPTLAB_TOKEN }}
SERVICE_HOST=${{ secrets.SERVICE_HOST }}
OPENCONCEPTLAB_API_URL=${{ secrets.OPENCONCEPTLAB_API_URL }}
SAVANNAH_ADMIN_EMAIL=${{ secrets.SAVANNAH_ADMIN_EMAIL }}
push_schema_demo_registry:
name: Publish schema to demo schema registry
strategy:
matrix:
go-version: [1.18.x]
runs-on: ubuntu-latest
needs: [deploy_to_demo]
environment:
name: demo
env:
REGISTRY_URL: ${{ secrets.DEMO_SCHEMA_REGISTRY_URL }}
steps:
- name: Checkout working branches
uses: actions/checkout@v2

# Install Go
- name: Install Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}

# install CLI command and push schema to registry
# just to be sure, we re-validate the schema against schema registry
- name: Install CLI command and push schema to registry
- name: Install Helm
run: |
go install github.com/savannahghi/bewellcli@$CLI_VERSION
bewellcli service validate-schema --name mycarehub --version $GITHUB_SHA --url https://mycarehub-demo.savannahghi.org/graphql
bewellcli service push-schema --name mycarehub --version $GITHUB_SHA --url https://mycarehub-demo.savannahghi.org/graphql
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
- uses: google-github-actions/get-gke-credentials@fb08709ba27618c31c09e014e1d8364b02e5042e
with:
cluster_name: ${{ env.TEST_CLUSTER_NAME }}
location: ${{ env.GKE_ZONE }}
credentials: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}

- name: Deploy to Google Kubernetes engine
shell: bash
run: cd deploy/ && cat deploy.sh && sh deploy.sh

2 changes: 0 additions & 2 deletions .github/workflows/testing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ on:
- alpha

env:
# Schema Registry CLI command version
CLI_VERSION: v0.0.2
GKE_ZONE: europe-west1-b
GKE_PROJECT: sghi-307909
TEST_CLUSTER_NAME: sghi-apps
Expand Down

0 comments on commit ae9516d

Please sign in to comment.