Skip to content

Conversation

@macalbert
Copy link
Owner

@macalbert macalbert commented Nov 15, 2025

What does this PR do?

This PR introduces the Envilder GitHub Action - a new composite action that enables seamless integration of AWS SSM Parameter Store secrets into GitHub Actions workflows.

Key Changes

🎯 New GitHub Action

  • Composite action (github-action/action.yml) for pulling AWS SSM secrets into .env files
  • Bundled with @vercel/ncc - single optimized minified file (~786KB) for fast loading
  • Pre-built distribution - users can use the action without any build steps
  • New application entry point (src/apps/gha/) dedicated to GitHub Action runtime
  • Full documentation with examples for basic usage, multi-environment deployments, and troubleshooting

🧪 Testing & Quality

  • E2E tests for GitHub Action (e2e/gha.test.ts) simulating real GitHub Actions environment
  • LocalStack integration for AWS SSM testing in CI
  • Automated workflows:
    • test-action.yml - Tests the action on every PR
    • verify-action-build.yml - Ensures the bundled action stays up-to-date
    • publish-action.yml - Publishes action releases with version tags

📦 Build & Tooling

  • Migrated from npm to pnpm across all workflows and documentation
  • Added pnpm-workspace.yaml for better dependency management
  • New build scripts:
    • build:gha - Bundles GitHub Action with ncc
    • verify:gha - Verifies action bundle is up-to-date
  • Removed package-lock.json, added pnpm-lock.yaml

📚 Documentation

  • New comprehensive docs:
    • docs/github-action.md - Complete GitHub Action guide
    • docs/CHANGELOG.md - Full project changelog with conventional commits format
    • docs/SECURITY.md - Security policy and best practices
    • docs/architecture/README.md - Architecture documentation with diagrams
    • docs/conventional-commits.md - Commit message guide
    • github-action/README.md - Action-specific README for GitHub Marketplace
  • Updated existing docs to reflect pnpm migration and GitHub Action availability

🔧 Configuration & CI

  • Added Commitlint (.commitlintrc.json) for conventional commits enforcement
  • Updated all workflows to use pnpm instead of npm
  • Added .markdownlintignore for generated changelog
  • Improved .gitignore for GitHub Action dist files
  • Updated README with GitHub Action reference and new documentation links
  • Updated ROADMAP to mark GitHub Action as completed

Related issues

Implements GitHub Action support for Envilder

Type of change

  • Feature
  • Documentation

Checklist

  • Tests added/updated (E2E tests for GitHub Action)
  • Docs updated (comprehensive documentation added)
  • Lint/format pass

Notes for reviewer

New Feature Highlight 🌟

This PR adds a GitHub Action to the Envilder ecosystem, making it easy for teams to pull AWS SSM secrets directly in their CI/CD workflows:

- uses: macalbert/envilder/github-action@v1
  with:
    map-file: param-map.json
    env-file: .env

Testing

  • All E2E tests pass with LocalStack
  • The bundled action (github-action/dist/index.js) is verified in CI
  • Real-world GitHub Actions workflow has been tested successfully

Migration to pnpm

  • All npm commands replaced with pnpm equivalents
  • Improved build performance and disk space usage
  • No changes to the CLI functionality - backward compatible

Action Publishing

The action is bundled with @vercel/ncc to create a single optimized file, ensuring:

  • ✅ Fast startup (no node_modules resolution)
  • ✅ Zero build steps for users
  • ✅ Minimal repository size (only tracking bundled output)

The publish workflow (publish-action.yml) handles version tagging and release creation automatically.

- Move action.yml to github-action/action.yml for better organization
- Create github-action/README.md optimized for GitHub Marketplace
- Remove aws-profile input (not needed with aws-actions/configure-aws-credentials)
- Add working-directory usage note in documentation
- Update all workflow references to use ./github-action
- Update docs to use macalbert/envilder/github-action@v1

BREAKING CHANGE: Action path changed from macalbert/envilder@v1 to macalbert/envilder/github-action@v1
@coderabbitai

This comment was marked as outdated.

@gemini-code-assist

This comment was marked as resolved.

- Add Envilder banner image
- Add badges and centered header
- Add emojis to all sections (🎮🏰🍄🌟⭐)
- Add footer with Mario magic message
- Make it match the CLI README style
@macalbert macalbert changed the title ♻️ Move GitHub Action to github-action/ subfolder feat: Create github-action Nov 15, 2025
@macalbert macalbert self-assigned this Nov 15, 2025
@macalbert macalbert added enhancement New feature or request github-actions labels Nov 15, 2025
gemini-code-assist[bot]

This comment was marked as resolved.

- Remove INPUT_AWS_PROFILE reading from GitHubAction.ts
- Remove aws-profile logging
- Remove aws-profile test cases
- Remove aws-profile from docs/github-action.md
- Set profile to undefined (uses default AWS credentials)

Fixes code review feedback - aws-profile input was removed from action.yml but code still referenced it
coderabbitai[bot]

This comment was marked as resolved.

Correct references to the GitHub Action in documentation and code to ensure proper usage and clarity. This includes updating the action path in the README and test files to reflect the correct structure.
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

This comment was marked as resolved.

…tup for tests

- Enhance GitHub Action workflow to bundle the action and prevent duplicate publishes.
- Introduce global setup for Vitest to build the GitHub Action bundle before tests.
- Added entries for GitHub Action support, documentation, and architecture updates.
- Clarified security policy to indicate patches are only released for the latest version.
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@macalbert macalbert marked this pull request as draft November 16, 2025 04:14
…ndling

- Refactored the CLI entry point by moving the main execution logic
  from Cli.ts to a new index.ts file for better organization.
- Updated package.json to reflect the new entry point.
- Improved error handling by throwing errors instead of calling process.exit.
@macalbert macalbert requested a review from Copilot November 16, 2025 09:23
@macalbert macalbert marked this pull request as ready for review November 16, 2025 09:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@macalbert macalbert merged commit 5b02ebe into main Nov 16, 2025
8 checks passed
@macalbert macalbert deleted the feature/github-action-subfolder branch November 16, 2025 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request github-actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants