Compare commits

..

15 Commits
v1.1 ... v1.3.1

Author SHA1 Message Date
1ff57057b5 Added action-types 2023-02-03 15:02:07 -08:00
0e7c76c8f5 Merge pull request #110 from Vampire/issue-109 [skip ci]
Implement #109 adding action types file and fixes #111 as well
2023-02-03 08:46:55 -08:00
3ac564e2a5 Implement #109 adding action types file 2023-02-03 17:43:05 +01:00
d3ea839497 Version bump 2022-12-13 08:12:09 -08:00
0a09b7fae9 Fixes #104 reassigning input arg [skip ci] 2022-12-13 08:07:05 -08:00
0b93bd95fc Adding arm64 sniffing support 2022-12-12 12:36:10 -08:00
cc48120b57 Merge branch 'master' into arm64 2022-11-13 08:08:00 -07:00
645e3f7313 Modifying version and readme notes [skip ci] 2022-11-13 08:01:59 -07:00
1ccd12233c Fixing formatting on string arg [skip ci] 2022-11-07 17:16:50 -07:00
750ad4a08c Dedupe IDs [skip ci] 2022-11-07 17:13:28 -07:00
8c3da926c2 Dedupe IDs [skip ci] 2022-11-07 17:05:30 -07:00
e0b9f539d1 Adding arm64 tester [skip ci] 2022-11-07 17:03:36 -07:00
e38c2fa359 modifying tester [skip ci] 2022-11-07 16:55:30 -07:00
1bba226ea3 Adding arm64 detection 2022-11-07 16:54:38 -07:00
0b44c6745b Merge pull request #94 from microsoft/v1.1.3
Fixes #93 [skip ci]
2022-10-12 16:19:33 -07:00
8 changed files with 60 additions and 15 deletions

View File

@ -10,6 +10,14 @@ on:
- dev
paths-ignore:
- '*.md'
workflow_dispatch:
branches:
- dev
- arm64
- master
paths-ignore:
- '*.md'
jobs:
build:
@ -34,16 +42,27 @@ jobs:
PATH: ''
- name: Setup MSBuild (x64)
id: setup_msbuild_path
if: always()
id: setup_msbuild_path_x64
uses: ./
with:
vs-prerelease: true
msbuild-architecture: 'x64'
- name: Setup MSBuild (arm64)
if: always()
id: setup_msbuild_path_arm
uses: ./
with:
vs-prerelease: true
msbuild-architecture: 'arm64'
- name: echo msbuild path
run: |
echo "vswhere-path: ${{ steps.setup_msbuild_explicit.outputs.msbuildPath }}"
echo "PATH: ${{ steps.setup_msbuild_path.outputs.msbuildPath }}"
echo "ARM PATH: ${{ steps.setup_msbuild_path_arm.outputs.msbuildPath }}"
echo "ARM PATH: ${{ steps.setup_msbuild_path_x64.outputs.msbuildPath }}"
echo "Fallback: ${{ steps.setup_msbuild_fallback.outputs.msbuildPath }}"
- name: echo MSBuild

View File

@ -39,7 +39,7 @@ If you need your Actions runner to target a pre-release version of Visual Studio
```
### Specifying MSBuild architecture (optional)
By default the action will use the x86 architecture for MSBuild, but it is possible to target the x64 versions instead. Simply add the `msbuild-architecture` input. Valid input values are `x86` (default) and `x64`.
By default the action will use the x86 architecture for MSBuild, but it is possible to target the x64 versions instead. Simply add the `msbuild-architecture` input. Valid input values are `x86` (default), `x64`, and `arm64`. Note that the success of these will rely on the runner OS.
```yml
- name: Add msbuild to PATH

18
action-types.yml Normal file
View File

@ -0,0 +1,18 @@
# See https://github.com/krzema12/github-actions-typing
inputs:
vswhere-path:
type: string
vs-version:
type: string
vs-prerelease:
type: boolean
msbuild-architecture:
type: enum
name: Architecture
allowed-values:
- x86
- x64
- arm64
outputs:
msbuildPath:
type: string

View File

