This repository contains reusable GitHub Actions workflow templates for CI/CD pipelines.
workflow-templates/ # Workflow template definitions
.github/workflows/ # Active workflow implementations
Makefile # Build and tagging automation
js-ci-defaults- Default CI configuration for JavaScript projectsjs-react-to-s3-deploy- Deploy React applications to AWS S3js-update-browserlist- Automatically update browserlist configurationsnpm-monorepo-publishing- Publishing workflows for npm monorepossonar-qube- SonarQube code quality analysis integration
This repository includes GitHub ruleset configurations for branch and tag protection strategies.
Protect Main Branch- Enforces protection rules for the main branch
Enforce SemVer Tags- Ensures all tags follow semantic versioning format prefixed with av.Enforce Prefixed SemVer Tags- Ensures all tags follow prefixed semantic versioning format (e.g.,project/v1.0.0)
make formatFormats all markdown (.md), YAML (.yml), and JSON (.json) files in the repository using Prettier.
make tag <workflow-name>/<version>Creates a semantic version tag for a workflow and automatically updates the major version tag.
Example:
make tag common-ci-js/v1.0.7This will:
- Validate that
.github/workflows/common-ci-js.ymlexists - Create a tag
common-ci-js/v1.0.7 - Force update the major version tag
common-ci-js/v1to point to the same commit
make push-tagsSyncs all local tags with the remote repository.
Behavior:
- New tags (exist locally but not remotely) → pushed normally with
git push origin <tag> - Outdated tags (exist both locally and remotely but point to different commits) → force pushed with
git push -f origin <tag> - Synchronized tags (identical on local and remote) → skipped
This is useful when you've updated major version tags (like common-ci-js/v1) locally and need to push those changes along with any new patch version tags.
Example:
make tag common-ci-js/v1.0.7
make push-tagsThis creates and pushes both common-ci-js/v1.0.7 and updates common-ci-js/v1 to the same commit.