Skip to content

Actions Overview

Architecture

Our GitHub Actions toolkit follows a layered architecture that promotes reusability, maintainability, and clear separation of concerns. The architecture implements the Loosely Coupled Modular Composition Pattern (LCMCP).

📖 For comprehensive documentation: Understanding Actions Guide

Core Actions

  • Atomic, self-contained operations
  • Single responsibility principle
  • Highly reusable
  • Docker-based execution
  • Generated from FCM definitions
  • Learn more about Core Actions

Composite Actions

Directory Structure

actions/
├── core/                  # Atomic operations
│   ├── branch_operations/
│   ├── commit_operations/
│   ├── tag_operations/
│   ├── version_calculator/
│   └── version_updater/
├── composite/            # Combined operations
│   ├── release_operations/
│   └── update_changelog/
└── shared/               # Shared utilities
    └── git_utils/        # Common Git functions

Usage Patterns

Using Core Actions

steps:
  - name: Calculate Version
    uses: deepworks-net/github.toolkit/actions/core/version_calculator@v1
    with:
      default_version: 'v0.1.0'

Using Composite Actions

steps:
  - name: Update Changelog
    uses: deepworks-net/github.toolkit/actions/composite/update_changelog@v1
    with:
      content: ${{ steps.notes.outputs.content }}

Standards

Docker Configuration

  • Standard base image (python:3.9-slim)
  • Consistent dependency management
  • Clear entrypoint configuration

Core/Composite Pattern

  • Atomic core actions with single responsibilities
  • Shared utilities for common functions
  • Composite actions that combine core actions
  • Clear separation of concerns

Testing

  • Comprehensive test workflows
  • Standard test structure
  • Clear naming conventions
  • Unit tests for atomic functions
  • Integration tests for real-world scenarios

Documentation

  • Complete API documentation
  • Usage examples
  • Error handling guidance
  • Migration guides for new patterns

Available Actions

Core

Composite

Shared Utilities

FCM Bridge System

Many Core Actions are automatically generated from Formal Conceptual Models (FCMs) using the bridge system:

  • FCM Definitions: Located in axioms/ directory
  • Generated Actions: Automatically created in actions/core/
  • Bridge System: Maintains synchronization between FCMs and actions

📖 Learn more: Understanding FCM Bridge Guide