Pipery Docker CI#
- Repository:
pipery-docker-ci - Release tag:
main - Catalog: /catalog/
Reusable GitHub Action for a complete Docker CI pipeline with structured logging via Pipery.
Usage#
name: CI
on: [push, pull_request]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pipery-dev/pipery-docker-ci@v1
with:
image_name: ghcr.io/${{ github.repository }}
registry_username: ${{ github.actor }}
registry_password: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}Pipeline steps#
| Step | Tool | Skip input |
|---|---|---|
| Lint | Hadolint | skip_lint |
| SAST | Trivy (config scan) | skip_sast |
| SCA | Trivy (image scan) | skip_sca |
| Build | docker build | skip_build |
| Test | Container smoke test | skip_test |
| Version | Semantic version bump | skip_versioning |
| Package | Image tagging | skip_packaging |
| Release | Registry push + SHA tag | skip_release |
| Reintegrate | Merge back to default branch | skip_reintegration |
Inputs#
| Name | Default | Description |
|---|---|---|
project_path | . | Path to the project source tree. |
config_file | `` | Path to a Pipery config file. |
dockerfile | Dockerfile | Dockerfile name relative to project_path. |
image_name | `` | Docker image name (e.g. ghcr.io/org/app). |
image_tag | latest | Tag for the built image. |
registry | ghcr.io | Container registry host. |
registry_username | `` | Registry login username. |
registry_password | `` | Registry login password or token. |
build_args | `` | Comma-separated VAR=val build args. |
platforms | linux/amd64 | Platforms to build for. |
tests_path | `` | Command or script run inside the container for testing. |
version_bump | patch | Version bump type: patch, minor, or major. |
github_token | `` | GitHub token for reintegration. |
log_file | pipery.jsonl | Path to the JSONL structured log file. |
skip_sast | false | Skip the SAST step. |
skip_sca | false | Skip the SCA step. |
skip_lint | false | Skip the Hadolint step. |
skip_build | false | Skip the Docker build step. |
skip_test | false | Skip the container smoke test. |
skip_versioning | false | Skip the versioning step. |
skip_packaging | false | Skip image tagging. |
skip_release | false | Skip the registry push. |
skip_reintegration | false | Skip the reintegration step. |
About Pipery#
Pipery is an open-source CI/CD observability platform. Every step script runs under psh (Pipery Shell), which intercepts all commands and emits structured JSONL events — giving you full visibility into your pipeline without any manual instrumentation.
- Browse logs in the Pipery Dashboard
- Find all Pipery actions on GitHub Marketplace
- Source code: pipery-dev
Development#
# Run the action locally against test-project/
pipery-actions test --repo .
# Regenerate docs
pipery-actions docs --repo .
# Dry-run release
pipery-actions release --repo . --dry-run