Skip to main content

P6M Actions Catalog

Comprehensive library of 17+ reusable GitHub Actions for multi-language CI/CD workflows

The P6M Actions Repository is a production-ready CI/CD automation platform that provides standardized automation components for enterprise development teams. Each action follows GitHub's composite action pattern for lightweight, fast, and transparent execution.

Repository Architecture

Each action follows a consistent pattern:

{tech-stack}-{operation}/
├── action.yml # Main action definition
├── README.md # Documentation
└── .github/
└── workflows/
├── release.yml # Standardized release workflow
└── test.yml # Integration tests (some actions)

Core Benefits:

  • Consistency - Same patterns across .NET, JavaScript, Python, Rust, Java, Docker
  • Reusability - Actions can be used across multiple repositories
  • Maintainability - Centralized updates benefit all consuming projects
  • Best Practices - Encodes proven CI/CD patterns

Interactive Action Catalog

Showing 17 of 17 actions

docker-buildx-setup

Multi-platform Docker builds setup

dockerintermediateDocker

Usage

Build cross-platform containers

Best Practices

Use with specific platform targets, cache build layers

Key Inputs

platforms, buildx-version, driver-opts

Key Outputs

builder-name, platforms-supported

Example Usage

- uses: p6m-actions/docker-buildx-setup@v1
  with:
    platforms: "value"
    # Additional configuration...

docker-repository-login

Docker registry authentication

dockerbeginnerDocker

Usage

Authenticate before pushing images

Best Practices

Use secrets for credentials, support multiple registries

Key Inputs

registry, username, password

Key Outputs

login-status

Example Usage

- uses: p6m-actions/docker-repository-login@v1
  with:
    registry: "value"
    # Additional configuration...

dotnet-build

Complete .NET build pipeline with testing and coverage

dotnetintermediateBuild

Usage

Full .NET CI pipeline with comprehensive testing

Best Practices

Include code coverage, use deterministic builds

Key Inputs

configuration, framework, test-results-path

Key Outputs

build-artifacts, test-results, coverage-report

Example Usage

- uses: p6m-actions/dotnet-build@v1
  with:
    configuration: "value"
    # Additional configuration...

dotnet-cut-tag

.NET version management and tagging

dotnetbeginnerVersioning

Usage

Automated semantic versioning for .NET projects

Best Practices

Follow semantic versioning, update all project files

Key Inputs

version-type, version-file

Key Outputs

new-version, git-tag

Example Usage

- uses: p6m-actions/dotnet-cut-tag@v1
  with:
    version-type: "value"
    # Additional configuration...

dotnet-repository-login

NuGet repository authentication

dotnetbeginnerAuthentication

Usage

Authenticate with private NuGet feeds

Best Practices

Use secure tokens, configure multiple sources

Key Inputs

nuget-source, username, api-key

Key Outputs

auth-status

Example Usage

- uses: p6m-actions/dotnet-repository-login@v1
  with:
    nuget-source: "value"
    # Additional configuration...

dotnet-repository-publish

NuGet package publishing

dotnetintermediatePublishing

Usage

Publish packages to NuGet repositories

Best Practices

Validate packages before publishing, use proper versioning

Key Inputs

package-path, nuget-source, api-key

Key Outputs

publish-status, package-url

Example Usage

- uses: p6m-actions/dotnet-repository-publish@v1
  with:
    package-path: "value"
    # Additional configuration...

js-pnpm-setup

Node.js + PNPM environment setup with caching

javascriptbeginnerSetup

Usage

Initialize JavaScript development environment

Best Practices

Use version pinning, leverage dependency caching

Key Inputs

node-version, pnpm-version, cache-dependency-path

Key Outputs

node-version, pnpm-version, cache-hit

Example Usage

- uses: p6m-actions/js-pnpm-setup@v1
  with:
    node-version: "value"
    # Additional configuration...

js-pnpm-build

JavaScript application building with PNPM

javascriptintermediateBuild

Usage

Build JavaScript/TypeScript applications

Best Practices

Optimize build caching, handle monorepo builds

Key Inputs

build-script, output-dir, env-vars

Key Outputs

build-artifacts, build-status

Example Usage

- uses: p6m-actions/js-pnpm-build@v1
  with:
    build-script: "value"
    # Additional configuration...

