*
Which environment should this workflow target?
*
Use semantic versioning, e.g. v1.4.0
(optional)
Skip deployment changes and validate configuration only.
Form Preview
Which environment should this workflow target?
Use semantic versioning, e.g. v1.4.0
Skip deployment changes and validate configuration only.
Export & Run
Use Advanced Actions Invoker Utils to turn your form values into workflow outputs. See the setup guide and v1.0.0 release.
Workflow preview
name: Advanced Actions Invoker
on:
workflow_dispatch:
inputs:
schema:
description: JSON schema for the composer
required: true
type: string
default: '{"type":"object","properties":{"environment":{"type":"string","enum":["development","staging","production"],"title":"Environment","default":"staging","description":"Which
environment should this workflow
target?"},"version":{"type":"string","pattern":"^v\\d+\\.\\d+\\.\\d+$","title":"Release
version","description":"Use semantic versioning, e.g.
v1.4.0","default":"v1.0.0"},"dryRun":{"type":"boolean","title":"Dry
run only","description":"Skip deployment changes and validate
configuration
only.","default":true}},"required":["environment","version"]}'
layout:
description: UI schema describing layout
required: true
type: string
default: '{"type":"VerticalLayout","elements":[{"type":"Control","scope":"#/properties/environment"},{"type":"Control","scope":"#/properties/version"},{"type":"Control","scope":"#/properties/dryRun"}]}'
data:
description: Initial data payload
required: false
type: string
default: '{"environment":"staging","version":"v1.0.0","dryRun":true}'
style:
description: Optional visual preferences
required: false
type: string
default: "{}"
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Validate dispatch values
env:
FORM_SCHEMA: ${{ inputs.schema }}
FORM_LAYOUT: ${{ inputs.layout }}
FORM_DATA: ${{ inputs.data }}
FORM_STYLE: ${{ inputs.style }}
run: >-
node <<'NODE'
for (const key of ['FORM_SCHEMA', 'FORM_LAYOUT', 'FORM_DATA',
'FORM_STYLE']) {
const value = JSON.parse(process.env[key] || '{}');
if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(key + ' must be an object');
}
console.log('Dispatch inputs parsed. Add your reviewed deployment
steps here.');
NODE