Skip to content

Commit 2a878a1

Browse files
committed
Add dotnet package and test configuration to Conan setup
1 parent ea07fb5 commit 2a878a1

3 files changed

Lines changed: 92 additions & 2 deletions

File tree

.github/workflows/build_renode_package.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,20 @@ jobs:
2626
2727
- name: Add Conan remote
2828
run: |
29-
conan remote add conan-silabs-net https://conan.silabs.net
29+
conan remote add conan-silabs-net https://conan-aus.silabs.net
3030
conan remote login conan-silabs-net buildengineer -p ${{ secrets.SVC_BUILDENGINEER }}
3131
32-
- name: Create package
32+
- name: create dotnet Package
33+
working-directory: dot_net
34+
run: |
35+
conan create .
36+
37+
- name: Upload dotnet package
38+
run: |
39+
conan upload dotnet_tools/8.0.409@silabs -r conan-silabs-net --confirm
40+
41+
42+
- name: Create Renode package
3343
run: conan create .
3444

3545
- name: Upload package

dot_net/conanfile.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from conan import ConanFile
2+
from conan.tools.files import get, copy
3+
import os
4+
5+
class DotnetToolsConan(ConanFile):
6+
name = "dotnet_tools"
7+
version = "8.0.409"
8+
license = "MIT"
9+
url = "https://dotnet.microsoft.com/en-us/download/dotnet/8.0"
10+
description = ".NET 8.0 SDK"
11+
settings = "os", "arch"
12+
package_type = "application"
13+
user = "silabs"
14+
build_policy = "missing"
15+
16+
17+
def layout(self):
18+
self.folders.source = "."
19+
self.folders.build = "build"
20+
self.folders.packages = "package"
21+
22+
def requirements(self):
23+
pass # No dependenciesw
24+
25+
def build(self):
26+
# Download the correct SDK for the platform
27+
base_url = f"https://builds.dotnet.microsoft.com/dotnet/Sdk/{self.version}/"
28+
if self.settings.os == "Macos":
29+
if self.settings.arch == "x86_64":
30+
url = f"{base_url}/dotnet-sdk-{self.version}-osx-x64.tar.gz"
31+
elif self.settings.arch == "armv8":
32+
url = f"{base_url}/dotnet-sdk-{self.version}-osx-arm64.tar.gz"
33+
else:
34+
raise ValueError("Unsupported Macos architecture")
35+
elif self.settings.os == "Linux":
36+
if self.settings.arch == "x86_64":
37+
url = f"{base_url}/dotnet-sdk-{self.version}-linux-x64.tar.gz"
38+
elif self.settings.arch == "armv8":
39+
url = f"{base_url}/dotnet-sdk-{self.version}-linux-arm64.tar.gz"
40+
else:
41+
raise ValueError("Unsupported Linux architecture")
42+
elif self.settings.os == "Windows":
43+
if self.settings.arch == "x86_64":
44+
url = f"{base_url}/dotnet-sdk-{self.version}-win-x64.zip"
45+
elif self.settings.arch == "x86":
46+
url = f"{base_url}/dotnet-sdk-{self.version}-win-x86.zip"
47+
elif self.settings.arch == "armv8":
48+
url = f"{base_url}/dotnet-sdk-{self.version}-win-arm64.zip"
49+
else:
50+
raise ValueError("Unsupported Windows architecture")
51+
else:
52+
raise ValueError("Unsupported OS")
53+
54+
get(self, url, strip_root=True, destination=self.build_folder)
55+
56+
def package(self):
57+
# Copy everything to the package folder
58+
copy(self, "*", src=self.build_folder, dst=os.path.join(self.package_folder, "."))
59+
60+
def package_info(self):
61+
self.buildenv_info.append_path("PATH", os.path.join(self.package_folder, "."))
62+
self.runenv_info.append_path("PATH", os.path.join(self.package_folder, "."))

dot_net/test_package/conanfile.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import os
2+
from conan import ConanFile
3+
from conan.tools.build import can_run
4+
5+
6+
class DotnetTestPkg(ConanFile):
7+
# Install dotnet with Conan and run the version command to make sure it boots.
8+
settings = ["os"]
9+
10+
def requirements(self):
11+
# This is a test package, so it must depend on the package under test.
12+
self.requires(self.tested_reference_str)
13+
14+
def test(self):
15+
# Execute dotnet and make sure it runs.
16+
if can_run(self):
17+
self.run(f'dotnet --version', env="conanbuild")
18+
self.run(f'dotnet --help', env="conanbuild")

0 commit comments

Comments
 (0)