js-pnpm-cut-tag

JavaScript project version management

javascriptbeginnerVersioning

Usage

Automated versioning for JS projects

Best Practices

Update package.json, handle workspace versions

Key Inputs

version-type, workspace-root

Key Outputs

new-version, git-tag

Example Usage

- uses: p6m-actions/js-pnpm-cut-tag@v1
  with:
    version-type: "value"
    # Additional configuration...

js-pnpm-docker-build-publish

Docker image creation for JavaScript applications

javascriptadvancedDocker

Usage

Containerize and publish JavaScript applications

Best Practices

Multi-stage builds, optimize layer caching

Key Inputs

dockerfile-path, image-name, build-args

Key Outputs

image-digest, image-url

Example Usage

- uses: p6m-actions/js-pnpm-docker-build-publish@v1
  with:
    dockerfile-path: "value"
    # Additional configuration...

java-maven-cut-tag

Maven project versioning and tagging

javabeginnerVersioning

Usage

Automated versioning for Maven projects

Best Practices

Update all POM files, handle multi-module projects

Key Inputs

version-type, pom-path

Key Outputs

new-version, git-tag

Example Usage

- uses: p6m-actions/java-maven-cut-tag@v1
  with:
    version-type: "value"
    # Additional configuration...

python-poetry-setup

Python + Poetry environment setup

pythonbeginnerSetup

Usage

Initialize Python development environment

Best Practices

Pin Python version, cache virtual environments

Key Inputs

python-version, poetry-version, cache-venv

Key Outputs

python-version, poetry-version, cache-hit

Example Usage

- uses: p6m-actions/python-poetry-setup@v1
  with:
    python-version: "value"
    # Additional configuration...

python-poetry-login

Python package repository authentication

pythonbeginnerAuthentication

Usage

Authenticate with PyPI or private registries

Best Practices

Use tokens instead of passwords, configure multiple repos

Key Inputs

repository-url, username, password

Key Outputs

auth-status

Example Usage

- uses: p6m-actions/python-poetry-login@v1
  with:
    repository-url: "value"
    # Additional configuration...

rust-registry-login

Rust crate registry authentication

rustbeginnerAuthentication

Usage

Authenticate with crates.io or private registries

Best Practices

Use secure tokens, handle registry endpoints

Key Inputs

registry-url, token

Key Outputs

auth-status

Example Usage

- uses: p6m-actions/rust-registry-login@v1
  with:
    registry-url: "value"
    # Additional configuration...

rust-registry-publish

Crate publishing to registries

rustintermediatePublishing

Usage

Publish Rust crates to registries

Best Practices

Validate crate before publishing, use semantic versioning

Key Inputs

crate-path, registry, token

Key Outputs

publish-status, crate-url

Example Usage

- uses: p6m-actions/rust-registry-publish@v1
  with:
    crate-path: "value"
    # Additional configuration...

repository-release

Master release orchestration (Self-referential)

platformadvancedPlatform

Usage

Coordinate releases across all actions

Best Practices

Self-referential design, semantic versioning

Key Inputs

version-type, release-notes, assets

Key Outputs

release-tag, release-url, version-file

Example Usage

- uses: p6m-actions/repository-release@v1
  with:
    version-type: "value"
    # Additional configuration...

platform-application-manifest-dispatch

Kubernetes deployment orchestration

platformadvancedPlatform

Usage

Trigger GitOps deployments

Best Practices

Use image digests, environment-specific configs

Key Inputs

manifest-repo, image-digest, environment

Key Outputs

dispatch-status, manifest-pr

Example Usage

- uses: p6m-actions/platform-application-manifest-dispatch@v1
  with:
    manifest-repo: "value"
    # Additional configuration...

Workflow Patterns & Architecture

Understanding how these actions work together is crucial for building effective CI/CD pipelines. The diagrams below illustrate common workflow patterns and the self-referential architecture that powers the P6M Actions ecosystem.

Self-Referential Release System

The P6M Actions repository uses itself for its own releases, creating a robust and battle-tested automation system.

Click to enlarge

Common Workflow Patterns

Standard patterns for integrating multiple actions into complete CI/CD workflows across different technology stacks.

Click to enlarge

Technology Stack Breakdown

