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
docker-buildx-setup
Multi-platform Docker builds setup
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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.
Common Workflow Patterns
Standard patterns for integrating multiple actions into complete CI/CD workflows across different technology stacks.
Technology Stack Breakdown
.NET Ecosystem Actions
dotnet-build
dotnet-cut-tag
Directory.Build.props
+ git taggingdotnet-repository-login
dotnet-repository-publish
JavaScript/Node.js (PNPM) Actions
js-pnpm-setup
js-pnpm-build
js-pnpm-cut-tag
js-pnpm-docker-build-publish
Python (Poetry) Actions
python-poetry-setup
python-poetry-login
Rust Ecosystem Actions
rust-registry-login
rust-registry-publish
Java (Maven) Actions
java-maven-cut-tag
Docker & Platform Actions
docker-buildx-setup
docker-repository-login
repository-release
.version-line
)platform-application-manifest-dispatch
Integration Patterns
Self-Referential Release System
All 17+ actions use the repository-release
action for their own versioning, creating a self-maintaining ecosystem:
Common Workflow Patterns
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
See complete workflow templates using these actions for real-world scenarios.
Resolve common issues and optimize your CI/CD workflows.