Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -411,26 +411,52 @@ private void WriteStep(WorkflowModel workflow, WorkflowStepModel step, WorkflowJ
.DistinctBy(x => x.FeedName)
.ToList();

using (WriteSection("- script: dotnet tool update --global DecSm.Atom.Tool"))
WriteLine("displayName: 'Install atom tool'");
// If we know the SetupDotnet step was run for dotnet 10+,
// then we can use the dotnet tool exec command instead of installing the tool to run it
if (setupDotnetSteps.Any(x =>
SemVer.TryParse(x.DotnetVersion?.Replace("x", "0"), out var version) && version.Major >= 10))
{
using (WriteSection("- script: |"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$"dotnet tool exec decsm.atom.tool -y -- nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");

WriteLine();
WriteLine("displayName: 'Setup NuGet'");

using (WriteSection("- script: |"))
using (WriteSection("env:"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$"{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}: $({feedToAdd.SecretName})");
}

WriteLine();
}
}
else
{
foreach (var feedToAdd in feedsToAdd)
WriteLine($" atom nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");
using (WriteSection("- script: dotnet tool update --global DecSm.Atom.Tool"))
WriteLine("displayName: 'Install atom tool'");

WriteLine("displayName: 'Setup NuGet'");
WriteLine();

using (WriteSection("env:"))
using (WriteSection("- script: |"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$"{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}: $({feedToAdd.SecretName})");
}
WriteLine($" atom nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");

WriteLine();
WriteLine("displayName: 'Setup NuGet'");

using (WriteSection("env:"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$"{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}: $({feedToAdd.SecretName})");
}

WriteLine();
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -492,29 +492,57 @@ private void WriteStep(WorkflowModel workflow, WorkflowStepModel step, WorkflowJ
.DistinctBy(x => x.FeedName)
.ToList();

using (WriteSection("- name: Install atom tool"))
// If we know the SetupDotnet step was run for dotnet 10+,
// then we can use the dotnet tool exec command instead of installing the tool to run it
if (setupDotnetSteps.Any(x =>
SemVer.TryParse(x.DotnetVersion?.Replace("x", "0"), out var version) && version.Major >= 10))
{
WriteLine("run: dotnet tool update --global DecSm.Atom.Tool");
WriteLine("shell: bash");
}
using (WriteSection("- name: Setup NuGet"))
{
using (WriteSection("run: |"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$"dotnet tool exec decsm.atom.tool -y -- nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");
}

WriteLine();
WriteLine("shell: bash");

using (WriteSection("- name: Setup NuGet"))
using (WriteSection("env:"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$$$"""{{{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}}}: ${{ secrets.{{{feedToAdd.SecretName}}} }}""");
}
}
}
else
{
using (WriteSection("run: |"))
using (WriteSection("- name: Install atom tool"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine($" atom nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");
WriteLine("run: dotnet tool update --global DecSm.Atom.Tool");
WriteLine("shell: bash");
}

WriteLine("shell: bash");
WriteLine();

using (WriteSection("env:"))
using (WriteSection("- name: Setup NuGet"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$$$"""{{{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}}}: ${{ secrets.{{{feedToAdd.SecretName}}} }}""");
using (WriteSection("run: |"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$" atom nuget-add --name \"{feedToAdd.FeedName}\" --url \"{feedToAdd.FeedUrl}\"");
}

WriteLine("shell: bash");

using (WriteSection("env:"))
{
foreach (var feedToAdd in feedsToAdd)
WriteLine(
$$$"""{{{AddNugetFeedsStep.GetEnvVarNameForFeed(feedToAdd.FeedName)}}}: ${{ secrets.{{{feedToAdd.SecretName}}} }}""");
}
}
}
}
Expand Down
Loading