title: GitHub Actions: which shell for codecov-bash on Windows?
body: <p>What settings do we need to upload with GitHub Actions when running on Windows?</p>
  
  <p>I've tried these.</p>
  
  <h1>With no <code>shell:</code></h1>
  
  <pre><code>    - name: Upload coverage
        if: success()
        run: |
          bash &lt;(curl -s https://codecov.io/bash)
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          CODECOV_NAME: ${{ runner.os }} Python ${{ matrix.python-version }}
  </code></pre>
  
  <p>gives:</p>
  
  <pre><code>Run bash &lt;(curl -s https://codecov.io/bash)
    bash &lt;(curl -s https://codecov.io/bash)
    shell: C:\Program Files\PowerShell\6\pwsh.EXE -command ". '{0}'"
    env:
      pythonLocation: C:\hostedtoolcache\windows\Python\3.5.4\x86
      CODECOV_TOKEN: ***
      CODECOV_NAME: Windows Python 3.5
  At D:\a\_temp\f9f81a44-97d3-4908-8e7c-7d8d676e9d93.ps1:2 char:6
  + bash &lt;(curl -s https://codecov.io/bash)
  +      ~
  The '&lt;' operator is reserved for future use.
  + CategoryInfo          : ParserError: (:) [], ParseException
  + FullyQualifiedErrorId : RedirectionNotSupported
  
  ##[error]Process completed with exit code 1.
  </code></pre>
  
  <p>These settings work for Ubuntu and macOS.</p>
  
  <h1>Adding <code>shell: bash</code></h1>
  
  <pre><code>    - name: Upload coverage
        if: success()
        run: |
          bash &lt;(curl -s https://codecov.io/bash)
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          CODECOV_NAME: ${{ runner.os }} Python ${{ matrix.python-version }}
        shell: bash
  </code></pre>
  
  <p>gives:</p>
  
  <pre><code>Run bash &lt;(curl -s https://codecov.io/bash)
    bash &lt;(curl -s https://codecov.io/bash)
    shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}
    env:
      pythonLocation: C:\hostedtoolcache\windows\Python\3.5.4\x86
      CODECOV_TOKEN: ***
      CODECOV_NAME: Windows Python 3.5
  bash: /dev/fd/63: No such file or directory
  ##[error]Process completed with exit code 127.
  </code></pre>
  
  <h1>Changing to <code>shell: cmd</code></h1>
  
  <pre><code>    - name: Upload coverage
        if: success()
        run: |
          bash &lt;(curl -s https://codecov.io/bash)
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
          CODECOV_NAME: ${{ runner.os }} Python ${{ matrix.python-version }}
        shell: cmd
  </code></pre>
  
  <p>gives:</p>
  
  <pre><code>Run bash &lt;(curl -s https://codecov.io/bash)
    bash &lt;(curl -s https://codecov.io/bash)
    shell: C:\windows\system32\cmd.EXE /D /E:ON /V:OFF /S /C "CALL "{0}""
    env:
      pythonLocation: C:\hostedtoolcache\windows\Python\3.5.4\x86
      CODECOV_TOKEN: ***
      CODECOV_NAME: Windows Python 3.5
  The system cannot find the file specified.
  ##[error]Process completed with exit code 1.
  </code></pre>