# Provide instructions for google Cloud Build to deploy cron jobs
# to flutter-dashboard project. It will be triggered
# by daily schedule on `main` branch.
#
# The deploy will be skipped if no new commits since last deployment.

steps:
  # Deploy a new version to google cloud.
  - name: gcr.io/cloud-builders/gcloud
    entrypoint: '/bin/bash'
    args:  
      - '-c'
      - |-
        gcloud config set project $PROJECT_ID
        latest_version=$(gcloud app versions list --hide-no-traffic --format 'value(version.id)')
        if [ "$latest_version" = "version-$SHORT_SHA" ]; then
          echo "No updates since last deployment."
        else
          bash cloud_build/deploy_cron_jobs.sh $PROJECT_ID
        fi

timeout: 600s
