Compare commits

...

7 Commits

Author SHA1 Message Date
Francesco Renzi d4676627d8 Merge pull request #207 from actions/release/0.3.19
Release version 0.3.19
2025-09-30 12:39:48 +02:00
GitHub Actions d6b3b9d3e8 Release extension version 0.3.19 2025-09-30 10:37:47 +00:00
eric sciple 9ba7e48fbf Merge pull request #206 from lawrencegripper/lg/image-event
Add `on.image_version` support to language parser
2025-09-29 00:03:54 -05:00
Lawrence Gripper 6bd54f1b94 Merge branch 'lg/image-event' of github.com:lawrencegripper/languageservices into lg/image-event 2025-09-25 08:48:59 +00:00
Lawrence Gripper fcc72a8d97 Implement handling of new filters in typescript converter 2025-09-25 08:46:57 +00:00
Lawrence Gripper ce3b746742 Merge branch 'main' into lg/image-event 2025-09-24 11:42:22 +01:00
Lawrence Gripper 300c0dc569 Add support to language parser 2025-09-24 10:36:32 +00:00
13 changed files with 285 additions and 22 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/expressions",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/languageserver",
"version": "0.3.18",
"version": "0.3.19",
"description": "Language server for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -43,8 +43,8 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/languageservice": "^0.3.18",
"@actions/workflow-parser": "^0.3.18",
"@actions/languageservice": "^0.3.19",
"@actions/workflow-parser": "^0.3.19",
"@octokit/rest": "^21.1.1",
"@octokit/types": "^9.0.0",
"vscode-languageserver": "^8.0.2",
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/languageservice",
"version": "0.3.18",
"version": "0.3.19",
"description": "Language service for GitHub Actions",
"license": "MIT",
"type": "module",
@@ -44,8 +44,8 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/expressions": "^0.3.18",
"@actions/workflow-parser": "^0.3.18",
"@actions/expressions": "^0.3.19",
"@actions/workflow-parser": "^0.3.19",
"vscode-languageserver-textdocument": "^1.0.7",
"vscode-languageserver-types": "^3.17.2",
"vscode-uri": "^3.0.8",
+1 -1
View File
@@ -6,5 +6,5 @@
"languageservice",
"languageserver"
],
"version": "0.3.18"
"version": "0.3.19"
}
+9 -9
View File
@@ -135,7 +135,7 @@
},
"expressions": {
"name": "@actions/expressions",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"devDependencies": {
"@types/jest": "^29.0.3",
@@ -395,11 +395,11 @@
},
"languageserver": {
"name": "@actions/languageserver",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"dependencies": {
"@actions/languageservice": "^0.3.18",
"@actions/workflow-parser": "^0.3.18",
"@actions/languageservice": "^0.3.19",
"@actions/workflow-parser": "^0.3.19",
"@octokit/rest": "^21.1.1",
"@octokit/types": "^9.0.0",
"vscode-languageserver": "^8.0.2",
@@ -921,11 +921,11 @@
},
"languageservice": {
"name": "@actions/languageservice",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"dependencies": {
"@actions/expressions": "^0.3.18",
"@actions/workflow-parser": "^0.3.18",
"@actions/expressions": "^0.3.19",
"@actions/workflow-parser": "^0.3.19",
"vscode-languageserver-textdocument": "^1.0.7",
"vscode-languageserver-types": "^3.17.2",
"vscode-uri": "^3.0.8",
@@ -12917,10 +12917,10 @@
},
"workflow-parser": {
"name": "@actions/workflow-parser",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"dependencies": {
"@actions/expressions": "^0.3.18",
"@actions/expressions": "^0.3.19",
"cronstrue": "^2.21.0",
"yaml": "^2.0.0-8"
},
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@actions/workflow-parser",
"version": "0.3.18",
"version": "0.3.19",
"license": "MIT",
"type": "module",
"source": "./src/index.ts",
@@ -45,7 +45,7 @@
"watch": "tsc --build tsconfig.build.json --watch"
},
"dependencies": {
"@actions/expressions": "^0.3.18",
"@actions/expressions": "^0.3.19",
"cronstrue": "^2.21.0",
"yaml": "^2.0.0-8"
},
@@ -7,10 +7,12 @@ import {TokenType} from "../../templates/tokens/types";
import {
BranchFilterConfig,
EventsConfig,
NamesFilterConfig,
PathFilterConfig,
ScheduleConfig,
TagFilterConfig,
TypesFilterConfig,
VersionsFilterConfig,
WorkflowFilterConfig
} from "../workflow-template";
import {isValidCron} from "./cron";
@@ -76,10 +78,11 @@ export function convertOn(context: TemplateContext, token: TemplateToken): Event
...convertPatternFilter("tags", eventToken),
...convertPatternFilter("paths", eventToken),
...convertFilter("types", eventToken),
...convertFilter("versions", eventToken),
...convertFilter("names", eventToken),
...convertFilter("workflows", eventToken)
};
}
return result;
}
@@ -121,8 +124,8 @@ function convertPatternFilter<T extends BranchFilterConfig & TagFilterConfig & P
return result;
}
function convertFilter<T extends TypesFilterConfig & WorkflowFilterConfig>(
name: "types" | "workflows",
function convertFilter<T extends TypesFilterConfig & WorkflowFilterConfig & VersionsFilterConfig & NamesFilterConfig>(
name: "types" | "workflows" | "versions" | "names",
token: MappingToken
): T {
const result = {} as T;
@@ -130,6 +130,7 @@ export type EventsConfig = {
repository_dispatch?: TypesFilterConfig;
release?: TypesFilterConfig;
watch?: TypesFilterConfig;
image_versions?: TypesFilterConfig & VersionsFilterConfig & NamesFilterConfig;
// Index signature to allow easier lookup
[eventName: string]: unknown;
@@ -139,6 +140,14 @@ export type TypesFilterConfig = {
types?: string[];
};
export type VersionsFilterConfig = {
versions?: string[];
};
export type NamesFilterConfig = {
names?: string[];
};
export type BranchFilterConfig = {
branches?: string[];
"branches-ignore"?: string[];
+57
View File
@@ -99,6 +99,7 @@
"discussion_comment": "discussion-comment",
"fork": "fork",
"gollum": "gollum",
"image_version": "image-version",
"issue_comment": "issue-comment",
"issues": "issues",
"label": "label",
@@ -140,6 +141,7 @@
"discussion-comment-string",
"fork-string",
"gollum-string",
"image-version-string",
"issue-comment-string",
"issues-string",
"label-string",
@@ -436,6 +438,47 @@
"description": "Runs your workflow when someone creates or updates a Wiki page.",
"null": {}
},
"image-version-string": {
"description": "Runs your workflow when an image version is created or changes state.",
"string": {
"constant": "image_version"
}
},
"image-version": {
"description": "Runs your workflow when an image version is created or changes state.",
"one-of": [
"null",
"image-version-mapping"
]
},
"image-version-mapping": {
"mapping": {
"properties": {
"types": "image-version-activity",
"names": "event-names",
"versions": "event-versions"
}
}
},
"image-version-activity": {
"description": "The types of image version activity that trigger the workflow. Supported activity types: `created`, `ready`, `deleted`.",
"one-of": [
"image-version-activity-type",
"image-version-activity-types"
]
},
"image-version-activity-types": {
"sequence": {
"item-type": "image-version-activity-type"
}
},
"image-version-activity-type": {
"allowed-values": [
"created",
"ready",
"deleted"
]
},
"issue-comment-string": {
"description": "Runs your workflow when an issue or pull request comment is created, edited, or deleted.",
"string": {
@@ -1221,6 +1264,13 @@
"sequence-of-non-empty-string"
]
},
"event-names": {
"description": "Use the `names` filter when you want to include names via patterns or when you want to both include and exclude names using patterns. ",
"one-of": [
"non-empty-string",
"sequence-of-non-empty-string"
]
},
"event-tags": {
"description": "Use the `tags` filter when you want to include tag name patterns or when you want to both include and exclude tag names patterns. You cannot use both the `tags` and `tags-ignore` filters for the same event in a workflow.",
"one-of": [
@@ -1249,6 +1299,13 @@
"sequence-of-non-empty-string"
]
},
"event-versions": {
"description": "Use the `versions` filter when you want to include versions via patterns or when you want to both include and exclude versions using patterns. ",
"one-of": [
"non-empty-string",
"sequence-of-non-empty-string"
]
},
"repository-dispatch-string": {
"description": "You can use the GitHub API to trigger a webhook event called `repository_dispatch` when you want to trigger a workflow for activity that happens outside of GitHub.",
"string": {
@@ -0,0 +1,49 @@
include-source: false
skip:
- C#
- Go
---
on:
image_version:
names: testing
versions: 1.*
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"events": {
"image_version": {
"versions": [
"1.*"
],
"names": [
"testing"
]
}
},
"jobs": [
{
"type": "job",
"id": "my-job",
"name": "my-job",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,53 @@
include-source: false
skip:
- C#
- Go
---
on:
image_version:
types:
- ready
names:
- one
- two
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"events": {
"image_version": {
"types": [
"ready"
],
"names": [
"one",
"two"
]
}
},
"jobs": [
{
"type": "job",
"id": "my-job",
"name": "my-job",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,53 @@
include-source: false
skip:
- C#
- Go
---
on:
image_version:
types:
- ready
versions:
- "1.0.0"
- "1.0.1"
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"events": {
"image_version": {
"types": [
"ready"
],
"versions": [
"1.0.0",
"1.0.1"
]
}
},
"jobs": [
{
"type": "job",
"id": "my-job",
"name": "my-job",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}
@@ -0,0 +1,39 @@
include-source: false
skip:
- C#
- Go
---
on: image_version
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- run: echo hi
---
{
"events": {
"image_version": {}
},
"jobs": [
{
"type": "job",
"id": "my-job",
"name": "my-job",
"if": {
"type": 3,
"expr": "success()"
},
"runs-on": "ubuntu-latest",
"steps": [
{
"id": "__run",
"if": {
"type": 3,
"expr": "success()"
},
"run": "echo hi"
}
]
}
]
}