Go to file
2023-07-12 18:23:32 +02:00
.gitea/workflows fix(core): update 2023-06-26 00:09:54 +02:00
.vscode fix(core): update 2021-11-07 04:20:14 +01:00
test fix(core): update 2023-07-12 15:35:38 +02:00
ts fix(core): update 2023-07-12 18:23:31 +02:00
.gitignore fix(core): update 2021-05-14 18:11:12 +00:00
cli.child.ts BREAKING CHANGE(core): switch to esm style module 2022-10-09 18:15:37 +02:00
cli.js BREAKING CHANGE(core): switch to esm style module 2022-10-09 18:15:37 +02:00
cli.ts.js BREAKING CHANGE(core): switch to esm style module 2022-10-09 18:15:37 +02:00
license fix(core): update 2022-10-11 10:53:12 +02:00
npmextra.json fix(core): update 2022-10-11 14:26:42 +02:00
package.json 4.1.22 2023-07-12 18:23:32 +02:00
pnpm-lock.yaml fix(core): update 2023-07-12 18:23:31 +02:00
readme.md fix(core): update 2023-05-07 21:30:58 +02:00
tsconfig.json BREAKING CHANGE(core): switch to esm style module 2022-10-09 18:15:37 +02:00

@shipzone/npmci

node and docker in gitlab ci on steroids

Status for master

Status Category Status Badge
GitLab Pipelines pipeline status
GitLab Pipline Test Coverage coverage report
npm npm downloads per month
Snyk Known Vulnerabilities
TypeScript Support TypeScript
node Support node
Code Style Code Style
PackagePhobia (total standalone install weight) PackagePhobia
PackagePhobia (package size on registry) PackagePhobia
BundlePhobia (total size when bundled) BundlePhobia

Usage

Use TypeScript for best in class instellisense.

npmci is designed to work in docker CI environments. The following docker images come with npmci presinstalled:

Docker Hub:

npmci can be called from commandline and handle a lot of tasks durug ci:

# Handle node versions
npmci node install stable # will install latest stable node version and update PATH for node and npm
npmci node install lts # will install latest LTS node version and update PATH for node and npm versions
npmci node install legacy # will install latest legacy node version and update PATH for node and npm
npmci node install x.x.x #  will install any specific node version.

# Handle npm and yarn tasks
npmcu npm login # logs in npm using the auth key provided at env var "NPMCI_TOKEN_NPM"
npmci npm install  # installs dependencies using npm or yarn dependending on availablity
npmci npm test # tests the package
npmci npm publish # builds a package and publishes it

# handle docker tasks
npmci docker prepare
## npmci test docker will look at all Dockerfiles and look for according tags on GitLab container registry


# prepare tools
npmci prepare npm # will look for $NPMCI_TOKEN_NPM env var and create .npmrc, so npm is authenticated
npmci prepare docker # will look for $NPMCI_LOGIN_DOCKER in form username|password and authenticate docker
npmci prepare docker-gitlab # will authenticate docker for gitlab container registry

# build containers
npmci docker build # will build containers
## all Dockerfiles named Dockerfile* are picked up.
## specify tags like this Dockerfile_[tag]
## uploads all built images as [username]/[reponame]:[tag]_test to GitLab
## then test in next step with "npmci test docker"

# publish npm module
npmci publish npm # will look vor $NPMCI_TOKEN_NPM env var and push any module in cwd to npm
npmci publish docker

# trigger webhooks
npmci trigger # will look for NPMCI_TRIGGER_1 to NPMCI_TRIGGER_100 in form domain|id|token|ref|name

Configuration

npmci supports the use of npmextra.

To configure npmci create a npmextra.json file at the root of your project

{
  "npmci": {
    "globalNpmTools": ["npm-check-updates", "protractor", "npmts", "gitzone"]
  }
}

Available options

setting example description
globalNpmTools "globalNpmTools": ["gitbook"] Will look for the specified package names locally and (if not yet present) install them from npm.

For further information read the linked docs at the top of this README.

Use TypeScript for best in class instellisense.

Contribution

We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can contribute one time or contribute monthly. :)

For further information read the linked docs at the top of this readme.

MIT licensed | © Task Venture Capital GmbH | By using this npm module you agree to our privacy policy