reclaimprotocol / reclaim-js-sdk

JavaScript SDK for easy integration of Reclaim Protocol that enables authenticated web data export via HTTPS and zero-knowledge proofs
20 stars 2 forks source link

Feature Request: Setup NPM Continuous Deployment (CD) #5

Open AbdulRashidReshamwala opened 1 week ago

AbdulRashidReshamwala commented 1 week ago

To streamline the development workflow and ensure that every change to the repository can be deployed efficiently, I would like to request the setup of a Continuous Deployment (CD) pipeline for NPM.

With this setup, every time a change is merged into the main branch (or any specific branch we choose), the package should be automatically built, tested, and published to NPM. This ensures that our package is always up to date and available for consumption.

Proposed Solution:

CI/CD Pipeline Setup ( using GitHub Actions):

Create a GitHub Action workflow that triggers on: Push to the main branch (or a specific branch for release) Optionally, allow triggering via manual approval (e.g., through a "Release" GitHub Action). Steps for the workflow: Run tests (e.g., using npm test) to ensure no broken changes are deployed. Build the package (e.g., using npm build or any other build process). Publish the package to NPM using npm publish.

Versioning:

Ensure the version is bumped appropriately before deployment, whether automatically based on commit messages (e.g., with semantic-release) or manually. NPM Token:

Ensure that the repository has the necessary secrets set up, including the NPM auth token for publishing. Use the NPM token from repository secrets (e.g., NPM_TOKEN).

Optional - Version Automation:

Consider using a tool like semantic-release to automatically handle versioning, changelog generation, and publishing based on the commit history.

Benefits:

Automates the process of deploying to NPM. Reduces human error when deploying packages. Ensures the package is always up to date with the latest changes from the main branch. Improves developer workflow by reducing manual deployment steps.