Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
147e814
Add global.json
lbussell Nov 24, 2025
827ca0f
Add Directory.Build.props and Directory.Build.targets
lbussell Nov 24, 2025
6d50176
Copy eng/common from https://github.com/dotnet/arcade/commit/9a99542f…
lbussell Nov 24, 2025
db5fa5f
Add Version.Details.xml and Versions.props
lbussell Nov 24, 2025
0406f6d
Add pipeline
lbussell Nov 24, 2025
15f4729
Add more feeds to NuGet.config
lbussell Nov 24, 2025
a9087d9
Add arcade to global.json
lbussell Nov 24, 2025
fbe6d44
Add more build outputs to gitignore
lbussell Nov 24, 2025
ab1b118
Add packages and tools to gitignore
lbussell Nov 24, 2025
73ebae5
Add Versions.Details.props
lbussell Nov 24, 2025
def8a3d
Add dotnet tool to global.json
lbussell Nov 24, 2025
025b3a1
Rename pipeline
lbussell Nov 24, 2025
364198f
Remove unnecessary test package references
lbussell Nov 25, 2025
576f709
Update LICENSE to match Arcade
lbussell Nov 25, 2025
1b773d7
Use 9.0.300 SDK
lbussell Nov 25, 2025
99944eb
Don't sign ImageBuilder assemblies
lbussell Nov 25, 2025
e67f338
Merge branch 'main' into arcade
lbussell Nov 25, 2025
66eff5e
Update tools in global.json
lbussell Nov 25, 2025
474d334
Fix build in Dockerfile due to missing outer Directory.Build.props file
lbussell Nov 25, 2025
2cacb40
Allow empty sign list
lbussell Nov 25, 2025
b127fdb
Update pipeline templates
lbussell Nov 25, 2025
4207fa6
Swap public/internal build images
lbussell Nov 25, 2025
166287c
Create Signing.props
lbussell Nov 25, 2025
5863723
Add stub project to give Arcade something to publish
lbussell Nov 25, 2025
99691a8
Update global.json to use 9.0.300 again but allow roll forward
lbussell Nov 25, 2025
fd66799
NoWarn CS8002 instead of setting SignAssembly to false
lbussell Nov 25, 2025
1c15558
Clean up unused targets code
lbussell Nov 25, 2025
a633920
Update 9.0 runtime referenced in global.json
lbussell Nov 25, 2025
55b6a04
Unset AllowEmptySigningList
lbussell Nov 25, 2025
5ca0ece
Add build scripts to repo root
lbussell Nov 25, 2025
9a8e4c5
Update readmes
lbussell Nov 25, 2025
167cb03
Enforce file header presence
lbussell Nov 26, 2025
f237f26
Add file header
lbussell Nov 26, 2025
02395b8
Add official and unofficial versions of build pipeline
lbussell Nov 26, 2025
52ca8e1
Try to disable signing for unofficial builds
lbussell Nov 26, 2025
0cea5b7
Try disabling signing
lbussell Nov 26, 2025
14785ba
Add switch for publishing
lbussell Nov 26, 2025
94ab552
Factor out default SDL pool and image variables
lbussell Nov 26, 2025
91dc0c9
Remove Version.Details.props
lbussell Nov 26, 2025
3bad646
Set SignAssembly to false for projects that transitively depend on Co…
lbussell Nov 26, 2025
94bb97e
Add IsTestProject property
lbussell Dec 2, 2025
2b89042
Add Version.Details.props
lbussell Dec 2, 2025
829955b
Merge branch 'main' into arcade
lbussell Dec 2, 2025
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
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ dotnet_code_quality.ca2208.api_surface = public

# License header
file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license.
dotnet_diagnostic.IDE0073.severity = warning # IDE0073: The file header is missing or not located at the top of the file

