ilammy / msvc-dev-cmd

GitHub Action to setup Developer Command Prompt for Microsoft Visual C++
MIT License
338 stars 49 forks source link

I use this github action, and yet a subsquent run block executes in a powershell context #63

Closed mcgrue closed 1 year ago

mcgrue commented 1 year ago

Output from step 1:

##[debug]Evaluating condition for step: 'Run ilammy/msvc-dev-cmd@v1'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Run ilammy/msvc-dev-cmd@v1
##[debug]Loading inputs
##[debug]Loading env
Run ilammy/msvc-dev-cmd@v1
Found with vswhere: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
##[debug]vcvars command-line: "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.34.31933
::group::Environment variables
Environment variables
Configured Developer Command Prompt
##[debug]Node Action run completed with exit code 0
##[debug]CommandPromptType='Native'
##[debug]DevEnvDir='C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\'
##[debug]ExtensionSdkDir='C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs'
##[debug]EXTERNAL_INCLUDE='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt'
##[debug]Framework40Version='v4.0'
##[debug]FrameworkDir='C:\Windows\Microsoft.NET\Framework64\'
##[debug]FrameworkDir64='C:\Windows\Microsoft.NET\Framework64\'
##[debug]FrameworkVersion='v4.0.30319'
##[debug]FrameworkVersion64='v4.0.30319'
##[debug]INCLUDE='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt;C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt'
##[debug]LIB='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22000.0\\um\x64'
##[debug]LIBPATH='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\lib\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\lib\x86\store\references;C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22000.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22000.0;C:\Windows\Microsoft.NET\Framework64\v4.0.30319'
##[debug]Path='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\Performance Tools\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\CMake\bin;C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Microsoft Visual Studio\Installer;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\Linux\bin\ConnectionManagerExe'
##[debug]Platform='x64'
##[debug]UCRTVersion='10.0.22000.0'
##[debug]UniversalCRTSdkDir='C:\Program Files (x86)\Windows Kits\10\'
##[debug]VCIDEInstallDir='C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\'
##[debug]VCINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\'
##[debug]VCToolsInstallDir='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\'
##[debug]VCToolsRedistDir='C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.34.31931\'
##[debug]VCToolsVersion='14.34.31933'
##[debug]VisualStudioVersion='17.0'
##[debug]VS170COMNTOOLS='C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\'
##[debug]VSCMD_ARG_app_plat='Desktop'
##[debug]VSCMD_ARG_HOST_ARCH='x64'
##[debug]VSCMD_ARG_TGT_ARCH='x64'
##[debug]VSCMD_ARG_VCVARS_VER='14.34.31933'
##[debug]VSCMD_VER='17.4.4'
##[debug]VSINSTALLDIR='C:\Program Files\Microsoft Visual Studio\2022\Community\'
##[debug]WindowsLibPath='C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22000.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.22000.0'
##[debug]WindowsSdkBinPath='C:\Program Files (x86)\Windows Kits\10\bin\'
##[debug]WindowsSdkDir='C:\Program Files (x86)\Windows Kits\10\'
##[debug]WindowsSDKLibVersion='10.0.22000.0\'
##[debug]WindowsSdkVerBinPath='C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\'
##[debug]WindowsSDKVersion='10.0.22000.0\'
##[debug]__DOTNET_ADD_64BIT='1'
##[debug]__DOTNET_PREFERRED_BITNESS='64'
##[debug]__VSCMD_PREINIT_PATH='C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\CMake\bin;C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Microsoft Visual Studio\Installer'
##[debug]Finishing: Run ilammy/msvc-dev-cmd@v1

Output from step 3

##[debug]Evaluating condition for step: 'Configure Cmake'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Configure Cmake
##[debug]Loading inputs
##[debug]Loading env
Run cmake `
##[debug]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.EXE -command ". 'C:\dev\project\_temp\8956206c-c3d1-4e2e-a2d9-414e9dfd2437.ps1'"
. : File C:\dev\project\_temp\8956206c-c3d1-4e2e-a2d9-414e9dfd2437.ps1 cannot be loaded because running scripts is 
disabled on this system. For more information, see about_Execution_Policies at 
https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . 'C:\dev\project\_temp\8956206c-c3d1-4e2e-a2d9-414e9dfd2437.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
Error: Process completed with exit code 1.
##[debug]Finishing: Configure Cmake

The execution policy thing seems to be a red herring here. I mean... why in hell is powershell being invoked in the first place?

the source yml

name: Build

on: [push]

env:
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  msbuild-windows-64-RelWithDebInfo:
    #    runs-on: windows-2022
    runs-on: [self-hosted, Windows, X64]
    steps:
      - uses: ilammy/msvc-dev-cmd@v1
        with:
          arch: x64
          toolset: 14.34.31933
      - uses: actions/checkout@v2
      - name: Configure Cmake
        run: |
          cmake `
            -G "Visual Studio 17 2022" `
            -DCMAKE_BUILD_TYPE=RelWithDebInfo `
            -B "C:/dev/project/.cmake_generated_build_files/RelWithDebInfo" `
            -DCMAKE_C_COMPILER=cl `
            -DCMAKE_CXX_COMPILER=cl `
            -DCMAKE_MAKE_PROGRAM=msbuild `
            C:/dev/project
      - name: COMPILE
        env:
          SDL_ASSERT: always_ignore
        run: |
          msbuild C:/dev/project/.cmake_generated_build_files/RelWithDebInfo/project_test.vcxproj /property:Configuration=RelWithDebInfo
      - name: LS
        run: |
          pwd
          cd C:/dev/project/binaries/build/RelWithDebInfo
          pwd
          echo "lol 1"
          dir *.exe
          echo "lol 2"
          ./project_test.exe
          echo "lol 3"
      - name: TEST
        uses: Maddog2050/executable-wrapper@v1.0.9
        with:
          run_command: project_test.exe
          working-directory: C:/dev/project/binaries/build/
      - name: UPLOAD ARTIFACT
        uses: actions/upload-artifact@v3
        with:
          name: project-windows-64-RelWithDebInfo
          path: C:/dev/project/binaries/build/
mcgrue commented 1 year ago

I'm just an idiot. Wasn't a red herring, the github docs just... don't talk about this at all for windows?

ilammy commented 1 year ago

github docs just... don't talk about this at all for windows?

It is well-hidden in jobs.<job_id>.steps[*].shell.

On Windows, PowerShell Core is the default. On Linux/macOS its bash (or sh if Bash is not available).