Skip to content

ci: consolidate GitHub Actions workflows#427

Merged
ret2libc merged 3 commits intomainfrom
ci/workflow-consolidation
Jan 26, 2026
Merged

ci: consolidate GitHub Actions workflows#427
ret2libc merged 3 commits intomainfrom
ci/workflow-consolidation

Conversation

@dguido
Copy link
Copy Markdown
Member

@dguido dguido commented Jan 25, 2026

Summary

Consolidate and improve GitHub Actions workflows for better maintainability and security.

Changes

Deleted Redundant/Outdated Workflows

  • claude-code-review.yml - No longer used
  • claude.yml - No longer used
  • pre-commit.yml - Merged into static-checks.yml

Renamed for Clarity

  • comp-integration.ymlcomponent-integration.yml
  • integration.ymlsystem-integration.yml

New Workflows

  • static-checks.yml - Comprehensive static analysis (shellcheck, hadolint, actionlint, zizmor)

Improvements

  • Add actionlint configuration (.github/actionlint.yaml)
  • Update dependabot configuration with cooldown settings
  • Improve workflow concurrency settings
  • Pin actions to SHA hashes for security
  • Add better job dependencies and caching

Risk

Medium - CI changes affect all developers. Easy to rollback if issues.

Testing

  • Verify all workflows pass after merge
  • Check that renamed workflows trigger correctly

🤖 Generated with Claude Code

Consolidate and improve GitHub Actions workflows:

Deleted redundant/outdated workflows:
- claude-code-review.yml - No longer used
- claude.yml - No longer used
- pre-commit.yml - Merged into static-checks.yml

Renamed for clarity:
- comp-integration.yml → component-integration.yml
- integration.yml → system-integration.yml

New workflows:
- static-checks.yml - Comprehensive static analysis (shellcheck, hadolint, actionlint)

Improvements:
- Add actionlint configuration (.github/actionlint.yaml)
- Update dependabot configuration with cooldown settings
- Improve workflow concurrency settings
- Pin actions to SHA hashes for security
- Add better job dependencies and caching

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ret2libc ret2libc merged commit c32fe7a into main Jan 26, 2026
9 of 30 checks passed
@ret2libc ret2libc deleted the ci/workflow-consolidation branch January 26, 2026 10:46
hbrodin added a commit that referenced this pull request Apr 27, 2026
* ci: shell-quote env values for system integration tests

Two bugs in the env file step prevented the weekly System Integration
Tests from ever passing since #427 (2026-01-26):

1. The deletion regex `/^KEY=/` did not match the template's
   `export KEY=replace-me` lines, leaving stale `replace-me` placeholders
   in the file alongside the appended real values.
2. Appended values were not shell-quoted, so `source ./env` in
   deployment/crs-architecture.sh treated whitespace and metacharacters
   as shell syntax. The `OTEL_TOKEN` secret (a `Bearer <token>` header)
   tripped this with `command not found` on the token component.

The same gap was a code-execution sink: a secret containing `$(...)` or
backticks would execute on the runner at source time.

Fix: strip with `(export[[:space:]]+)?` so template lines are actually
removed, and write with `printf 'export %s=%q\n'` so every value is
shell-escaped — defending against both whitespace and injection.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ci: drop placeholder block from ci-env.template

The placeholder lines (`export KEY=replace-me`) only existed because the
pre-rewrite step substituted into them with `sed -i "s|KEY=.*|...|"`.
The new `printf %q` write path doesn't need them, so removing them at
the source eliminates the entire delete-then-rewrite dance.

Drops `strip_var` and the for-loop. The workflow step is now: copy the
static template, then append shell-quoted assignments for every secret
the env: block injects. GHCR_AUTH is no longer defined at all, so the
`[ -n "$GHCR_AUTH" ]` warning branch in crs-architecture.sh:63 fires as
intended.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants