diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 462c69f..2399f3a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -14,20 +14,24 @@ jobs:
fail-fast: false
matrix:
container_image:
- - quay.io/centos/centos:stream8
+ - docker.io/library/alpine:latest
+ - docker.io/library/alpine:edge
- quay.io/centos/centos:stream9
- - registry.fedoraproject.org/fedora:37
- registry.fedoraproject.org/fedora:38
- registry.fedoraproject.org/fedora:39
+ - registry.fedoraproject.org/fedora:40
- registry.fedoraproject.org/fedora:rawhide
- registry.access.redhat.com/ubi8
- registry.access.redhat.com/ubi9
dotnet_version:
- "6.0"
- - "7.0"
+ - "8.0"
+ exclude:
+ - container_image: registry.fedoraproject.org/fedora:rawhide
+ dotnet_version: "6.0"
include:
- - container_image: quay.io/centos/centos:stream9
- dotnet_version: "8.0"
+ - container_image: registry.fedoraproject.org/fedora:40
+ dotnet_version: "9.0"
container:
image: ${{ matrix.container_image }}
@@ -38,13 +42,31 @@ jobs:
timeout-minutes: 5
run: |
set -euo pipefail
- if command -v dnf; then
+ cat /etc/os-release
+ if grep fedora /etc/os-release; then
+ if [[ ${{ matrix.dotnet_version }} == 9.* ]]; then
+ dnf install 'dnf-command(copr)' -y
+ dnf copr enable @dotnet-sig/dotnet-preview -y
+ dnf install -y dotnet-sdk-aot-${{ matrix.dotnet_version }}
+ fi
dnf install -y dotnet-sdk-${{ matrix.dotnet_version }} git make
- elif command -v apk; then
- apk add bash curl git icu-libs krb5-libs libgcc libintl libssl1.1 libstdc++ make zlib
- curl -sSLO https://dot.net/v1/dotnet-install.sh
- chmod +x ./dotnet-install.sh
- ./dotnet-install.sh --channel ${{ matrix.dotnet_version }}
+ if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
+ dnf install -y \
+ dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
+ dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
+ aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
+ fi
+ elif grep alpine /etc/os-release; then
+ if grep edge /etc/os-release; then
+ echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
+ fi
+ apk add dotnet-sdk-${{ matrix.dotnet_version }} dotnet-doc git make
+ if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
+ apk add \
+ dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
+ dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
+ aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
+ fi
fi
- uses: actions/checkout@v2
@@ -80,20 +102,24 @@ jobs:
fail-fast: false
matrix:
container_image:
- - quay.io/centos/centos:stream8
+ - docker.io/library/alpine:latest
+ - docker.io/library/alpine:edge
- quay.io/centos/centos:stream9
- - registry.fedoraproject.org/fedora:37
- registry.fedoraproject.org/fedora:38
- registry.fedoraproject.org/fedora:39
+ - registry.fedoraproject.org/fedora:40
- registry.fedoraproject.org/fedora:rawhide
- registry.access.redhat.com/ubi8
- registry.access.redhat.com/ubi9
dotnet_version:
- "6.0"
- - "7.0"
+ - "8.0"
+ exclude:
+ - container_image: registry.fedoraproject.org/fedora:rawhide
+ dotnet_version: "6.0"
include:
- - container_image: quay.io/centos/centos:stream9
- dotnet_version: "8.0"
+ - container_image: registry.fedoraproject.org/fedora:40
+ dotnet_version: "9.0"
container:
@@ -105,7 +131,32 @@ jobs:
timeout-minutes: 5
run: |
set -euo pipefail
- dnf install -y dotnet-sdk-${{ matrix.dotnet_version }} git make
+ cat /etc/os-release
+ if grep fedora /etc/os-release ; then
+ if [[ ${{ matrix.dotnet_version }} == 9.* ]]; then
+ dnf install 'dnf-command(copr)' -y
+ dnf copr enable @dotnet-sig/dotnet-preview -y
+ dnf install -y dotnet-sdk-aot-${{ matrix.dotnet_version }}
+ fi
+ dnf install -y dotnet-sdk-${{ matrix.dotnet_version }} git make
+ if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
+ dnf install -y \
+ dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
+ dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
+ aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
+ fi
+ elif grep alpine /etc/os-release; then
+ if grep edge /etc/os-release; then
+ echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
+ fi
+ apk add dotnet-sdk-${{ matrix.dotnet_version }} dotnet-doc git make
+ if [[ ! ${{ matrix.dotnet_version }} == *6* ]]; then
+ apk add \
+ dotnet-sdk-dbg-${{ matrix.dotnet_version }} \
+ dotnet-runtime-dbg-${{ matrix.dotnet_version }} \
+ aspnetcore-runtime-dbg-${{ matrix.dotnet_version }}
+ fi
+ fi
# We need to fetch the tags, so 'git tag' in 'make publish' below works
- uses: actions/checkout@v2
@@ -127,9 +178,12 @@ jobs:
- name: Install Test dependencies
timeout-minutes: 2
run: |
- dnf install -y python3 wget \
- $(grep '^Dependencies(dnf): ' dotnet-regular-tests/README.md | cut -d: -f2-) \
- --skip-broken
+ if grep fedora /etc/os-release ; then
+ dnf install -y python3 wget $(grep '^Dependencies(dnf): ' README.md | cut -d: -f2-) --skip-broken
+ elif grep alpine /etc/os-release; then
+ apk add python3 wget curl $(grep '^Dependencies(apk): ' README.md | cut -d: -f2-)
+ echo -e '[PostgreSQL]\nDescription=PostgreSQL Unicode\nDriver=/usr/lib/psqlodbcw.so\nUsageCount=1' > /etc/odbcinst.ini
+ fi
- name: Run reproducers
run: |
diff --git a/Samples/BashTestSpecificToDotNet2x/test.json b/Samples/BashTestSpecificToDotNet2x/test.json
deleted file mode 100644
index cfa7c79..0000000
--- a/Samples/BashTestSpecificToDotNet2x/test.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "BashTestSpecificToDotNet2x",
- "enabled": true,
- "requiresSdk": true,
- "version": "2.x",
- "versionSpecific": true,
- "type": "bash",
- "cleanup": true,
- "ignoredRIDs":[
- ]
-}
-
diff --git a/Samples/BashTestSpecificToDotNet2x/test.sh b/Samples/BashTestSpecificToDotNet2x/test.sh
deleted file mode 100755
index 3395065..0000000
--- a/Samples/BashTestSpecificToDotNet2x/test.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-true
diff --git a/Samples/BashTestSpecificToDotNet50/test.json b/Samples/BashTestSpecificToDotNet50/test.json
deleted file mode 100644
index 8579aa2..0000000
--- a/Samples/BashTestSpecificToDotNet50/test.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "BashTestSpecificToDotNet50",
- "enabled": true,
- "requiresSdk": true,
- "version": "50.0",
- "versionSpecific": true,
- "type": "bash",
- "cleanup": true,
- "ignoredRIDs":[
- ]
-}
-
diff --git a/Samples/BashTestSpecificToDotNet50/test.sh b/Samples/BashTestSpecificToDotNet50/test.sh
deleted file mode 100755
index 5b71ffd..0000000
--- a/Samples/BashTestSpecificToDotNet50/test.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-false
diff --git a/Turkey.Tests/CsprojCompatibilityPatcherTest.cs b/Turkey.Tests/CsprojCompatibilityPatcherTest.cs
deleted file mode 100644
index f69e0e8..0000000
--- a/Turkey.Tests/CsprojCompatibilityPatcherTest.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-
-using Turkey;
-
-using Xunit;
-
-namespace Turkey.Tests
-{
- public class CsprojCompatibilityPatcherTest
- {
- [Theory]
- [InlineData("netcoreapp1.0", "2.1", "netcoreapp2.1")]
- [InlineData("netcoreapp2.1", "3.1", "netcoreapp3.1")]
- [InlineData("netcoreapp3.1", "3.1", "netcoreapp3.1")]
- [InlineData("net5.0", "3.1", "netcoreapp3.1")]
- [InlineData("net5.0", "2.1", "netcoreapp2.1")]
- public void TargetFrameworksAreReplacedCorrectly(string currentTfm, string runtimeVersion, string expectedTfm)
- {
- Version newRuntimeVersion = Version.Parse(runtimeVersion);
- string csproj = $@"
-
-
-
- {currentTfm}
-
-
-";
- string patched = new CsprojCompatibilityPatcher().Patch(csproj, newRuntimeVersion);
- Assert.Contains(expectedTfm, patched);
- if (currentTfm != expectedTfm)
- {
- Assert.DoesNotContain(currentTfm, patched);
- }
- }
- }
-}
diff --git a/Turkey.Tests/SourceBuildTest.cs b/Turkey.Tests/SourceBuildTest.cs
index 3ce5f0b..bf6b112 100644
--- a/Turkey.Tests/SourceBuildTest.cs
+++ b/Turkey.Tests/SourceBuildTest.cs
@@ -48,17 +48,6 @@ protected override Task SendAsync(HttpRequestMessage messag
}
}
- [Fact]
- public async Task VerifyProdConFeedIsLookedUpAndThenTheFeedIsVerifiedToResolve()
- {
- var messageHandler = new ProdConHandler();
- var client = new HttpClient(messageHandler);
- var sourceBuild = new SourceBuild(client);
-
- var feed = await sourceBuild.GetProdConFeedAsync(Version.Parse("3.1"));
-
- Assert.Equal(FAKE_FEED, feed);
- }
[Fact]
public async Task VerifyProdConFeedIsNotUsedForNewReleases()
diff --git a/Turkey/CsprojCompatibilityPatcher.cs b/Turkey/CsprojCompatibilityPatcher.cs
index c676965..ce14067 100644
--- a/Turkey/CsprojCompatibilityPatcher.cs
+++ b/Turkey/CsprojCompatibilityPatcher.cs
@@ -14,15 +14,8 @@ public string Patch(string originalCsprojContents, Version newRuntime)
{
var pattern = @"net(?:coreapp)?\d\.\d+";
var versionString = newRuntime.MajorMinor;
- string replacement = null;
- if (newRuntime.Major < 4)
- {
- replacement = $"netcoreapp{versionString}";
- }
- else
- {
- replacement = $"net{versionString}";
- }
+ var replacement = $"net{versionString}";
+
var output = Regex.Replace(originalCsprojContents, pattern, replacement);
return output;
diff --git a/Turkey/Program.cs b/Turkey/Program.cs
index 957a5aa..fba1d31 100644
--- a/Turkey/Program.cs
+++ b/Turkey/Program.cs
@@ -152,25 +152,6 @@ public static async Task GenerateNuGetConfigIfNeededAsync(string additio
var nuget = new NuGet(client);
var sourceBuild = new SourceBuild(client);
- if (netCoreAppVersion.Major < 4)
- {
- try
- {
- var prodConUrl = await GetProdConFeedUrlIfNeededAsync(nuget, sourceBuild, netCoreAppVersion);
- if (!string.IsNullOrEmpty(prodConUrl))
- {
- prodConUrl = prodConUrl.Trim();
- Console.WriteLine($"Packages are not live on nuget.org; using {prodConUrl} as additional package source");
- urls.Add(prodConUrl);
- }
- }
- catch (HttpRequestException exception)
- {
- Console.WriteLine("WARNING: failed to get ProdCon url. Ignoring Exception:");
- Console.WriteLine(exception.ToString());
- }
- }
-
string nugetConfig = null;
if (useSourceBuildNuGetConfig)
{
@@ -233,17 +214,6 @@ public static IReadOnlySet CreateTraits(Version runtimeVersion, Version
return traits;
}
- public static async Task GetProdConFeedUrlIfNeededAsync(NuGet nuget, SourceBuild sourceBuild, Version netCoreAppVersion)
- {
- bool live = await nuget.IsPackageLiveAsync("runtime.linux-x64.Microsoft.NetCore.DotNetAppHost", netCoreAppVersion);
- if (!live)
- {
- return await sourceBuild.GetProdConFeedAsync(netCoreAppVersion);
- }
-
- return null;
- }
-
static async Task Main(string[] args)
{
var rootCommand = new RootCommand(description: "A test runner for running standalone bash-based or xunit tests");
diff --git a/Turkey/SourceBuild.cs b/Turkey/SourceBuild.cs
index d12965b..ce847d9 100644
--- a/Turkey/SourceBuild.cs
+++ b/Turkey/SourceBuild.cs
@@ -18,18 +18,8 @@ public SourceBuild(HttpClient client)
public string GetBranchContentUrl(Version version)
{
- string url;
- if (version.Major <= 3)
- {
- var branchName = "release/" + version.MajorMinor;
- url = $"https://raw.githubusercontent.com/dotnet/source-build/{branchName}/";
- }
- else
- {
- var branchName = "release/" + version.MajorMinor + ".1xx";
- url = $"https://raw.githubusercontent.com/dotnet/installer/{branchName}/";
- }
-
+ var branchName = "release/" + version.MajorMinor + ".1xx";
+ var url = $"https://raw.githubusercontent.com/dotnet/installer/{branchName}/";
return url;
}
diff --git a/Turkey/Test.cs b/Turkey/Test.cs
index 523395f..c1c528c 100644
--- a/Turkey/Test.cs
+++ b/Turkey/Test.cs
@@ -75,22 +75,11 @@ public async Task RunAsync(Action logger, CancellationToken
private void UpdateProjectFilesIfPresent()
{
- if (SystemUnderTest.RuntimeVersion < Version.Parse("2.0"))
+ var csprojFile = $"{Directory.Name}.csproj";
+ var csprojPath = Path.Combine(this.Directory.FullName, csprojFile);
+ if (File.Exists(csprojPath))
{
- var projectJsonPath = Path.Combine(this.Directory.FullName, "project.json");
- if (File.Exists(projectJsonPath))
- {
- CopyProjectJsonFile();
- }
- }
- else
- {
- var csprojFile = $"{Directory.Name}.csproj";
- var csprojPath = Path.Combine(this.Directory.FullName, csprojFile);
- if (File.Exists(csprojPath))
- {
- UpdateCsprojVersion(csprojPath);
- }
+ UpdateCsprojVersion(csprojPath);
}
}