Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/schema-validation.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,9 @@
"azure-iot-edgehub-deployment-1.2.json": {
"unknownKeywords": ["examples", "contentMediaType"]
},
"bitrise.json": {
"externalSchema": ["bitrise-step.json"]
},
"bower.json": {
"externalSchema": ["base-04.json"]
},
Expand Down
163 changes: 109 additions & 54 deletions src/schemas/json/bitrise-step.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://json.schemastore.org/bitrise-step.json",
"$ref": "#/definitions/StepModel",
"definitions": {
"AptGetDepModel": {
"properties": {
"name": {
"type": "string"
"type": "string",
"description": "The name of the package to be installed via apt-get."
},
"bin_name": {
"type": "string"
"type": "string",
"description": "The name of the binary. This is optional and can be used if the binary name differs from the package name."
}
},
"additionalProperties": false,
Expand All @@ -17,7 +20,8 @@
"BashStepToolkitModel": {
"properties": {
"entry_file": {
"type": "string"
"type": "string",
"description": "The path to the bash script file that serves as the entry point for the Step."
}
},
"additionalProperties": false,
Expand All @@ -26,10 +30,12 @@
"BrewDepModel": {
"properties": {
"name": {
"type": "string"
"type": "string",
"description": "The name of the package to be installed via Homebrew."
},
"bin_name": {
"type": "string"
"type": "string",
"description": "The name of the binary. This is optional and can be used if the binary name differs from the package name."
}
},
"additionalProperties": false,
Expand All @@ -38,7 +44,8 @@
"CheckOnlyDepModel": {
"properties": {
"name": {
"type": "string"
"type": "string",
"description": "The name of the binary or tool to check for. If it is not present on the system, the Step will fail before running."
}
},
"additionalProperties": false,
Expand All @@ -47,10 +54,12 @@
"DependencyModel": {
"properties": {
"manager": {
"type": "string"
"type": "string",
"description": "The package manager used to handle the dependency."
},
"name": {
"type": "string"
"type": "string",
"description": "The name of the dependency."
}
},
"additionalProperties": false,
Expand All @@ -60,21 +69,27 @@
"properties": {
"brew": {
"items": {
"$ref": "#/definitions/BrewDepModel"
"$ref": "#/definitions/BrewDepModel",
"description": "A Homebrew dependency required by the Step."
},
"type": "array"
"type": "array",
"description": "List of Homebrew dependencies required by the Step."
},
"apt_get": {
"items": {
"$ref": "#/definitions/AptGetDepModel"
"$ref": "#/definitions/AptGetDepModel",
"description": "An apt-get dependency required by the Step."
},
"type": "array"
"type": "array",
"description": "List of apt-get dependencies required by the Step."
},
"check_only": {
"items": {
"$ref": "#/definitions/CheckOnlyDepModel"
"$ref": "#/definitions/CheckOnlyDepModel",
"description": "A dependency that is only checked for existence."
},
"type": "array"
"type": "array",
"description": "List of dependencies that are only checked for existence."
}
},
"additionalProperties": false,
Expand All @@ -83,19 +98,23 @@
"ExecutableModel": {
"properties": {
"storage_uri": {
"type": "string"
"type": "string",
"description": "The URI where the executable binary is stored."
},
"hash": {
"type": "string"
"type": "string",
"description": "The hash of the executable binary for integrity verification."
}
},
"type": "object"
"type": "object",
"description": "Platform-specific executable binary."
},
"GoStepToolkitModel": {
"required": ["package_name"],
"properties": {
"package_name": {
"type": "string"
"type": "string",
"description": "The name of the Go package that serves as the entry point for the Step."
}
},
"additionalProperties": false,
Expand All @@ -104,90 +123,119 @@
"StepModel": {
"properties": {
"title": {
"type": "string"
"type": "string",
"description": "The human-readable title of the Step."
},
"summary": {
"type": "string"
"type": "string",
"description": "A short summary of what the Step does."
},
"description": {
"type": "string"
"type": "string",
"description": "A more detailed overview of the Step's function and configuration."
},
"website": {
"type": "string"
"type": "string",
"description": "A web URL where users can find more information about the Step or the tools and services it implements."
},
"source_code_url": {
"type": "string"
"type": "string",
"description": "The URL of the repository of the Step's source code."
},
"support_url": {
"type": "string"
"type": "string",
"description": "A URL where users can get support for the Step."
},
"published_at": {
"type": "string",
"format": "date-time"
"format": "date-time",
"description": "The date and time when the Step was published to the Step Library. This is auto-generated and should not be set manually."
},
"source": {
"$ref": "#/definitions/StepSourceModel"
"$ref": "#/definitions/StepSourceModel",
"description": "The source code repository and commit information of the Step."
},
"asset_urls": {
"patternProperties": {
".*": {
"type": "string"
"type": "string",
"description": "A URL pointing to a Step asset such as an icon image."
}
},
"type": "object"
"type": "object",
"description": "URLs of assets associated with the Step, such as icon images. This is auto-generated and only set in the spec.json file in the Step Library."
},
"host_os_tags": {
"items": {
"type": "string"
"type": "string",
"description": "The host operating system tag."
},
"type": "array"
"type": "array",
"description": "This property defines the host operating systems the Step is compatible with. For example, `linux` or `macos`."
},
"project_type_tags": {
"items": {
"type": "string"
"type": "string",
"description": "The project type tag."
},
"type": "array"
"type": "array",
"description": "This property defines the project type category of the Step. For example, `flutter` or `ios`."
},
"type_tags": {
"items": {
"type": "string"
"type": "string",
"description": "A functional category tag. For example, `utility`, `test`, or `notification`."
},
"type": "array"
"type": "array",
"description": "This property defines the functional category of the Step. For example, `utility`, `test`, or `notification`."
},
"dependencies": {
"items": {
"$ref": "#/definitions/DependencyModel"
},
"type": "array"
"type": "array",
"description": "The dependencies required by the Step."
},
"toolkit": {
"$ref": "#/definitions/StepToolkitModel"
"$ref": "#/definitions/StepToolkitModel",
"description": "The toolkit used by the Step."
},
"deps": {
"$ref": "#/definitions/DepsModel"
"$ref": "#/definitions/DepsModel",
"description": "The dependencies required by the Step."
},
"is_requires_admin_user": {
"type": "boolean"
"type": "boolean",
"description": "If this property is true, the Step requires admin user privileges to run."
},
"is_always_run": {
"type": "boolean"
"type": "boolean",
"description": "If this property is true, the Step will always run, even if a previous Step in the Workflow failed."
},
"is_skippable": {
"type": "boolean"
"type": "boolean",
"description": "If this property is true, the build won't fail even if this Step fails. For example, if a Step restoring a cache archive fails, you might still want to run the build."
},
"run_if": {
"type": "string"
"type": "string",
"description": "This property sets conditions for running a Step. It requires boolean value or a valid Go template expression."
},
"timeout": {
"type": "integer"
"type": "integer",
"description": "This property defines a time limit for a Step: if the Step runs longer than the defined time, the Step fails. Define the limit in seconds."
},
"no_output_timeout": {
"type": "integer",
"description": "This property defines a time limit for a Step that produces no output: if the Step runs for the defined number of seconds without producing any output, the Step fails. Define the limit in seconds."
},
"meta": {
"patternProperties": {
".*": {
"additionalProperties": true
}
},
"type": "object"
"type": "object",
"description": "Additional metadata related to the Step."
},
"inputs": {
"items": {
Expand All @@ -196,9 +244,11 @@
"additionalProperties": true
}
},
"type": "object"
"type": "object",
"description": "An input parameter of the Step."
},
"type": "array"
"type": "array",
"description": "The inputs of the Step."
},
"outputs": {
"items": {
Expand All @@ -207,9 +257,11 @@
"additionalProperties": true
}
},
"type": "object"
"type": "object",
"description": "An output parameter of the Step."
},
"type": "array"
"type": "array",
"description": "The outputs the Step generates."
},
"executables": {
"description": "Platform-specific executable binaries",
Expand All @@ -225,10 +277,12 @@
"StepSourceModel": {
"properties": {
"git": {
"type": "string"
"type": "string",
"description": "The Git repository URL of the Step's source code."
},
"commit": {
"type": "string"
"type": "string",
"description": "The commit hash for the version tag of the Step's current version."
}
},
"additionalProperties": false,
Expand All @@ -237,15 +291,16 @@
"StepToolkitModel": {
"properties": {
"bash": {
"$ref": "#/definitions/BashStepToolkitModel"
"$ref": "#/definitions/BashStepToolkitModel",
"description": "The Bash toolkit configuration for the Step."
},
"go": {
"$ref": "#/definitions/GoStepToolkitModel"
"$ref": "#/definitions/GoStepToolkitModel",
"description": "The Go toolkit configuration for the Step."
}
},
"additionalProperties": false,
"type": "object"
}
},
"id": "https://json.schemastore.org/bitrise-step.json"
}
}
Loading