Skip to the content.

Continuous Integration - GitHub - Node.js

Continuous Integration GitHub tag License PRs Welcome

Opinionated GitHub Actions and reusable workflows for Node.js continuous integration pipelines.


Overview

This repository centralizes the Hoverkraft toolkit for building, testing, and shipping Node.js projects on GitHub. It bundles:

Actions

Dependencies

Actions dedicated to caching and validating Node.js dependencies.

- Dependencies cache

- Has installed dependencies

Environment setup

Actions focused on discovering and preparing the Node.js environment.

- Get package manager

- Setup node

Reusable Workflows

Continuous Integration

Contributing

Contributions are welcome! Please review the contributing guidelines before opening a PR.

Action Structure Pattern

All actions follow a consistent layout:

actions/{category}/{action-name}/
├── action.yml          # Action definition with inputs/outputs
├── README.md           # Usage documentation and examples
└── index.js / scripts  # Optional Node.js helpers (when required)

Development Standards

Action Definition Standards

  1. Consistent branding: Use author: hoverkraft with color: blue and a meaningful icon.
  2. Pinned dependencies: Reference third-party actions via exact SHAs to guarantee reproducibility.
  3. Input validation: Validate critical inputs early within composite steps or supporting scripts.
  4. Idempotent steps: Ensure actions can run multiple times without leaving residual state in the workspace.
  5. Multi-platform support: Test actions in both ubuntu-latest and windows-latest runners when applicable.
  6. Cross-platform compatibility: Uses actions/github-script steps for cross-platform compatibility. Avoid run steps.
  7. Logging: Use structured logs with clear prefixes ([build-image], [helm-test-chart], …) to simplify debugging.
  8. Security: Avoid shell interpolation with untrusted inputs; prefer parameterized commands or set -euo pipefail wrappers.

File Conventions

JavaScript Development Patterns

Development Workflow

Linting & Testing

make lint                 # Run the dockerized Super Linter
make lint-fix             # Attempt auto-fixes for lint findings

Author

🏢 Hoverkraft contact@hoverkraft.cloud

License

This project is licensed under the MIT License.

SPDX-License-Identifier: MIT

Copyright © 2023 Hoverkraft.

For more details, see the license.