.NET Ecosystem Actions

dotnet-build

Complete .NET build pipeline with testing, coverage, and artifacts
Builds .NET applications with comprehensive testing
Generates code coverage reports
Produces build artifacts for deployment
Handles NuGet package restoration and caching

dotnet-cut-tag

Version bumping in Directory.Build.props + git tagging
Updates version numbers in .NET project files
Creates proper semantic versioning tags
Integrates with repository release workflows

dotnet-repository-login

NuGet package repository authentication
Authenticates with private NuGet repositories
Handles credential management securely
Supports multiple repository endpoints

dotnet-repository-publish

NuGet package publishing
Publishes packages to NuGet repositories
Handles versioning and metadata
Supports both public and private registries

JavaScript/Node.js (PNPM) Actions

js-pnpm-setup

Node.js + PNPM installation with dependency caching
Sets up Node.js environment with specified version
Installs and configures PNPM package manager
Implements intelligent dependency caching strategies

js-pnpm-build

JavaScript application building
Executes build scripts with PNPM
Handles workspace monorepo builds
Generates optimized production artifacts

js-pnpm-cut-tag

Version management for JavaScript projects
Updates package.json version fields
Creates appropriate git tags
Supports workspace version coordination

js-pnpm-docker-build-publish

Docker image creation for JavaScript applications
Builds Docker images for JavaScript apps
Optimizes container layers for Node.js applications
Publishes images to container registries

Python (Poetry) Actions

python-poetry-setup

Python + Poetry environment setup
Installs Python with specified version
Sets up Poetry package manager
Configures virtual environments and dependencies

python-poetry-login

Python package repository authentication
Authenticates with PyPI and private Python registries
Manages repository credentials securely
Supports multiple registry configurations

Rust Ecosystem Actions

rust-registry-login

Rust crate registry authentication
Authenticates with crates.io and private registries
Handles Cargo credential management
Supports custom registry endpoints

rust-registry-publish

Crate publishing to registries
Publishes Rust crates to registries
Handles versioning and metadata
Supports both public and private crate registries

Java (Maven) Actions

java-maven-cut-tag

Maven project versioning and tagging
Updates Maven POM version numbers
Creates semantic version tags
Coordinates multi-module project versioning

Docker & Platform Actions

docker-buildx-setup

Multi-platform Docker builds setup
Configures Docker Buildx for cross-platform builds
Sets up build contexts and drivers
Enables advanced Docker build features

docker-repository-login

Docker registry authentication
Authenticates with Docker registries (Docker Hub, ECR, etc.)
Manages registry credentials securely
Supports multiple registry endpoints

repository-release

Master release orchestration (Used by ALL other actions)
Handles semantic versioning (major.minor.patch)
Creates git tags and GitHub releases
Manages version files (.version-line)
Self-referential: Uses itself for its own releases

platform-application-manifest-dispatch

Kubernetes deployment orchestration
Triggers updates to Kubernetes manifests
Updates Docker image digests in deployment configs
Bridges CI (build) with CD (deployment)
Enables GitOps workflow integration

Integration Patterns

Self-Referential Release System

All 17+ actions use the repository-release action for their own versioning, creating a self-maintaining ecosystem:

Click to enlarge

Common Workflow Patterns

Click to enlarge

Quick Start

To use these actions in your workflows:

name: My Workflow
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: p6m-actions/{tech-stack}-setup@v1
- uses: p6m-actions/{tech-stack}-build@v1
# ... additional steps

Target Audience & Use Cases

Primary Users:

  • Enterprise development teams with multi-language codebases
  • Platform teams managing standardized CI/CD across organizations
  • DevOps engineers implementing consistent deployment patterns

Use Cases:

  • Microservices architecture with mixed tech stacks
  • Monorepo management with standardized build processes
  • GitOps workflows with automated manifest updates
  • Enterprise package management with private registries

Next Steps

Tutorial
Workflow Examples

See complete workflow templates using these actions for real-world scenarios.

10 min read
Intermediate
Platform Team
workflowsexamplestemplates
Updated New
Guide
Troubleshooting Guide

Resolve common issues and optimize your CI/CD workflows.

5 min read
Beginner
Platform Team
troubleshootingdebuggingoptimization
Updated Updated