name: Electron Docs Compile

on:
  workflow_call:
    inputs:
      container:
        required: true
        description: 'Container to run the docs-only ts compile in'
        type: string

permissions: {}

concurrency:
  group: electron-docs-only-${{ github.ref }}
  cancel-in-progress: true

env:  
  GCLIENT_EXTRA_ARGS: --custom-var=checkout_arm=True --custom-var=checkout_arm64=True

jobs:
  docs-only:
    name: Docs Only Compile
    runs-on: electron-arc-centralus-linux-amd64-4core
    permissions:
      contents: read
    timeout-minutes: 20
    container: ${{ fromJSON(inputs.container) }}
    steps:
    - name: Checkout Electron
      uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
      with:
        path: src/electron
        fetch-depth: 0
        ref: ${{ github.event.pull_request.head.sha }}
    - name: Generate DEPS Hash
      run: |
        node src/electron/script/generate-deps-hash.js
        DEPSHASH=v2-src-cache-$(cat src/electron/.depshash)
        echo "DEPSHASH=$DEPSHASH" >> $GITHUB_ENV
        echo "CACHE_PATH=$DEPSHASH.tar" >> $GITHUB_ENV
    - name: Restore src cache via AKS
      uses: ./src/electron/.github/actions/restore-cache-aks
      with:
        target-platform: linux
    - name: Checkout Electron
      uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
      with:
        path: src/electron
        fetch-depth: 0
        ref: ${{ github.event.pull_request.head.sha }}
    - name: Install Dependencies
      uses: ./src/electron/.github/actions/install-dependencies
    - name: Run TS/JS compile
      shell: bash
      run: |
        cd src/electron
        node script/yarn.js create-typescript-definitions
        node script/yarn.js tsc -p tsconfig.default_app.json --noEmit
        for f in build/webpack/*.js
        do
            out="${f:29}"
            if [ "$out" != "base.js" ]; then
            node script/yarn.js webpack --config $f --output-filename=$out --output-path=./.tmp --env mode=development
            fi
        done