# Xml project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj,slnx}]
Expand Down
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
[Bb]in/
[Oo]bj/
[Oo]ut/
[Dd]ebug/
[Rr]elease/
artifacts/
artifacts_stage_1/
x64/ !eng/common/cross/x64/
x86/ !eng/common/cross/x86/
msbuild.log
msbuild.err
msbuild.wrn
*.binlog

# Visual Studio Code cache/options directory
.vscode/
Expand All @@ -14,8 +24,10 @@
# ImageBuilder directory
.Microsoft.DotNet.ImageBuilder

# dotnet install directory
# .NET and tools directories
.dotnet/
.packages/
.tools/

# Test files
*.trx
19 changes: 19 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<Project>

<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />

<PropertyGroup Label="Build Settings">
<LangVersion>latest</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>

<PropertyGroup Label="Packaging Settings">
<Copyright>$(CopyrightNetFoundation)</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/dotnet/docker-tools</PackageProjectUrl>
<RepositoryUrl>https://github.com/dotnet/docker-tools</RepositoryUrl>
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>

</Project>
9 changes: 9 additions & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project>

<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />

<PropertyGroup>
<RestoreEnablePackagePruning>true</RestoreEnablePackagePruning>
</PropertyGroup>

</Project>
4 changes: 3 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
MIT License
The MIT License (MIT)

Copyright (c) 2017 .NET Foundation

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
Expand Down
1 change: 1 addition & 0 deletions Microsoft.DotNet.DockerTools.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
<Project Path="eng/src/file-pusher/file-pusher.csproj" />
<Project Path="eng/src/yaml-updater/yaml-updater.csproj" />
<Project Path="src/ImageBuilder/Microsoft.DotNet.ImageBuilder.csproj" />
<Project Path="src/ImageBuilder.Models/Microsoft.DotNet.ImageBuilder.Models.csproj" />
<Project Path="src/ImageBuilder.Tests/Microsoft.DotNet.ImageBuilder.Tests.csproj" />
</Solution>
6 changes: 5 additions & 1 deletion NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@
<configuration>
<packageSources>
<clear />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-8" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
<add key="dotnet-9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
<add key="dotnet-10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" />
</packageSources>
</configuration>
21 changes: 6 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,13 @@

This is a repo to house some common tools for use in the various .NET Docker repos.

## Image Builder
## Tools

A tool used to build and publish Docker images.
- [ImageBuilder](./src/README.md) is a tool used to build and publish Docker images.

