Skip to content

feat: implement Python CI action with SAST, SCA, lint, build, test, version, package, release, reintegrate#1

Merged
hbahadorzadeh merged 4 commits intomainfrom
feat/initial-ci-action
Apr 26, 2026
Merged

feat: implement Python CI action with SAST, SCA, lint, build, test, version, package, release, reintegrate#1
hbahadorzadeh merged 4 commits intomainfrom
feat/initial-ci-action

Conversation

@hbahadorzadeh
Copy link
Copy Markdown
Contributor

Summary

  • Implements the full Pipery CI pipeline for Python as a GitHub composite action
  • Steps: SAST · SCA · lint · build · test · versioning · packaging · release · reintegration
  • All steps are individually skippable via inputs or .github/pipery/config.yaml
  • Commands run via psh (pipery-shell) to produce structured pipery.jsonl logs
  • Shared steps (SAST, SCA, versioning, reintegration) delegate to pipery-steps CLI from pipery-tooling
  • Test scenarios cover happy path, package manager variants, and expected-failure cases (lint errors, failing tests)

Test plan

  • pipery-actions test --repo . passes all test specs locally
  • CI workflow runs pipery-test.yml reusable workflow on push
  • Release workflow runs pipery-release.yml reusable workflow on dispatch
  • releases/v0 branch contains all src/ scripts so github.action_path resolves correctly

🤖 Generated with Claude Code

hbahadorzadeh and others added 3 commits April 25, 2026 06:19
…ersion, package, release, reintegrate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive Python CI GitHub Action that automates SAST, SCA, linting, building, testing, versioning, and releasing. The implementation includes a suite of shell scripts, a configuration reader, and various test fixtures to validate different package managers and failure scenarios. Feedback focuses on improving the reliability and integration of the action: the configuration loading logic needs to be properly integrated into the workflow using $GITHUB_ENV, and tool installation steps should avoid using '|| true' to prevent silent failures. Additionally, improvements were suggested to ensure version string integrity by not capturing stderr, adding sudo for system binary installation, and making the reintegration target branch configurable.

Comment thread action.yml
Comment thread src/read-config.sh
Comment thread src/step-lint.sh
Comment thread src/step-version.sh Outdated
Comment thread src/setup-psh.sh Outdated
Comment thread src/step-reintegrate.sh Outdated
@hbahadorzadeh hbahadorzadeh enabled auto-merge (squash) April 25, 2026 19:25
- Add Load config step in action.yml so .github/pipery/config.yaml is actually read
- Add target_branch input and wire INPUT_TARGET_BRANCH to step-reintegrate.sh
- Use ${INPUT_TARGET_BRANCH:-main} in step-reintegrate.sh instead of hardcoded main
- Remove 2>&1 from step-version.sh to avoid capturing stderr in version string
- Detect runner ARCH dynamically in setup-psh.sh; add sudo for /usr/local/bin install

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hbahadorzadeh hbahadorzadeh merged commit e92fba0 into main Apr 26, 2026
@hbahadorzadeh hbahadorzadeh deleted the feat/initial-ci-action branch April 26, 2026 05:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant