diff --git a/docs/docs/getting-started/changelog.md b/docs/docs/getting-started/changelog.md index ffa5751af..7d1912479 100644 --- a/docs/docs/getting-started/changelog.md +++ b/docs/docs/getting-started/changelog.md @@ -8,6 +8,19 @@ Thank you for using Semaphore! We continuously deploy changes that improve our product for our customers. This page is updated on a weekly basis. +### Week of March 23 2026 + +**(Improved) Ubuntu 24.04 image update** + +**(New)** New packages: + +- .NET SDK: 10.0.104 +- PowerShell: 7.6.0 +- Edge: 146.0.3856.72 +- EdgeDriver: 146.0.3856.72 + +To learn more about this image, check our [Ubuntu 24.04 page](https://docs.semaphoreci.com/reference/os-ubuntu-images/ubuntu-2404-image/). + ### Week of February 9 2026 **(Improved) Ubuntu 24.04 image update** diff --git a/docs/docs/reference/os-ubuntu-images/ubuntu-2404-image.md b/docs/docs/reference/os-ubuntu-images/ubuntu-2404-image.md index 2ab6020ea..b791f9c6d 100644 --- a/docs/docs/reference/os-ubuntu-images/ubuntu-2404-image.md +++ b/docs/docs/reference/os-ubuntu-images/ubuntu-2404-image.md @@ -57,6 +57,8 @@ Following version control tools are pre-installed: - Geckodriver 0.36.0 - Google Chrome 144.0.7559.59 - ChromeDriver 144.0.7559.59 +- Microsoft Edge: 146.0.3856.72 +- EdgeDriver: 146.0.3856.72 - Xvfb (X Virtual Framebuffer) - Phantomjs 2.1.1 @@ -219,6 +221,11 @@ The default installed Ruby version is 3.4.8. - 1.1.1 +### Microsoft .NET SDK and PowerShell + +- .NET SDK: 10.0.104 +- PowerShell: 7.6.0 + ## See also - [Installing packages on Ubuntu](../os-ubuntu) diff --git a/docs/docs/using-semaphore/languages/dotnet.md b/docs/docs/using-semaphore/languages/dotnet.md new file mode 100644 index 000000000..92beac0a6 --- /dev/null +++ b/docs/docs/using-semaphore/languages/dotnet.md @@ -0,0 +1,125 @@ +--- +description: .NET Guide +sidebar_position: 9 +--- + +# .NET + +Semaphore Ubuntu images include the .NET SDK and PowerShell. + +This page shows how to inspect installed versions, build .NET projects, and run tests. + +## Check installed versions + +Use the following commands to inspect available .NET and PowerShell versions: + +```bash +dotnet --info +dotnet --list-sdks +dotnet --list-runtimes +pwsh --version +``` + +## Build a .NET project + +The following example restores dependencies and builds a project in Release mode: + +```yaml +version: v1.0 +name: .NET pipeline +agent: + machine: + type: f1-standard-2 + os_image: ubuntu2404 +blocks: + - name: Build + task: + jobs: + - name: Build application + commands: + - checkout + - dotnet --info + - dotnet restore + - dotnet build --configuration Release --no-restore +``` + +## Run tests + +Use `dotnet test` to execute your test suite: + +```yaml +version: v1.0 +name: .NET tests +agent: + machine: + type: f1-standard-2 + os_image: ubuntu2404 +blocks: + - name: Test + task: + jobs: + - name: Run tests + commands: + - checkout + - dotnet restore + - dotnet build --configuration Release --no-restore + - dotnet test --configuration Release --no-build +``` + +## Use PowerShell + +PowerShell is available as `pwsh`. + +Example: + +```yaml +version: v1.0 +name: .NET with PowerShell +agent: + machine: + type: f1-standard-2 + os_image: ubuntu2404 +blocks: + - name: Run PowerShell + task: + jobs: + - name: PowerShell script + commands: + - checkout + - pwsh -Command "Get-ChildItem" + - pwsh -File ./scripts/build.ps1 +``` + +## Build and test in one pipeline + +The following pipeline restores dependencies, builds the application, and runs tests: + +```yaml +version: v1.0 +name: .NET example +agent: + machine: + type: f1-standard-2 + os_image: ubuntu2404 +blocks: + - name: Build and test + task: + jobs: + - name: .NET + commands: + - checkout + - dotnet --info + - dotnet restore + - dotnet build --configuration Release --no-restore + - dotnet test --configuration Release --no-build +``` + +## Example using a solution file + +If your repository contains a solution file, you can target it explicitly: + +```bash +dotnet restore MyApp.sln +dotnet build MyApp.sln --configuration Release --no-restore +dotnet test MyApp.sln --configuration Release --no-build +```