Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/windos-fix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Windows fix validation

on:
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
-
jobs:
setup-version:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: [windows-2019, windows-2022]
dotnet-version: ['2.1', '2.2', '3.0', '3.1', '5.0', '6.0', '7.0', '8.0']
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Clear toolcache
shell: pwsh
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}

- name: Take note of the current time
run: Get-Date | Out-File -FilePath "timestamp.txt"

- name: Setup dotnet ${{ matrix.dotnet-version }}
uses: ./
with:
dotnet-version: ${{ matrix.dotnet-version }}

- name: Verify the action took less than 1 minute
run: |
$timestampContent = Get-Content -Path "timestamp.txt"
$timestamp = [DateTime]::Parse($timestampContent)
$now = Get-Date

$diff = New-TimeSpan -Start $timestamp -End $now
if ($diff.Minutes -gt 1) {
throw "The action took longer than 1 minute to run"
}

- name: Verify dotnet was installed on drive D
run: |
$dotnetPath = Get-ChildItem -Path "D:\Program Files\dotnet" -Directory -Name
if ($dotnetPath -eq $null) {
throw "dotnet was not installed on drive D"
}
20 changes: 17 additions & 3 deletions dist/setup/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -72836,7 +72836,7 @@ const core = __importStar(__nccwpck_require__(2186));
const exec = __importStar(__nccwpck_require__(1514));
const io = __importStar(__nccwpck_require__(7436));
const hc = __importStar(__nccwpck_require__(6255));
const fs_1 = __nccwpck_require__(7147);
const fs_1 = __importStar(__nccwpck_require__(7147));
const path_1 = __importDefault(__nccwpck_require__(1017));
const os_1 = __importDefault(__nccwpck_require__(2037));
const semver_1 = __importDefault(__nccwpck_require__(5911));
Expand Down Expand Up @@ -73008,6 +73008,16 @@ class DotnetInstallScript {
}
}
exports.DotnetInstallScript = DotnetInstallScript;
// Workaround for slow installation on Windows with network attached C: drive
// see https://github.com/actions/setup-dotnet/issues/260
const fixWindowsInstallDir = (installDir) => {
if (!(0, utils_1.isSelfHosted)() && fs_1.default.existsSync('d:\\')) {
return installDir.replace(/^[cC]:\\/, 'd:\\');
}
else {
return installDir;
}
};
class DotnetInstallDir {
static convertInstallPathToAbsolute(installDir) {
if (path_1.default.isAbsolute(installDir))
Expand All @@ -73029,7 +73039,7 @@ exports.DotnetInstallDir = DotnetInstallDir;
DotnetInstallDir.default = {
linux: '/usr/share/dotnet',
mac: path_1.default.join(process.env['HOME'] + '', '.dotnet'),
windows: path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet')
windows: fixWindowsInstallDir(path_1.default.join(process.env['PROGRAMFILES'] + '', 'dotnet'))
};
DotnetInstallDir.dirPath = process.env['DOTNET_INSTALL_DIR']
? DotnetInstallDir.convertInstallPathToAbsolute(process.env['DOTNET_INSTALL_DIR'])
Expand Down Expand Up @@ -73272,7 +73282,7 @@ run();
"use strict";

Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.PLATFORM = exports.IS_WINDOWS = void 0;
exports.isSelfHosted = exports.PLATFORM = exports.IS_WINDOWS = void 0;
exports.IS_WINDOWS = process.platform === 'win32';
exports.PLATFORM = (() => {
if (process.platform === 'win32')
Expand All @@ -73281,6 +73291,10 @@ exports.PLATFORM = (() => {
return 'linux';
return 'mac';
})();
const isSelfHosted = () => process.env['AGENT_ISSELFHOSTED'] === '1' ||
(process.env['AGENT_ISSELFHOSTED'] === undefined &&
process.env['RUNNER_ENVIRONMENT'] !== 'github-hosted');
exports.isSelfHosted = isSelfHosted;


/***/ }),
Expand Down
Loading