@ -15,7 +15,7 @@ inputs:
description: 'Enable searching for pre-release versions of Visual Studio/MSBuild'
required: false
msbuild-architecture:
description: 'The preferred processor architecture of MSBuild. Can be either "x86" or "x64". "x64" is only available from Visual Studio version 17.0 and later.'
description: 'The preferred processor architecture of MSBuild. Can be either "x86", "x64", or "arm64". "x64" is only available from Visual Studio version 17.0 and later.'
required: false
default: 'x86'
outputs:

12
dist/index.js vendored
View File

@ -1652,7 +1652,7 @@ const IS_WINDOWS = process.platform === 'win32';
const VS_VERSION = core.getInput('vs-version') || 'latest';
const VSWHERE_PATH = core.getInput('vswhere-path');
const ALLOW_PRERELEASE = core.getInput('vs-prerelease') || 'false';
const MSBUILD_ARCH = core.getInput('msbuild-architecture') || 'x86';
let MSBUILD_ARCH = core.getInput('msbuild-architecture') || 'x86';
// if a specific version of VS is requested
let VSWHERE_EXEC = '-products * -requires Microsoft.Component.MSBuild -property installationPath -latest ';
if (ALLOW_PRERELEASE === 'true') {
@ -1701,9 +1701,13 @@ function run() {
stdout: (data) => {
const installationPath = data.toString().trim();
core.debug(`Found installation path: ${installationPath}`);
// x64 only exists in one possible location, so no fallback probing
if (MSBUILD_ARCH === "x64") {
let toolPath = path.join(installationPath, 'MSBuild\\Current\\Bin\\amd64\\MSBuild.exe');
// x64 and arm64 only exist in one possible location, so no fallback probing
if (MSBUILD_ARCH === 'x64' || MSBUILD_ARCH === 'arm64') {
// x64 is actually amd64 so change to that
if (MSBUILD_ARCH === 'x64') {
MSBUILD_ARCH = 'amd64';
}
let toolPath = path.join(installationPath, `MSBuild\\Current\\Bin\\${MSBUILD_ARCH}\\MSBuild.exe`);
core.debug(`Checking for path: ${toolPath}`);
if (!fs.existsSync(toolPath)) {
return;

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "setup-msbuild",
"version": "1.1.3",
"version": "1.3.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "setup-msbuild",
"version": "1.1.3",
"version": "1.3.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.10.0",

View File

@ -1,6 +1,6 @@
{
"name": "setup-msbuild",
"version": "1.1.3",
"version": "1.3.1",
"private": true,
"description": "Helps set up specific MSBuild tool into PATH for later usage.",
"main": "lib/main.js",

View File

@ -9,7 +9,7 @@ const IS_WINDOWS = process.platform === 'win32'
const VS_VERSION = core.getInput('vs-version') || 'latest'
const VSWHERE_PATH = core.getInput('vswhere-path')
const ALLOW_PRERELEASE = core.getInput('vs-prerelease') || 'false'
const MSBUILD_ARCH = core.getInput('msbuild-architecture') || 'x86'
let MSBUILD_ARCH = core.getInput('msbuild-architecture') || 'x86'
// if a specific version of VS is requested
let VSWHERE_EXEC = '-products * -requires Microsoft.Component.MSBuild -property installationPath -latest '
@ -71,12 +71,16 @@ async function run(): Promise<void> {
const installationPath = data.toString().trim()
core.debug(`Found installation path: ${installationPath}`)
// x64 only exists in one possible location, so no fallback probing
if (MSBUILD_ARCH === "x64") {
// x64 and arm64 only exist in one possible location, so no fallback probing
if (MSBUILD_ARCH === 'x64' || MSBUILD_ARCH === 'arm64') {
// x64 is actually amd64 so change to that
if (MSBUILD_ARCH === 'x64') {
MSBUILD_ARCH = 'amd64'
}
let toolPath = path.join(
installationPath,
'MSBuild\\Current\\Bin\\amd64\\MSBuild.exe'
);
`MSBuild\\Current\\Bin\\${MSBUILD_ARCH}\\MSBuild.exe`
)
core.debug(`Checking for path: ${toolPath}`)
if (!fs.existsSync(toolPath)) {
return