[feat] Set up GitHub Actions CI/CD workflows for test, lint, coverage, and npm publishing#48
Open
gitsofaryan wants to merge 1 commit intobug0inc:mainfrom
Open
Conversation
… and npm publishing - Added test-and-lint.yml: PR validation (lint, format, test, build) - Added coverage.yml: Test coverage reporting with Codecov integration - Added publish.yml: Automated npm publishing on tags and main branch - Includes pnpm dependency caching, concurrency control, and branch protection support
Author
|
@fazlerocks PTAL! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Implemented three comprehensive GitHub Actions workflows to automate testing, linting, code coverage reporting, and npm package publishing for the Passmark project.
Changes Made
.github/workflows/test-and-lint.yml— PR Validation Workflow.github/workflows/coverage.yml— Test Coverage Workflow.github/workflows/publish.yml— npm Publishing WorkflowKey Features
✅ Concurrency Control — Cancels in-progress runs when new push/PR updates occur
✅ Dependency Caching — pnpm store caching reduces install time ~80%
✅ Frozen Lockfile — Uses
--frozen-lockfileto ensure deterministic builds✅ Branch Protection — Summary job for GitHub branch protection rule enforcement
✅ PR Coverage Reporting — Automatic coverage diff comments on PRs
✅ Semantic Versioning — Auto-publishes on tags (v1.0.0, v1.0.1, etc.)
✅ GitHub Releases — Auto-creates releases with generated notes on tags
Test Results (Manual Verification)
Secrets Required
Before workflows can run, configure these secrets in GitHub Settings → Secrets and Variables:
NPM_TOKEN— npm registry authentication (required for publish workflow)CODECOV_TOKEN— (optional) Codecov.io authenticationBranch Protection Rules (Manual Setup)
After merging, configure these in GitHub Settings → Branches → main:
How to Test Locally
Related Issues
Checklist
pnpm test)pnpm lint)pnpm build)