1
0
Fork 0
js-utils/README.md

5.2 KiB

Rollup Template

This project contains the base configuration and build scripts for most of my Typescript/Rollup projects.

Pipeline status Test coverage MIT license

Renovate badge Known vulnerabilities Dependency status Dev dependency status

Maintainability score Technical debt ratio Quality issues Language grade: JavaScript Total alerts

Contents

Features

  • bundled with rollup
  • tested with mocha
  • type checking from typescript
  • style checking from tslint (with plugins)
  • code coverage with source maps from nyc
  • pipeline and published tags with gitlab CI
  • identical local and CI builds with make
  • test harness with source map support and helpers for async leak tracking

Intentionally Omitted Features

  • everything frontend: React, CSS, etc
  • heavy backend libraries: ORMs, etc

Usage

To Setup

To create a new repository from this template:

  • create your new repo on Github & Gitlab (your server or Gitlab.com)
  • git clone git@github.com:ssube/rollup-template.git your-project
  • cd your-project
  • git remote add github git@github.com:yourname/your-project.git
  • git remote add gitlab git@gitlab.com:yourname/your-project.git
  • set up repository mirroring in Gitlab
  • set up some maintenance bots
  • make git-push
  • install your dependencies
  • write some code

To Build

Once your project is set up:

  • make to bundle and test
  • commit
  • make git-push

The git-push target pushed to Github first, to avoid conflicts with changes from bots and other contributors.

To Release

When your project is ready to release:

  • make release-dry to make sure your changelog and options look right
  • make release

Additional options can be passed with the RELEASE_OPTS variable. Frequently-used options include --release-as minor and --prerelease.

External Services

This template works with or expects a few external services, namely a Gitlab CI server (self-hosted or using Gitlab.com).

Maintenance Bots

Good tests and clever bots can eliminate the most painful parts of project maintenance. This repository is configured to work with:

None of these are required, but Renovate and Snyk can be very helpful when dependencies release a security patch.

External Secrets

This template expects a few secrets to exist in the environment, including tokens for the external services.

Name Description
CODECLIMATE_SECRET code climate token
CODECOV_SECRET codecov token
DOCKER_SECRET docker config, required for publishing images
GITHUB_SECRET github.com token, required for publishing status
NPM_SECRET npmjs.com token, required for publishing npm packages
SONAR_SECRET sonarcloud token