Skip to content

Commit 4d90333

Browse files
authored
Recognize more common filename patterns as Azure Pipelines files (#557)
* Cover more pipeline patterns * Add tests
1 parent 35354b3 commit 4d90333

File tree

2 files changed

+54
-10
lines changed

2 files changed

+54
-10
lines changed

package.json

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,13 @@
5656
"id": "azure-pipelines",
5757
"configuration": "./language-configuration.json",
5858
"filenamePatterns": [
59-
"azure-pipelines.yml",
60-
"azure-pipelines.yaml",
61-
".azure-pipelines.yml",
62-
".azure-pipelines.yaml",
63-
"azure-pipelines/**/*.yml",
64-
"azure-pipelines/**/*.yaml",
65-
".azure-pipelines/**/*.yml",
66-
".azure-pipelines/**/*.yaml",
67-
".vsts-ci.yml",
68-
"vsts-ci.yml"
59+
"azure-pipelines.{yml,yaml}",
60+
".azure-pipelines.{yml,yaml}",
61+
"**/azure-pipelines/**/*.{yml,yaml}",
62+
"**/.azure-pipelines/**/*.{yml,yaml}",
63+
"**/.pipelines/**/*.{yml,yaml}",
64+
"vsts-ci.{yml,yaml}",
65+
".vsts-ci.{yml,yaml}"
6966
],
7067
"aliases": [
7168
"Azure Pipelines"

src/test/suite/configuration.test.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import * as vscode from 'vscode';
2+
import * as assert from 'assert';
3+
4+
function getWorkspaceFolder() {
5+
return vscode.workspace.workspaceFolders?.[0] ?? assert.fail('No workspace folder');
6+
}
7+
8+
suite('Language configuration', () => {
9+
suite('Filename patterns', () => {
10+
const trackedUris: vscode.Uri[] = [];
11+
12+
async function assertFileIsAzurePipelines(...pathComponents: string[]): Promise<void> {
13+
const uri = vscode.Uri.joinPath(getWorkspaceFolder().uri, ...pathComponents);
14+
await vscode.workspace.fs.writeFile(uri, new Uint8Array());
15+
trackedUris.push(uri);
16+
17+
const doc = await vscode.workspace.openTextDocument(uri);
18+
assert.strictEqual(doc.languageId, 'azure-pipelines');
19+
}
20+
21+
suiteTeardown(async () => {
22+
await Promise.all(trackedUris.map(uri => vscode.workspace.fs.delete(uri)));
23+
});
24+
25+
for (const extension of ['yml', 'yaml']) {
26+
test(`Detects azure-pipelines.${extension}`, async () => {
27+
await assertFileIsAzurePipelines(`azure-pipelines.${extension}`);
28+
});
29+
30+
test(`Detects .azure-pipelines.${extension}`, async () => {
31+
await assertFileIsAzurePipelines(`.azure-pipelines.${extension}`);
32+
});
33+
34+
test(`Detects azure-pipelines/anything.${extension}`, async () => {
35+
await assertFileIsAzurePipelines('azure-pipelines', `anything.${extension}`);
36+
});
37+
38+
test(`Detects .azure-pipelines/anything.${extension}`, async () => {
39+
await assertFileIsAzurePipelines('.azure-pipelines', `anything.${extension}`);
40+
});
41+
42+
test(`Detects .pipelines/anything.${extension}`, async () => {
43+
await assertFileIsAzurePipelines('.pipelines', `anything.${extension}`);
44+
});
45+
}
46+
});
47+
});

0 commit comments

Comments
 (0)