# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  # push:
    # branches: [ main, gold_integration ]
  # pull_request:
    # branches: [ main, gold_integration ]
  repository_dispatch:

jobs:

  create_snapshots:
  
    runs-on: ubuntu-latest
    env:
      GOOGLE_CLOUD_STORAGE: ${{ secrets.GOOGLE_CLOUD_STORAGE }}
      GOPATH: ${{ github.workspace }}
    defaults:
      run:
        working-directory: ./images
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-go@v2
      with:
        go-version: '^1.16.4' # The Go version to download (if necessary) and use.
    - run: go install go.skia.org/infra/gold-client/cmd/goldctl@latest
    - name: Use Node.js 16.x
      uses: actions/cache@v2
      with:
        path: ~/.npm
        key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
    - run: npm ci
    - run: npm run validate
      if: ${{ github.event && github.event.client_payload.player == 'lottie-web' }}
    - run: npm run validate-skottie
      if: ${{ github.event && github.event.client_payload.player == 'skottie' }}
