Skip to content

About

Opinionated GitHub actions and workflows for common continuous integration needs

Topics

Resources

Code of conduct

Contributing

Stars

5 stars

Watchers

1 watching

Forks

Repository files navigation

Continuous Integration - GitHub - Common

Logo for Continuous Integration - GitHub - Common

GitHub Verified Creator Continuous Integration GitHub tag License PRs Welcome

Overview

Opinionated GitHub Actions and reusable workflows for foundational continuous-integration automation that can be shared across Hoverkraft projects.

See the documentation for detailed guides.

Actions

Workflow & repository automation

  • Action distributions - builds and commits generated Node.js action bundles with validated pull request policies.
  • Checkout - event-aware drop-in replacement for actions/checkout that supports issue comment triggers.
  • Create and merge pull request - opens a pull request and merges it with the configured strategy and GitHub Actions bot identity.
  • Create or update comment - adds or updates comments on issues and pull requests idempotently.
  • Get GitHub Actions bot user - retrieves the profile information for the GitHub Actions bot.
  • Get issue number - extracts the relevant issue number from the current workflow context.
  • Need fix to Issue - creates and categorizes TODO/FIXME issues and closes duplicates.

Matrix & workflow data helpers

Quality checks & reporting

  • Codecov - uploads coverage from any language using OIDC, with optional explicit report selection.
  • Lint pull request title - checks pull request titles against the common Conventional Commits policy.
  • Test action distribution - checks a bundle against package-owned contract tests in isolation.
  • Parse CI reports - parses CI reports (tests, linting, coverage) into GitHub summaries and Markdown for PR comments.

Repository insights & utilities

Reusable Workflows

Community & issue hygiene

  • Greetings - welcomes first-time issue reporters and pull request authors.
  • Need fix to Issue - creates and categorizes TODO/FIXME issues and closes duplicates.
  • Stale - automatically marks and closes stale issues and pull requests.

Quality gates

  • Test action distributions - discovers bundled packages and validates their distributions on host and container runners.
  • Action distributions - regenerates committed action bundles in dependency pull requests.
  • CI reports - consolidates tests, coverage and lint into three compact PR comments.
  • Linter - runs Super Linter and shared formatting checks across the repository.
  • Semantic pull request - enforces semantic pull request titles before merging.

Contributing

Contributions are welcome! Please see the contributing guidelines for more details.

Action structure pattern

Actions follow the structure below. Related quality actions are grouped under actions/quality/ using the same structure.

actions/{action-name}/
├── action.yml        # Action definition with inputs/outputs
├── README.md         # Usage documentation (auto-generated by CI Dokumentor)
└── *.js/other files  # Optional helper scripts or assets

Development standards

  1. Pinned dependencies - reference external actions by commit SHA (for example actions/checkout@08c6903c…).
  2. Composite-first - encapsulate logic in composite actions and keep scripts minimal.
  3. Early validation - validate inputs up front using GitHub Script or shell guards and fail fast with helpful messages.
  4. Consistent branding - set author: hoverkraft and branding.color: blue with an appropriate icon in every action.yml.

Development Workflow

make lint        # Run Super Linter (dockerized)
make lint-fix    # Run Super Linter with autofix enabled
gh act -W .github/workflows/<workflow>.yml  # Exercise workflows locally when needed

Dependency updates

Dependabot is the primary dependency updater for Dockerfile images, GitHub Actions, npm, and devcontainer dependencies. Renovate only updates tags and digests in uses: docker://… action references, including Ratchet and Super-Linter, which Dependabot does not support. Super-Linter's Dockerfile and workflow references receive separate update pull requests from their respective bots; review them together to keep the images aligned.

The Renovate workflow runs on Fridays at 04:23 UTC and supports manual dispatch. A seven-day release delay applies when registry timestamps are available. GHCR updates remain eligible because Renovate's Docker datasource only provides release timestamps for Docker Hub.

The workflow uses the CI_BOT_APP_CLIENT_ID variable and CI_BOT_APP_PRIVATE_KEY secret. The GitHub App must be installed on this repository with Checks read access and Contents, Issues, Pull requests, Commit statuses, and Workflows write access. Renovate opens pull requests for review; automatic merging is disabled.

File Structure

actions/                      # Composite GitHub Actions
.github/workflows/            # Reusable workflows (.yml) with accompanying docs (.md)
Dockerfile                    # Super Linter container definition
Makefile                      # Lint helpers

Author

🏢 Hoverkraft

License

This project is licensed under the MIT License.

SPDX-License-Identifier: MIT

Copyright © 2025 hoverkraft-tech

For more details, see the license.

About

Opinionated GitHub actions and workflows for common continuous integration needs

Topics

Resources

Code of conduct

Contributing

Stars

5 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages