Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3734de18ee | |||
| 90e7932e97 |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@actions/expressions",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"source": "./src/index.ts",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@actions/languageserver",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"description": "Language server for GitHub Actions",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
@@ -48,8 +48,8 @@
|
||||
"actions-languageserver": "./bin/actions-languageserver"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/languageservice": "^0.3.29",
|
||||
"@actions/workflow-parser": "^0.3.29",
|
||||
"@actions/languageservice": "^0.3.30",
|
||||
"@actions/workflow-parser": "^0.3.30",
|
||||
"@octokit/rest": "^21.1.1",
|
||||
"@octokit/types": "^9.0.0",
|
||||
"vscode-languageserver": "^8.0.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@actions/languageservice",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"description": "Language service for GitHub Actions",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
@@ -47,8 +47,8 @@
|
||||
"watch": "tsc --build tsconfig.build.json --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/expressions": "^0.3.29",
|
||||
"@actions/workflow-parser": "^0.3.29",
|
||||
"@actions/expressions": "^0.3.30",
|
||||
"@actions/workflow-parser": "^0.3.30",
|
||||
"vscode-languageserver-textdocument": "^1.0.7",
|
||||
"vscode-languageserver-types": "^3.17.2",
|
||||
"vscode-uri": "^3.0.8",
|
||||
|
||||
@@ -825,4 +825,51 @@ jobs:
|
||||
expect(textEdit.newText).toEqual("runs-on:\n - ");
|
||||
});
|
||||
});
|
||||
|
||||
describe("runs-on mapping syntax", () => {
|
||||
it("provides label completions for labels as scalar", async () => {
|
||||
const input = `on: push
|
||||
jobs:
|
||||
build:
|
||||
runs-on:
|
||||
labels: |`;
|
||||
const result = await complete(...getPositionFromCursor(input));
|
||||
|
||||
// Should show runner labels
|
||||
expect(result.some(x => x.label === "ubuntu-latest")).toBe(true);
|
||||
expect(result.some(x => x.label === "macos-latest")).toBe(true);
|
||||
expect(result.some(x => x.label === "self-hosted")).toBe(true);
|
||||
});
|
||||
|
||||
it("provides label completions for labels as sequence item", async () => {
|
||||
const input = `on: push
|
||||
jobs:
|
||||
build:
|
||||
runs-on:
|
||||
labels:
|
||||
- |`;
|
||||
const result = await complete(...getPositionFromCursor(input));
|
||||
|
||||
// Should show runner labels
|
||||
expect(result.some(x => x.label === "ubuntu-latest")).toBe(true);
|
||||
expect(result.some(x => x.label === "macos-latest")).toBe(true);
|
||||
expect(result.some(x => x.label === "self-hosted")).toBe(true);
|
||||
});
|
||||
|
||||
it("excludes already used labels in sequence", async () => {
|
||||
const input = `on: push
|
||||
jobs:
|
||||
build:
|
||||
runs-on:
|
||||
labels:
|
||||
- ubuntu-latest
|
||||
- |`;
|
||||
const result = await complete(...getPositionFromCursor(input));
|
||||
|
||||
// Should NOT show ubuntu-latest since it's already in the list
|
||||
expect(result.some(x => x.label === "ubuntu-latest")).toBe(false);
|
||||
// But should show other labels
|
||||
expect(result.some(x => x.label === "macos-latest")).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -19,6 +19,11 @@ export const DEFAULT_RUNNER_LABELS = [
|
||||
"self-hosted"
|
||||
];
|
||||
|
||||
const runsOnValueProvider = {
|
||||
kind: ValueProviderKind.SuggestedValues,
|
||||
get: () => Promise.resolve(stringsToValues(DEFAULT_RUNNER_LABELS))
|
||||
};
|
||||
|
||||
export const defaultValueProviders: ValueProviderConfig = {
|
||||
needs: {
|
||||
kind: ValueProviderKind.AllowedValues,
|
||||
@@ -32,8 +37,6 @@ export const defaultValueProviders: ValueProviderConfig = {
|
||||
kind: ValueProviderKind.SuggestedValues,
|
||||
get: (context, existingValues) => Promise.resolve(reusableJobSecrets(context, existingValues))
|
||||
},
|
||||
"runs-on": {
|
||||
kind: ValueProviderKind.SuggestedValues,
|
||||
get: () => Promise.resolve(stringsToValues(DEFAULT_RUNNER_LABELS))
|
||||
}
|
||||
"runs-on": runsOnValueProvider,
|
||||
"runs-on-labels": runsOnValueProvider
|
||||
};
|
||||
|
||||
+1
-1
@@ -6,5 +6,5 @@
|
||||
"languageservice",
|
||||
"languageserver"
|
||||
],
|
||||
"version": "0.3.29"
|
||||
"version": "0.3.30"
|
||||
}
|
||||
Generated
+9
-9
@@ -136,7 +136,7 @@
|
||||
},
|
||||
"expressions": {
|
||||
"name": "@actions/expressions",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.0.3",
|
||||
@@ -396,11 +396,11 @@
|
||||
},
|
||||
"languageserver": {
|
||||
"name": "@actions/languageserver",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/languageservice": "^0.3.29",
|
||||
"@actions/workflow-parser": "^0.3.29",
|
||||
"@actions/languageservice": "^0.3.30",
|
||||
"@actions/workflow-parser": "^0.3.30",
|
||||
"@octokit/rest": "^21.1.1",
|
||||
"@octokit/types": "^9.0.0",
|
||||
"vscode-languageserver": "^8.0.2",
|
||||
@@ -940,11 +940,11 @@
|
||||
},
|
||||
"languageservice": {
|
||||
"name": "@actions/languageservice",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/expressions": "^0.3.29",
|
||||
"@actions/workflow-parser": "^0.3.29",
|
||||
"@actions/expressions": "^0.3.30",
|
||||
"@actions/workflow-parser": "^0.3.30",
|
||||
"vscode-languageserver-textdocument": "^1.0.7",
|
||||
"vscode-languageserver-types": "^3.17.2",
|
||||
"vscode-uri": "^3.0.8",
|
||||
@@ -13345,10 +13345,10 @@
|
||||
},
|
||||
"workflow-parser": {
|
||||
"name": "@actions/workflow-parser",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/expressions": "^0.3.29",
|
||||
"@actions/expressions": "^0.3.30",
|
||||
"cronstrue": "^2.21.0",
|
||||
"yaml": "^2.0.0-8"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@actions/workflow-parser",
|
||||
"version": "0.3.29",
|
||||
"version": "0.3.30",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"source": "./src/index.ts",
|
||||
@@ -48,7 +48,7 @@
|
||||
"watch": "tsc --build tsconfig.build.json --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/expressions": "^0.3.29",
|
||||
"@actions/expressions": "^0.3.30",
|
||||
"cronstrue": "^2.21.0",
|
||||
"yaml": "^2.0.0-8"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user