47 lines
1.3 KiB
YAML
47 lines
1.3 KiB
YAML
name: 'Finite State Machine (FSM) Action'
|
|
description: 'Лёгкий конечный автомат на чистом Bash без Docker'
|
|
author: '4ma.su community'
|
|
inputs:
|
|
states:
|
|
description: 'JSON с переходами (обязательно)'
|
|
required: true
|
|
initial:
|
|
description: 'Начальное состояние'
|
|
required: true
|
|
event:
|
|
description: 'Событие для обработки'
|
|
required: true
|
|
context:
|
|
description: 'JSON-контекст для подстановки в действия ${{ var }}'
|
|
required: false
|
|
default: '{}'
|
|
debug:
|
|
description: 'Включить отладку'
|
|
required: false
|
|
default: 'false'
|
|
|
|
outputs:
|
|
next_state:
|
|
description: 'Следующее состояние'
|
|
value: ${{ steps.fsm.outputs.next_state }}
|
|
executed_actions:
|
|
description: 'Массив выполненных действий'
|
|
value: ${{ steps.fsm.outputs.executed_actions }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- id: fsm
|
|
name: Run FSM
|
|
shell: bash
|
|
env:
|
|
INPUT_STATES: ${{ inputs.states }}
|
|
INPUT_INITIAL: ${{ inputs.initial }}
|
|
INPUT_EVENT: ${{ inputs.event }}
|
|
INPUT_CONTEXT: ${{ inputs.context }}
|
|
INPUT_DEBUG: ${{ inputs.debug }}
|
|
run: ${{ github.action_path }}/fsm.sh
|
|
|
|
branding:
|
|
icon: 'activity'
|
|
color: 'blue' |