Skip to content

Commit 7808aa5

Browse files
committed
Move MSVC setup to its own action
1 parent d6b191d commit 7808aa5

File tree

2 files changed

+61
-54
lines changed

2 files changed

+61
-54
lines changed

.github/actions/setup-msvc/action.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: "Setup MSVC"
2+
description: "Setup Microsoft Visual C++ compiler"
3+
4+
inputs:
5+
arch:
6+
description: "Hardware architecture"
7+
required: true
8+
default: "x64"
9+
version:
10+
description: "Toolset version"
11+
required: true
12+
default: "16"
13+
14+
runs:
15+
using: "composite"
16+
steps:
17+
-
18+
name: Set MSVC toolchain (v9)
19+
shell: pwsh
20+
run: |
21+
if (-not "${{ env.VS090URL }}") {
22+
echo "Missing environment variable VS090URL"
23+
exit 1;
24+
}
25+
Invoke-WebRequest ${{ env.VS090URL }} -OutFile VCForPython27.msi
26+
$msi_process = Start-Process "msiexec" -ArgumentList "/i VCForPython27.msi /qn /l*! output.log" -NoNewWindow -PassThru
27+
$msi_process.WaitForExit()
28+
if ("${{ inputs.arch }}" -eq "x64") {
29+
$vcsubdir = "amd64"
30+
$winsdksubdir = "${{ inputs.arch }}"
31+
} else {
32+
$vcsubdir = ""
33+
$winsdksubdir = ""
34+
}
35+
$MSVCROOT = "C:\Users\$env:UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"
36+
$VCINSTALLDIR = "$MSVCROOT\VC"
37+
$WindowsSdkDir = "$MSVCROOT\WinSDK"
38+
echo VCINSTALLDIR="$VCINSTALLDIR" >> $env:GITHUB_ENV
39+
echo WindowsSdkDir="$WindowsSdkDir" >> $env:GITHUB_ENV
40+
echo PATH="$VCINSTALLDIR\Bin\$vcsubdir;$WindowsSdkDir\Bin\$winsdksubdir;$WindowsSdkDir\Bin;$env:PATH" >> $env:GITHUB_ENV
41+
echo LIB="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIB" >> $env:GITHUB_ENV
42+
echo LIBPATH="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIBPATH" >> $env:GITHUB_ENV
43+
echo INCLUDE="$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE" >> $env:GITHUB_ENV
44+
if: inputs.version == '9'
45+
-
46+
name: Set MSVC toolchain (v14+)
47+
uses: ilammy/msvc-dev-cmd@v1
48+
with:
49+
arch: ${{ inputs.arch }}
50+
toolset: ${{ inputs.version }}
51+
if: inputs.version != '9'

.github/workflows/basemap-for-windows.yml

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -39,35 +39,13 @@ jobs:
3939
architecture: ${{ matrix.arch }}
4040
python-version: "3.6"
4141
-
42-
name: Set MSVC toolchain (v9)
43-
run: |
44-
Invoke-WebRequest ${{ secrets.VS090URL }} -OutFile VCForPython27.msi
45-
$msi_process = Start-Process "msiexec" -ArgumentList "/i VCForPython27.msi /qn /l*! output.log" -NoNewWindow -PassThru
46-
$msi_process.WaitForExit()
47-
if ("${{ matrix.arch }}" -eq "x64") {
48-
$vcsubdir = "amd64"
49-
$winsdksubdir = "${{ matrix.arch }}"
50-
} else {
51-
$vcsubdir = ""
52-
$winsdksubdir = ""
53-
}
54-
$MSVCROOT = "C:\Users\$env:UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"
55-
$VCINSTALLDIR = "$MSVCROOT\VC"
56-
$WindowsSdkDir = "$MSVCROOT\WinSDK"
57-
echo VCINSTALLDIR="$VCINSTALLDIR" >> $env:GITHUB_ENV
58-
echo WindowsSdkDir="$WindowsSdkDir" >> $env:GITHUB_ENV
59-
echo PATH="$VCINSTALLDIR\Bin\$vcsubdir;$WindowsSdkDir\Bin\$winsdksubdir;$WindowsSdkDir\Bin;$env:PATH" >> $env:GITHUB_ENV
60-
echo LIB="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIB" >> $env:GITHUB_ENV
61-
echo LIBPATH="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIBPATH" >> $env:GITHUB_ENV
62-
echo INCLUDE="$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE" >> $env:GITHUB_ENV
63-
if: matrix.msvc-toolset == '9'
64-
-
65-
name: Set MSVC toolchain (v16)
66-
uses: ilammy/msvc-dev-cmd@v1
42+
name: Setup MSVC toolset
43+
uses: ./.github/actions/setup-msvc
6744
with:
6845
arch: ${{ matrix.arch }}
69-
toolset: ${{ env.msvc-toolset }}
70-
if: matrix.msvc-toolset == '16'
46+
version: ${{ matrix.msvc-toolset }}
47+
env:
48+
VS090URL: ${{ secrets.VS090URL }}
7149
-
7250
name: Install CMake
7351
uses: jwlawson/[email protected]
@@ -125,35 +103,13 @@ jobs:
125103
echo "msvc-toolset=16" >> $env:GITHUB_ENV
126104
}
127105
-
128-
name: Set MSVC toolchain (v9)
129-
run: |
130-
Invoke-WebRequest ${{ secrets.VS090URL }} -OutFile VCForPython27.msi
131-
$msi_process = Start-Process "msiexec" -ArgumentList "/i VCForPython27.msi /qn /l*! output.log" -NoNewWindow -PassThru
132-
$msi_process.WaitForExit()
133-
if ("${{ matrix.arch }}" -eq "x64") {
134-
$vcsubdir = "amd64"
135-
$winsdksubdir = "${{ matrix.arch }}"
136-
} else {
137-
$vcsubdir = ""
138-
$winsdksubdir = ""
139-
}
140-
$MSVCROOT = "C:\Users\$env:UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0"
141-
$VCINSTALLDIR = "$MSVCROOT\VC"
142-
$WindowsSdkDir = "$MSVCROOT\WinSDK"
143-
echo VCINSTALLDIR="$VCINSTALLDIR" >> $env:GITHUB_ENV
144-
echo WindowsSdkDir="$WindowsSdkDir" >> $env:GITHUB_ENV
145-
echo PATH="$VCINSTALLDIR\Bin\$vcsubdir;$WindowsSdkDir\Bin\$winsdksubdir;$WindowsSdkDir\Bin;$env:PATH" >> $env:GITHUB_ENV
146-
echo LIB="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIB" >> $env:GITHUB_ENV
147-
echo LIBPATH="$VCINSTALLDIR\Lib\$vcsubdir;$WindowsSdkDir\Lib\$winsdksubdir;$env:LIBPATH" >> $env:GITHUB_ENV
148-
echo INCLUDE="$VCINSTALLDIR\Include;$WindowsSdkDir\Include;$env:INCLUDE" >> $env:GITHUB_ENV
149-
if: env.msvc-toolset == '9'
150-
-
151-
name: Set MSVC toolchain (v16)
152-
uses: ilammy/msvc-dev-cmd@v1
106+
name: Setup MSVC toolset
107+
uses: ./.github/actions/setup-msvc
153108
with:
154109
arch: ${{ matrix.arch }}
155-
toolset: ${{ env.msvc-toolset }}
156-
if: env.msvc-toolset == '16'
110+
version: ${{ env.msvc-toolset }}
111+
env:
112+
VS090URL: ${{ secrets.VS090URL }}
157113
-
158114
name: Install Python base packages
159115
run: |

0 commit comments

Comments
 (0)