From ae9516d5821949074602fb228ade8388005e1962 Mon Sep 17 00:00:00 2001 From: Salaton Date: Mon, 17 Apr 2023 15:44:13 +0300 Subject: [PATCH] feat(ci): deploy `demo` environment to GKE --- .github/workflows/demo.yaml | 91 ++++++++++++++-------------------- .github/workflows/testing.yaml | 2 - 2 files changed, 37 insertions(+), 56 deletions(-) diff --git a/.github/workflows/demo.yaml b/.github/workflows/demo.yaml index 5eab83cd..9a2f2228 100644 --- a/.github/workflows/demo.yaml +++ b/.github/workflows/demo.yaml @@ -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 @@ -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 - \ No newline at end of file + - 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 + \ No newline at end of file diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml index 42456325..99e9f11d 100644 --- a/.github/workflows/testing.yaml +++ b/.github/workflows/testing.yaml @@ -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