The Image Builder tool can be acquired via a Docker image available at [mcr.microsoft.com/dotnet-buildtools/image-builder](https://mcr.microsoft.com/v2/dotnet-buildtools/image-builder/tags/list) or built from source via the instructions in its [readme](./src/README.md).
## Building locally

The Image Builder tool relies on metadata which defines various information needed to build and tag Docker images. The metadata is stored in a manifest.json file ([sample](https://github.com/dotnet/dotnet-docker/blob/main/manifest.json)). The metadata schema is defined in [source](./src/ImageBuilder/Models/Manifest/Manifest.cs).
To build, test, and pack all projects in the repo, run one of the following scripts:

The full list of supported commands can be seen by running the tool.

```console
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock mcr.microsoft.com/dotnet-buildtools/image-builder --help
```

The list of supported options for each command can be seen by specifying the `--help` option:

```console
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock mcr.microsoft.com/dotnet-buildtools/image-builder build --help
```
- **Windows**: `build.cmd`
- **Linux/Mac**: `./build.sh`
3 changes: 3 additions & 0 deletions build.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@echo off
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -build -restore -test -pack %*"
exit /b %ErrorLevel%
16 changes: 16 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

source="${BASH_SOURCE[0]}"

# resolve $SOURCE until the file is no longer a symlink
while [[ -h $source ]]; do
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
source="$(readlink "$source")"

# if $source was a relative symlink, we need to resolve it relative to the path where the
# symlink file was located
[[ $source != /* ]] && source="$scriptroot/$source"
done

scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
"$scriptroot/eng/common/build.sh" --restore --build --test --pack $@
2 changes: 2 additions & 0 deletions eng/Signing.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<Project>
</Project>
16 changes: 16 additions & 0 deletions eng/Version.Details.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!--
This file is auto-generated by the Maestro dependency flow system.
Do not edit it manually, as it will get overwritten by automation.
This file should be imported by eng/Versions.props
-->
<Project>
<PropertyGroup>
<!-- dotnet/arcade dependencies -->
<MicrosoftDotNetArcadeSdkPackageVersion>11.0.0-beta.25574.1</MicrosoftDotNetArcadeSdkPackageVersion>
</PropertyGroup>
<!--Property group for alternate package version names-->
<PropertyGroup>
<!-- dotnet/arcade dependencies -->
<MicrosoftDotNetArcadeSdkVersion>$(MicrosoftDotNetArcadeSdkPackageVersion)</MicrosoftDotNetArcadeSdkVersion>
</PropertyGroup>
</Project>
11 changes: 11 additions & 0 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Dependencies>
<ProductDependencies>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="11.0.0-beta.25574.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>5376144c8e87fa6819adb14206df0c1eeb8504c4</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
16 changes: 16 additions & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project>

<Import Project="Version.Details.props" Condition="Exists('Version.Details.props')" />

<PropertyGroup>
<!-- Follow https://semver.org/spec/v2.0.0.html -->
<MajorVersion>0</MajorVersion>
<MinorVersion>1</MinorVersion>
<PatchVersion>0</PatchVersion>
<VersionPrefix>$(MajorVersion).$(MinorVersion).$(PatchVersion)</VersionPrefix>

<!-- Arcade features -->
<UsingToolXliff>false</UsingToolXliff>
</PropertyGroup>

</Project>
4 changes: 4 additions & 0 deletions eng/common/BuildConfiguration/build-configuration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"RetryCountLimit": 1,
"RetryByAnyError": false
}
2 changes: 2 additions & 0 deletions eng/common/CIBuild.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@echo off
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*"
11 changes: 11 additions & 0 deletions eng/common/PSScriptAnalyzerSettings.psd1
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@{
IncludeRules=@('PSAvoidUsingCmdletAliases',
'PSAvoidUsingWMICmdlet',
'PSAvoidUsingPositionalParameters',
'PSAvoidUsingInvokeExpression',
'PSUseDeclaredVarsMoreThanAssignments',
'PSUseCmdletCorrectly',
'PSStandardDSCFunctionsInResource',
'PSUseIdenticalMandatoryParametersForDSC',
'PSUseIdenticalParametersForDSC')
}
28 changes: 28 additions & 0 deletions eng/common/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Don't touch this folder

uuuuuuuuuuuuuuuuuuuu
u" uuuuuuuuuuuuuuuuuu "u
u" u$$$$$$$$$$$$$$$$$$$$u "u
u" u$$$$$$$$$$$$$$$$$$$$$$$$u "u
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
u" u$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$u "u
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
$ $$$" ... "$... ...$" ... "$$$ ... "$$$ $
$ $$$u `"$$$$$$$ $$$ $$$$$ $$ $$$ $$$ $
$ $$$$$$uu "$$$$ $$$ $$$$$ $$ """ u$$$ $
$ $$$""$$$ $$$$ $$$u "$$$" u$$ $$$$$$$$ $
$ $$$$....,$$$$$..$$$$$....,$$$$..$$$$$$$$ $
$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
"u "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" u"
"u "$$$$$$$$$$$$$$$$$$$$$$$$" u"
"u "$$$$$$$$$$$$$$$$$$$$" u"
"u """""""""""""""""" u"
""""""""""""""""""""

!!! Changes made in this directory are subject to being overwritten by automation !!!

The files in this directory are shared by all Arcade repos and managed by automation. If you need to make changes to these files, open an issue or submit a pull request to https://github.com/dotnet/arcade first.
Loading
Loading