Support global.json's rollForward latest* variants
Co-authored-by: js6pak <me@6pak.dev>
This commit is contained in:
parent
3f75cd0094
commit
8a21b4ed15
|
@ -201,6 +201,106 @@ jobs:
|
|||
shell: pwsh
|
||||
run: __tests__/verify-dotnet.ps1 -Patterns "^2.2", "^3.1"
|
||||
|
||||
test-setup-global-json-rollforward-latestmajor:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-13]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Clear toolcache
|
||||
shell: pwsh
|
||||
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}
|
||||
- name: Write global.json
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir subdirectory
|
||||
echo '{"sdk":{"version": "3.1.0","rollForward": "latestMajor"}}' > ./subdirectory/global.json
|
||||
- name: Setup dotnet
|
||||
uses: ./
|
||||
with:
|
||||
global-json-file: ./subdirectory/global.json
|
||||
- name: Verify dotnet
|
||||
shell: pwsh
|
||||
run: __tests__/verify-dotnet.ps1 -Patterns "^(?!3)"
|
||||
|
||||
test-setup-global-json-rollforward-latestminor:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-13]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Clear toolcache
|
||||
shell: pwsh
|
||||
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}
|
||||
- name: Write global.json
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir subdirectory
|
||||
echo '{"sdk":{"version": "3.0.100","rollForward": "latestMinor"}}' > ./subdirectory/global.json
|
||||
- name: Setup dotnet
|
||||
uses: ./
|
||||
with:
|
||||
global-json-file: ./subdirectory/global.json
|
||||
- name: Verify dotnet
|
||||
shell: pwsh
|
||||
run: __tests__/verify-dotnet.ps1 -Patterns "^3.1"
|
||||
|
||||
test-setup-global-json-rollforward-latestfeature:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-13]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Clear toolcache
|
||||
shell: pwsh
|
||||
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}
|
||||
- name: Write global.json
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir subdirectory
|
||||
echo '{"sdk":{"version": "3.1.100","rollForward": "latestFeature"}}' > ./subdirectory/global.json
|
||||
- name: Setup dotnet
|
||||
uses: ./
|
||||
with:
|
||||
global-json-file: ./subdirectory/global.json
|
||||
- name: Verify dotnet
|
||||
shell: pwsh
|
||||
run: __tests__/verify-dotnet.ps1 -Patterns "^3.1.4"
|
||||
|
||||
test-setup-global-json-rollforward-latestpatch:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-13]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Clear toolcache
|
||||
shell: pwsh
|
||||
run: __tests__/clear-toolcache.ps1 ${{ runner.os }}
|
||||
- name: Write global.json
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir subdirectory
|
||||
echo '{"sdk":{"version": "5.0.400","rollForward": "latestPatch"}}' > ./subdirectory/global.json
|
||||
- name: Setup dotnet
|
||||
uses: ./
|
||||
with:
|
||||
global-json-file: ./subdirectory/global.json
|
||||
- name: Verify dotnet
|
||||
shell: pwsh
|
||||
run: __tests__/verify-dotnet.ps1 -Patterns "^5.0.408$"
|
||||
|
||||
test-setup-global-json-only:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
|
|
|
@ -94096,9 +94096,23 @@ function getVersionFromGlobalJson(globalJsonPath) {
|
|||
if (globalJson.sdk && globalJson.sdk.version) {
|
||||
version = globalJson.sdk.version;
|
||||
const rollForward = globalJson.sdk.rollForward;
|
||||
if (rollForward && rollForward === 'latestFeature') {
|
||||
const [major, minor] = version.split('.');
|
||||
if (rollForward) {
|
||||
const [major, minor, featurePatch] = version.split('.');
|
||||
const feature = featurePatch.substring(0, 1);
|
||||
switch (rollForward) {
|
||||
case 'latestMajor':
|
||||
version = '';
|
||||
break;
|
||||
case 'latestMinor':
|
||||
version = `${major}`;
|
||||
break;
|
||||
case 'latestFeature':
|
||||
version = `${major}.${minor}`;
|
||||
break;
|
||||
case 'latestPatch':
|
||||
version = `${major}.${minor}.${feature}xx`;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return version;
|
||||
|
|
|
@ -110,9 +110,27 @@ function getVersionFromGlobalJson(globalJsonPath: string): string {
|
|||
if (globalJson.sdk && globalJson.sdk.version) {
|
||||
version = globalJson.sdk.version;
|
||||
const rollForward = globalJson.sdk.rollForward;
|
||||
if (rollForward && rollForward === 'latestFeature') {
|
||||
const [major, minor] = version.split('.');
|
||||
if (rollForward) {
|
||||
const [major, minor, featurePatch] = version.split('.');
|
||||
const feature = featurePatch.substring(0, 1);
|
||||
|
||||
switch (rollForward) {
|
||||
case 'latestMajor':
|
||||
version = '';
|
||||
break;
|
||||
|
||||
case 'latestMinor':
|
||||
version = `${major}`;
|
||||
break;
|
||||
|
||||
case 'latestFeature':
|
||||
version = `${major}.${minor}`;
|
||||
break;
|
||||
|
||||
case 'latestPatch':
|
||||
version = `${major}.${minor}.${feature}xx`;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return version;
|
||||
|
|
Loading…
Reference in New Issue