Skip to content

Commit

Permalink
[Rollout] Production rollout 2025-01-15 (#4327)
Browse files Browse the repository at this point in the history
  • Loading branch information
oleksandr-didyk authored Jan 14, 2025
2 parents e38ee48 + e08b8b4 commit 6c7cc1d
Show file tree
Hide file tree
Showing 21 changed files with 138 additions and 60 deletions.
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"microsoft.dnceng.secretmanager": {
"version": "1.1.0-beta.24610.1",
"version": "1.1.0-beta.25057.2",
"commands": [
"secret-manager"
]
Expand All @@ -15,7 +15,7 @@
]
},
"microsoft.dnceng.configuration.bootstrap": {
"version": "1.1.0-beta.24610.1",
"version": "1.1.0-beta.25057.2",
"commands": [
"bootstrap-dnceng-configuration"
]
Expand Down
2 changes: 0 additions & 2 deletions .github/ISSUE_TEMPLATE/rollout-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ This issue tracks the `arcade-services` repository rollout. It provides the pers
## Build status check
- [ ] Check the status of the [dotnet-arcade-services-weekly](https://dev.azure.com/dnceng/internal/_build?definitionId=993) pipeline
- [ ] Check the status of the [arcade-services-internal-ci](https://dev.azure.com/dnceng/internal/_build?definitionId=252) pipeline.
- [ ] Check the `Rollout` column in the [Product Construction](https://github.com/orgs/dotnet/projects/276) board - move any issues rolled-out **last week** into `Done`

## Rollout preparation
- [ ] Create the rollout PR:
Expand All @@ -35,7 +34,6 @@ This issue tracks the `arcade-services` repository rollout. It provides the pers
- Note: this [PCS exceptions query](https://ms.portal.azure.com#@72f988bf-86f1-41af-91ab-2d7cd011db47/blade/Microsoft_OperationsManagementSuite_Workspace/Logs.ReactView/resourceId/%2Fsubscriptions%2Ffbd6122a-9ad3-42e4-976e-bccb82486856%2FresourceGroups%2Fproduct-construction-service%2Fproviders%2Fmicrosoft.insights%2Fcomponents%2Fproduct-construction-service-ai-prod/source/LogsBlade.AnalyticsShareLinkToQuery/q/H4sIAAAAAAAAAz2MOw6DMBBE%252B5xiSlsiRZDS5i7GjGQXu0brRSSIwyekoH4fvjMXr0377cBWaIRXYfckC17QtoV4H%252Bcf7KtIsroTua3qIWL6YKoaLn%252FA4ylxgNBLOxOjzrT%252FMJdk%252FgV08ryabQAAAA%253D%253D) might help in diagnosing issues.
- [ ] Keep track of any issues encountered during the rollout either directly in this issue, or in a dedicated issue linked to this issue
- [ ] Merge the `production => main` PR in `arcade-services` (⚠️ **DO NOT SQUASH**)
- [ ] Move rolled-out issues/PRs in the `Rollout` column of the [Product Construction](https://github.com/orgs/dotnet/projects/276) board into `Done`. Verify that PRs have a reference to the release at the bottom ([example](https://github.com/dotnet/arcade-services/pull/3663)). If needed, manually add a comment with the reference ([example](https://github.com/dotnet/arcade-services/pull/3680#issuecomment-2191186247))
- [ ] Close this issue with closing comment describing a high-level summary of issues encountered during the rollout
- In case of rollback, uncomment the *Rollback* section below and follow the steps there

Expand Down
32 changes: 16 additions & 16 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,37 +59,37 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.24623.2">
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.25060.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>278b1dda181ab18a9fbed73da998e50d128eae21</Sha>
<Sha>c255aae7f2b128fa20a4441f0e192c3c53561621</Sha>
</Dependency>
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.24610.1">
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.25057.2">
<Uri>https://github.com/dotnet/dnceng</Uri>
<Sha>c1d20b998e3d3c51ce4eaf9dfe1bcffda8562de1</Sha>
<Sha>53d0d22d1279882d461777706eef3d57275ad3cc</Sha>
</Dependency>
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.24610.1">
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.25057.2">
<Uri>https://github.com/dotnet/dnceng</Uri>
<Sha>c1d20b998e3d3c51ce4eaf9dfe1bcffda8562de1</Sha>
<Sha>53d0d22d1279882d461777706eef3d57275ad3cc</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
14 changes: 7 additions & 7 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
<MicrosoftNetFrameworkReferenceAssembliesVersion>1.0.0-preview.1</MicrosoftNetFrameworkReferenceAssembliesVersion>
<!-- Libs -->
<MicrosoftDotNetSignToolVersion>8.0.0-beta.24623.2</MicrosoftDotNetSignToolVersion>
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.24623.2</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.24623.2</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.24623.2</MicrosoftDotNetGitIssueManagerVersion>
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.24623.2</MicrosoftDotNetVersionToolsVersion>
<MicrosoftDotNetSignToolVersion>8.0.0-beta.25060.1</MicrosoftDotNetSignToolVersion>
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.25060.1</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.25060.1</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.25060.1</MicrosoftDotNetGitIssueManagerVersion>
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.25060.1</MicrosoftDotNetVersionToolsVersion>
<MicrosoftNetTestSdkVersion>17.4.1</MicrosoftNetTestSdkVersion>
<MicrosoftDotNetInternalLoggingVersion>1.1.0-beta.25053.1</MicrosoftDotNetInternalLoggingVersion>
<MicrosoftAspNetCoreApiPaginationVersion>1.1.0-beta.25053.1</MicrosoftAspNetCoreApiPaginationVersion>
Expand All @@ -32,8 +32,8 @@
<MicrosoftDotNetMetricsVersion>1.1.0-beta.25052.1</MicrosoftDotNetMetricsVersion>
<MicrosoftDotNetServicesUtilityVersion>1.1.0-beta.25053.1</MicrosoftDotNetServicesUtilityVersion>
<MicrosoftDotNetWebAuthenticationVersion>1.1.0-beta.25053.1</MicrosoftDotNetWebAuthenticationVersion>
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.24610.1</MicrosoftDncEngSecretManagerVersion>
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.24610.1</MicrosoftDncEngConfigurationBootstrapVersion>
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.25057.2</MicrosoftDncEngSecretManagerVersion>
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.25057.2</MicrosoftDncEngConfigurationBootstrapVersion>
</PropertyGroup>
<!--Package names-->
<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/job/job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ jobs:

- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- task: MicroBuildSigningPlugin@3
- task: MicroBuildSigningPlugin@4
displayName: Install MicroBuild plugin
inputs:
signType: $(_SignType)
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@
}
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24623.2"
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25060.1"
}
}
23 changes: 15 additions & 8 deletions src/Microsoft.DotNet.Darc/DarcLib/ILocalGitClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Task<string> BlameLineAsync(
string? blameFromCommit = null);

/// <summary>
/// Checks if the repository has any working tree changes.
/// Checks if the repository has any working tree changes.
/// </summary>
/// <param name="repoPath">Path to the repository</param>
Task<bool> HasWorkingTreeChangesAsync(string repoPath);
Expand All @@ -50,7 +50,7 @@ Task<string> BlameLineAsync(
Task CheckoutAsync(string repoPath, string refToCheckout);

/// <summary>
/// Resets the working tree (or a given subpath) to match the index.
/// Resets the working tree (or a given subpath) to match the index.
/// </summary>
/// <param name="repoPath">Path to the root of the repo</param>
/// <param name="relativePath">Relative path inside of the repo to reset only (or none if the whole repo)</param>
Expand All @@ -70,6 +70,13 @@ Task CommitAsync(
(string Name, string Email)? author = null,
CancellationToken cancellationToken = default);

/// <summary>
/// Commit amends the staged changes by calling git commit --amend
/// </summary>
/// <param name="repoPath">Path of the local repository</param>
/// <returns></returns>
Task CommitAmendAsync(string repoPath, CancellationToken cancellationToken = default);

/// <summary>
/// Creates a local branch.
/// </summary>
Expand Down Expand Up @@ -149,7 +156,7 @@ Task CommitAsync(
Task<bool> GitRefExists(string repoPath, string gitRef, CancellationToken cancellationToken = default);

/// <summary>
/// Fetches from all remotes.
/// Fetches from all remotes.
/// </summary>
/// <param name="repoPath">Path to a git repository</param>
/// <param name="remoteUris">List of remotes to fetch from</param>
Expand All @@ -159,7 +166,7 @@ Task FetchAllAsync(
CancellationToken cancellationToken = default);

/// <summary>
/// Performs `git pull`
/// Performs `git pull`
/// </summary>
/// <param name="repoPath">Path to a git repository</param>
Task PullAsync(
Expand All @@ -177,30 +184,30 @@ Task StageAsync(
CancellationToken cancellationToken = default);

/// <summary>
/// Add the authorization header to the git command line arguments and environment variables.
/// Add the authorization header to the git command line arguments and environment variables.
/// </summary>
/// <param name="args">Where to add the new argument into</param>
/// <param name="envVars">Where to add the new variables into</param>
Task AddGitAuthHeader(IList<string> args, IDictionary<string, string> envVars, string repoUri);

/// <summary>
/// Gets a value of a given git configuration setting.
/// Gets a value of a given git configuration setting.
/// </summary>
/// <param name="repoPath">Path to a git repository</param>
/// <param name="setting">Name of the setting</param>
/// <returns>Value of the setting</returns>
Task<string> GetConfigValue(string repoPath, string setting);

/// <summary>
/// Sets a value of a given git configuration setting.
/// Sets a value of a given git configuration setting.
/// </summary>
/// <param name="repoPath">Path to a git repository</param>
/// <param name="setting">Name of the setting</param>
/// <param name="value">New value</param>
Task SetConfigValue(string repoPath, string setting, string value);

/// <summary>
/// Runs git with the given arguments and returns the result.
/// Runs git with the given arguments and returns the result.
/// </summary>
Task<ProcessExecutionResult> RunGitCommandAsync(
string repoPath,
Expand Down
25 changes: 16 additions & 9 deletions src/Microsoft.DotNet.Darc/DarcLib/ILocalGitRepo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ public interface ILocalGitRepo
NativePath Path { get; }

/// <summary>
/// Executes git over the repo directory with specified arguments.
/// Executes git over the repo directory with specified arguments.
/// </summary>
Task<ProcessExecutionResult> ExecuteGitCommand(string[] args, CancellationToken cancellationToken = default);

/// <summary>
/// Executes git over the repo directory with specified arguments.
/// Executes git over the repo directory with specified arguments.
/// </summary>
Task<ProcessExecutionResult> ExecuteGitCommand(params string[] args);

Expand All @@ -48,7 +48,7 @@ Task<string> BlameLineAsync(
string? blameFromCommit = null);

/// <summary>
/// Checks if the repository has any working tree changes.
/// Checks if the repository has any working tree changes.
/// </summary>
Task<bool> HasWorkingTreeChangesAsync();

Expand All @@ -59,7 +59,7 @@ Task<string> BlameLineAsync(
Task CheckoutAsync(string refToCheckout);

/// <summary>
/// Resets the working tree (or a given subpath) to match the index.
/// Resets the working tree (or a given subpath) to match the index.
/// </summary>
/// <param name="relativePath">Relative path inside of the repo to reset only (or none if the whole repo)</param>
Task ResetWorkingTree(UnixPath? relativePath = null);
Expand All @@ -76,6 +76,13 @@ Task CommitAsync(
(string Name, string Email)? author = null,
CancellationToken cancellationToken = default);

/// <summary>
/// Amends the previous commit with staged changes.
/// </summary>
/// <param name="repoPath">Path of the local repository</param>
/// <returns></returns>
Task CommitAmendAsync(CancellationToken cancellationToken = default);

/// <summary>
/// Creates a local branch.
/// </summary>
Expand Down Expand Up @@ -136,27 +143,27 @@ Task CommitAsync(
Task<GitObjectType> GetObjectTypeAsync(string objectSha);

/// <summary>
/// Gets a value of a given git configuration setting.
/// Gets a value of a given git configuration setting.
/// </summary>
/// <param name="setting">Name of the setting</param>
/// <returns>Value of the setting</returns>
Task<string> GetConfigValue(string setting);

/// <summary>
/// Sets a value of a given git configuration setting.
/// Sets a value of a given git configuration setting.
/// </summary>
/// <param name="setting">Name of the setting</param>
/// <param name="value">New value</param>
Task SetConfigValue(string setting, string value);

/// <summary>
/// Fetches from all remotes.
/// Fetches from all remotes.
/// </summary>
/// <param name="remoteUris">List of remotes to fetch from</param>
Task FetchAllAsync(IReadOnlyCollection<string> remoteUris, CancellationToken cancellationToken = default);

/// <summary>
/// Performs `git pull`
/// Performs `git pull`
/// </summary>
Task PullAsync(CancellationToken cancellationToken = default);

Expand All @@ -173,7 +180,7 @@ Task CommitAsync(
Task StageAsync(IEnumerable<string> pathsToStage, CancellationToken cancellationToken = default);

/// <summary>
/// Add the authorization header to the git command line arguments and environment variables.
/// Add the authorization header to the git command line arguments and environment variables.
/// </summary>
/// <param name="args">Where to add the new argument into</param>
/// <param name="envVars">Where to add the new variables into</param>
Expand Down
8 changes: 8 additions & 0 deletions src/Microsoft.DotNet.Darc/DarcLib/LocalGitClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,14 @@ public async Task CommitAsync(
result.ThrowIfFailed($"Failed to commit {repoPath}");
}

public async Task CommitAmendAsync(
string repoPath,
CancellationToken cancellationToken = default)
{
var result = await _processManager.ExecuteGit(repoPath, ["commit", "--amend", "--no-edit"], cancellationToken: cancellationToken);
result.ThrowIfFailed($"Failed to amend commit in {repoPath}");
}

public async Task StageAsync(string repoPath, IEnumerable<string> pathsToStage, CancellationToken cancellationToken = default)
{
var result = await _processManager.ExecuteGit(repoPath, pathsToStage.Prepend("add"), cancellationToken: cancellationToken);
Expand Down
3 changes: 3 additions & 0 deletions src/Microsoft.DotNet.Darc/DarcLib/LocalGitRepo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ public async Task CheckoutAsync(string refToCheckout)
public async Task CommitAsync(string message, bool allowEmpty, (string Name, string Email)? author = null, CancellationToken cancellationToken = default)
=> await _localGitClient.CommitAsync(Path, message, allowEmpty, author, cancellationToken);

public async Task CommitAmendAsync(CancellationToken cancellationToken = default)
=> await _localGitClient.CommitAmendAsync(Path, cancellationToken);

public async Task CreateBranchAsync(string branchName, bool overwriteExistingBranch = false)
=> await _localGitClient.CreateBranchAsync(Path, branchName, overwriteExistingBranch);

Expand Down
10 changes: 7 additions & 3 deletions src/Microsoft.DotNet.Darc/DarcLib/RemoteRepoBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ protected async Task CommitFilesAsync(
string dotnetMaestroName,
string dotnetMaestroEmail)
{
logger.LogInformation("Pushing files to {branch}", branch);
logger.LogInformation("Preparing changes to {branch}", branch);
string tempRepoFolder = Path.Combine(TemporaryRepositoryPath, Path.GetRandomFileName());
const string remote = "origin";
try
Expand Down Expand Up @@ -103,8 +103,12 @@ protected async Task CommitFilesAsync(
await _processManager.ExecuteGit(clonedRepo, ["add", filePath]);
}

await _processManager.ExecuteGit(clonedRepo, ["commit", "--allow-empty", "-m", commitMessage]);
await _processManager.ExecuteGit(clonedRepo, ["-c", "core.askpass=", "-c", "credential.helper=", "push", remote, branch]);
var commitResult = await _processManager.ExecuteGit(clonedRepo, ["commit", "--allow-empty", "-m", commitMessage]);
commitResult.ThrowIfFailed($"Failed to commit changes on branch '{branch}'");

logger.LogInformation("Pushing branch {branch} to {remoteUri}", branch, remote);
var pushResult = await _processManager.ExecuteGit(clonedRepo, ["-c", "core.askpass=", "-c", "credential.helper=", "push", remote, branch]);
pushResult.ThrowIfFailed($"Failed to push changes to {remote}@{branch}");
}
catch (Exception exc)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,6 @@ Task<bool> UpdateRepository(
bool discardPatches,
bool reapplyVmrPatches,
bool lookUpBuilds,
CancellationToken cancellationToken);
CancellationToken cancellationToken,
bool amendReapplyCommit = false);
}
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,7 @@ protected async Task<bool> FlowBackAsync(
build,
excludedAssets,
sourceElementSha: build.Commit,
hadPreviousChanges: hasChanges,
cancellationToken);

return hasChanges;
Expand Down
Loading

0 comments on commit 6c7cc1d

Please sign in to comment.