Pipery Docker CI#

Reusable GitHub Action for a complete Docker CI pipeline with structured logging via Pipery.

GitHub Marketplace Version License: MIT

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#

StepToolSkip input
LintHadolintskip_lint
SASTTrivy (config scan)skip_sast
SCATrivy (image scan)skip_sca
Builddocker buildskip_build
TestContainer smoke testskip_test
VersionSemantic version bumpskip_versioning
PackageImage taggingskip_packaging
ReleaseRegistry push + SHA tagskip_release
ReintegrateMerge back to default branchskip_reintegration

Inputs#

NameDefaultDescription
project_path.Path to the project source tree.
config_file``Path to a Pipery config file.
dockerfileDockerfileDockerfile name relative to project_path.
image_name``Docker image name (e.g. ghcr.io/org/app).
image_taglatestTag for the built image.
registryghcr.ioContainer registry host.
registry_username``Registry login username.
registry_password``Registry login password or token.
build_args``Comma-separated VAR=val build args.
platformslinux/amd64Platforms to build for.
tests_path``Command or script run inside the container for testing.
version_bumppatchVersion bump type: patch, minor, or major.
github_token``GitHub token for reintegration.
log_filepipery.jsonlPath to the JSONL structured log file.
skip_sastfalseSkip the SAST step.
skip_scafalseSkip the SCA step.
skip_lintfalseSkip the Hadolint step.
skip_buildfalseSkip the Docker build step.
skip_testfalseSkip the container smoke test.
skip_versioningfalseSkip the versioning step.
skip_packagingfalseSkip image tagging.
skip_releasefalseSkip the registry push.
skip_reintegrationfalseSkip 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.

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