Skip to content

Commit e2e0f6b

Browse files
authored
Merge pull request #987 from github/dylan-smith/ado-server-e2e-test
ADO Server integration test
2 parents 64cf2a4 + b1aaa52 commit e2e0f6b

5 files changed

Lines changed: 128 additions & 49 deletions

File tree

.github/workflows/CI.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ jobs:
151151
fail-fast: false
152152
matrix:
153153
runner-os: [windows-latest, ubuntu-latest, macos-latest]
154-
source-vcs: [AdoBasic, AdoCsv, Bbs, Ghes, Github]
154+
source-vcs: [AdoBasic, AdoCsv, AdoServer, Bbs, Ghes, Github]
155155
runs-on: ${{ matrix.runner-os }}
156156
concurrency: integration-test-${{ matrix.source-vcs }}-${{ matrix.runner-os }}
157157
steps:
@@ -233,6 +233,7 @@ jobs:
233233
ADO_PAT: ${{ secrets.ADO_PAT }}
234234
GHEC_PAT: ${{ secrets.GHEC_PAT }}
235235
GHES_PAT: ${{ secrets.GHES_PAT }}
236+
ADO_SERVER_PAT: ${{ secrets.ADO_SERVER_PAT }}
236237
BBS_USERNAME: ${{ secrets.BBS_USERNAME }}
237238
BBS_PASSWORD: ${{ secrets.BBS_PASSWORD }}
238239
SSH_KEY_BBS_8_5_0: ${{ secrets.SSH_KEY_BBS_8_5_0 }}

