1
0
Fork 0
Go to file
Renovate Bot daf266d16c update: update tests 2022-05-11 13:36:37 -05:00
.github fix(docs): comment header in PR template 2020-03-02 18:48:34 -06:00
config update: update node.js to v16.14 2022-03-25 07:30:09 -05:00
docs/api fix(build): move index back to its own chunk 2019-09-18 09:05:16 -05:00
scripts feat(build): add alpine image job from salty-dog 2019-11-09 20:17:20 -06:00
src feat(build): replace tslint with eslint 2019-11-09 16:50:30 -06:00
test remove(test): drop async hook wrapper 2020-07-29 07:43:22 -05:00
vendor/rollup-resources fix: declare resource modules 2019-09-28 10:42:41 -05:00
.codeclimate.yml feat(build): replace tslint with eslint 2019-11-09 16:50:30 -06:00
.dockerignore fix(build): add yarn lock to image before installing, add tmp files to docker ignore 2019-09-17 19:05:46 -05:00
.gitignore fix(build): omit git from package, ignore pid files 2019-11-10 09:47:10 -06:00
.gitlab-ci.yml feat(build): upgrade to docker 20, add TLS options 2021-08-05 23:07:26 -05:00
.npmignore fix(build): omit git from package, ignore pid files 2019-11-10 09:47:10 -06:00
.npmrc feat(config): configure npm to use nexus mirror 2019-09-17 08:18:09 -05:00
CHANGELOG.md chore(release): 0.2.4 2021-07-10 15:04:02 -05:00
Dockerfile.alpine update: update node.js to v18 2022-04-24 21:08:47 -05:00
Dockerfile.stretch update: update node.js to v17 2022-01-17 11:38:00 -06:00
LICENSE.md feat: copy template from other projects 2019-09-17 07:45:15 -05:00
Makefile lint(build): move rollup config into dir 2020-09-06 15:41:12 -05:00
README.md fix(docs): comment header in PR template 2020-03-02 18:48:34 -06:00
package.json update: update tests 2022-05-11 13:36:37 -05:00
renovate.json fix: reduce renovate noise, automerge test deps 2021-06-11 10:19:00 -05:00
run.mk feat: include additional makefiles, add example 2019-09-28 15:24:51 -05:00
tsconfig.json feat: copy template from other projects 2019-09-17 07:45:15 -05:00
yarn.lock update: update tests 2022-05-11 13:36:37 -05:00

README.md

Rollup Template

This project contains the configuration and build scripts for most of my Typescript projects, with scripts to create a new project and keep existing ones up-to-date. Even this readme is a template for others.

Features

  • build scripts with make
  • build pipeline with gitlab
    • update github commit status
    • publish docker images from branches & tags
    • publish npm packages from tags
  • bundled with rollup
  • type checked with typescript
  • style checked with eslint (with tslint rules and other plugins)
  • tested with mocha (with source map support and helpers for async leak tracking)
  • code coverage measured with nyc
  • changelog generated with standard-release

Intentionally Omitted Features

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

Contents

Status

Pipeline status Lines of Code Test coverage MIT license FOSSA Status

Open bug count Open issue count Closed issue count

Renovate badge Dependency status Dev dependency status Known vulnerabilities

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

Releases

github release link github release version github commits since release

npm package link npm release version Typescript definitions

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 pushes 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
CC_TEST_REPORTER_ID code climate ID
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

Secrets should be provided as environment variables, with the secret value base64-encoded.