# Workflow that prepares files and deploys to appengine

name: Deploy to App Engine

# Controls when the workflow will run
on:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  prepare:
    name: Prepare
    runs-on: ubuntu-latest

    steps:
      # Checks-out the repository under $GITHUB_WORKSPACE.
      # When running manually this checks out the master branch.
      - uses: actions/checkout@v4

      - name: Prepare demo files
        # Install all dependencies, then copy all the files needed for demos.
        run: |
          npm install
          npm run prepareDemos

      - name: Upload
        uses: actions/upload-artifact@v4
        with:
          name: appengine_files
          path: _deploy/

  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    # The prepare step must succeed for this step to run.
    needs: prepare
    steps:
      - name: Download prepared files
        uses: actions/download-artifact@v4
        with:
          name: appengine_files
          path: _deploy/

      - name: Deploy to App Engine
        uses: google-github-actions/deploy-appengine@v2.1.5
        # For parameters see:
        # https://github.com/google-github-actions/deploy-appengine#inputs
        with:
          working_directory: _deploy/
          deliverables: app.yaml
          project_id: ${{ secrets.GCP_PROJECT }}
          credentials: ${{ secrets.GCP_SA_KEY }}
          promote: false
          version: vtest