.github/workflows/integration-tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
strategy:
6767
matrix:
6868
runner-os: [windows-latest, ubuntu-latest, macos-latest]
69-
source-vcs: [AdoBasic, AdoCsv, Bbs, Ghes, Github]
69+
source-vcs: [AdoBasic, AdoCsv, AdoServer, Bbs, Ghes, Github]
7070
runs-on: ${{ matrix.runner-os }}
7171
concurrency: integration-test-${{ matrix.source-vcs }}-${{ matrix.runner-os }}
7272
steps:
@@ -158,6 +158,7 @@ jobs:
158158
ADO_PAT: ${{ secrets.ADO_PAT }}
159159
GHEC_PAT: ${{ secrets.GHEC_PAT }}
160160
GHES_PAT: ${{ secrets.GHES_PAT }}
161+
ADO_SERVER_PAT: ${{ secrets.ADO_SERVER_PAT }}
161162
BBS_USERNAME: ${{ secrets.BBS_USERNAME }}
162163
BBS_PASSWORD: ${{ secrets.BBS_PASSWORD }}
163164
SSH_KEY_BBS_8_5_0: ${{ secrets.SSH_KEY_BBS_8_5_0 }}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using System.Threading.Tasks;
2+
using Xunit;
3+
using Xunit.Abstractions;
4+
5+
namespace OctoshiftCLI.IntegrationTests
6+
{
7+
[Collection("Integration Tests")]
8+
public class AdoServerToGithub : AdoToGithub
9+
{
10+
private const string ADO_SERVER_URL = "http://octoshift-ado-server-2022.eastus.cloudapp.azure.com/";
11+
12+
public AdoServerToGithub(ITestOutputHelper output) : base(output, ADO_SERVER_URL, "ADO_SERVER_PAT")
13+
{
14+
}
15+
16+
[Fact]
17+
public async Task Basic()
18+
{
19+
var adoOrg = $"gei-e2e-testing-basic-{TestHelper.GetOsName()}";
20+
var githubOrg = $"e2e-testing-ado-server-{TestHelper.GetOsName()}";
21+
var teamProject1 = "gei-e2e-1";
22+
var teamProject2 = "gei-e2e-2";
23+
var adoRepo1 = teamProject1;
24+
var adoRepo2 = teamProject2;
25+
var pipeline1 = "pipeline1";
26+
var pipeline2 = "pipeline2";
27+
28+
var retryPolicy = new RetryPolicy(null);
29+
30+
await retryPolicy.Retry(async () =>
31+
{
32+
await Helper.ResetAdoTestEnvironment(adoOrg, ADO_SERVER_URL);
33+
await Helper.ResetGithubTestEnvironment(githubOrg);
34+
35+
await Helper.CreateTeamProject(adoOrg, teamProject1, ADO_SERVER_URL);
36+
var commitId = await Helper.InitializeAdoRepo(adoOrg, teamProject1, adoRepo1, ADO_SERVER_URL);
37+
await Helper.CreatePipeline(adoOrg, teamProject1, adoRepo1, pipeline1, commitId, ADO_SERVER_URL);
38+
39+
await Helper.CreateTeamProject(adoOrg, teamProject2, ADO_SERVER_URL);
40+
commitId = await Helper.InitializeAdoRepo(adoOrg, teamProject2, adoRepo2, ADO_SERVER_URL);
41+
await Helper.CreatePipeline(adoOrg, teamProject2, adoRepo2, pipeline2, commitId, ADO_SERVER_URL);
42+
});
43+
44+
await Helper.RunAdoToGithubCliMigration($"generate-script --github-org {githubOrg} --ado-org {adoOrg} --ado-server-url {ADO_SERVER_URL} --download-migration-logs --create-teams --link-idp-groups", Tokens);
45+
46+
Helper.AssertNoErrorInLogs(StartTime);
47+
48+
await Helper.AssertGithubRepoExists(githubOrg, $"{teamProject1}-{teamProject1}");
49+
await Helper.AssertGithubRepoExists(githubOrg, $"{teamProject2}-{teamProject2}");
50+
await Helper.AssertGithubRepoInitialized(githubOrg, $"{teamProject1}-{teamProject1}");
51+
await Helper.AssertGithubRepoInitialized(githubOrg, $"{teamProject2}-{teamProject2}");
52+
await Helper.AssertGithubTeamCreated(githubOrg, $"{teamProject1}-Maintainers");
53+
await Helper.AssertGithubTeamCreated(githubOrg, $"{teamProject1}-Admins");
54+
await Helper.AssertGithubTeamCreated(githubOrg, $"{teamProject2}-Maintainers");
55+
await Helper.AssertGithubTeamCreated(githubOrg, $"{teamProject2}-Admins");
56+
await Helper.AssertGithubTeamIdpLinked(githubOrg, $"{teamProject1}-Maintainers", $"{teamProject1}-Maintainers");
57+
await Helper.AssertGithubTeamIdpLinked(githubOrg, $"{teamProject1}-Admins", $"{teamProject1}-Admins");
58+
await Helper.AssertGithubTeamIdpLinked(githubOrg, $"{teamProject2}-Maintainers", $"{teamProject2}-Maintainers");
59+
await Helper.AssertGithubTeamIdpLinked(githubOrg, $"{teamProject2}-Admins", $"{teamProject2}-Admins");
60+
await Helper.AssertGithubTeamHasRepoRole(githubOrg, $"{teamProject1}-Maintainers", $"{teamProject1}-{teamProject1}", "maintain");
61+
await Helper.AssertGithubTeamHasRepoRole(githubOrg, $"{teamProject1}-Admins", $"{teamProject1}-{teamProject1}", "admin");
62+
await Helper.AssertGithubTeamHasRepoRole(githubOrg, $"{teamProject2}-Maintainers", $"{teamProject2}-{teamProject2}", "maintain");
63+
await Helper.AssertGithubTeamHasRepoRole(githubOrg, $"{teamProject2}-Admins", $"{teamProject2}-{teamProject2}", "admin");
64+
Helper.AssertMigrationLogFileExists(githubOrg, $"{teamProject1}-{teamProject1}");
65+
Helper.AssertMigrationLogFileExists(githubOrg, $"{teamProject2}-{teamProject2}");
66+
}
67+
}
68+
}

src/OctoshiftCLI.IntegrationTests/AdoToGithub.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ public abstract class AdoToGithub : IDisposable
1818
protected Dictionary<string, string> Tokens { get; }
1919
protected DateTime StartTime { get; }
2020

21-
protected AdoToGithub(ITestOutputHelper output)
21+
protected AdoToGithub(ITestOutputHelper output, string adoServerUrl = "https://dev.azure.com", string adoPatEnvVar = "ADO_PAT")
2222
{
2323
StartTime = DateTime.Now;
2424
_output = output;
2525

2626
var logger = new OctoLogger(x => { }, x => _output.WriteLine(x), x => { }, x => { });
2727

2828
_versionClient = new HttpClient();
29-
var adoToken = Environment.GetEnvironmentVariable("ADO_PAT");
29+
var adoToken = Environment.GetEnvironmentVariable(adoPatEnvVar);
3030
_adoHttpClient = new HttpClient();
3131
var retryPolicy = new RetryPolicy(logger);
3232
var adoClient = new AdoClient(logger, _adoHttpClient, new VersionChecker(_versionClient, logger), retryPolicy, adoToken);
33-
var adoApi = new AdoApi(adoClient, "https://dev.azure.com", logger);
33+
var adoApi = new AdoApi(adoClient, adoServerUrl, logger);
3434

3535
var githubToken = Environment.GetEnvironmentVariable("GHEC_PAT");
3636
_githubHttpClient = new HttpClient();

0 commit comments

Comments
 (0)