After enabling Greenkeeper for your repository you can use this package to make it work with lockfiles, such as
First create a GitHub access token with push access to your repository and make it available to your CI's environment as
If you use Travis CI, you may add the token using the CLI app as follows:
travis encrypt GH_TOKEN=<token> --add
Configure your CI to use the npm/yarn version you want your lockfiles to be generated with before it installs your dependencies. Install
greenkeeper-lockfile as well.
Configure your CI to run
greenkeeper-lockfile-update right before it executes your tests and
greenkeeper-lockfile-upload right after it executed your tests.
This is how it works on Travis CI for the different package managers.
before_install:# package-lock.json was introduced in npm@5- npm install -g npm@5 # skip this if you are using node 9- npm install -g greenkeeper-lockfile@1before_script: greenkeeper-lockfile-updateafter_script: greenkeeper-lockfile-upload
before_install: yarn global add greenkeeper-lockfile@1before_script: greenkeeper-lockfile-updateafter_script: greenkeeper-lockfile-upload
Custom yarn command line arguments
To run the lockfile-update script with custom command line arguments, set the
GK_LOCK_YARN_OPTS environment variable to your needs (set it to
--ignore-engines, for example). They will be appended to the
yarn add command.
It is common to test multiple node versions and therefor have multiple test jobs for one build. In this case the lockfile will automatically be updated for every job, but only uploaded for the first one.
node_js:- 6- 4before_install:- npm install -g npm- npm install -g greenkeeper-lockfile@1before_script: greenkeeper-lockfile-update# Only the node version 6 job will upload the lockfileafter_script: greenkeeper-lockfile-upload
In order to use
greenkeeper-lockfile with CircleCI workflows, it must be in the first job run. Use sequential job execution to ensure the job that runs
greenkeeper-lockfile is always executed first. For example, if
greenkeeper-lockfile is run in the
lockfile job, all other jobs in the workflow must require the
lockfile job to finish before running:
workflows:version: 2workflow_name:jobs:- lockfile- job1:requires:- lockfile
In order to support a CI service this package needs to extract some information from the environment.
Have a look at our Travis CI reference implementation.
Write a test that returns whether this package runs in your CI service’s environment and add it to our ci-services/tests.
In order to test this plugin with your own CI service install your fork directly from git.
+ npm i -g you/greenkeeper-lockfile#my-ci- npm i -g greenkeeper-lockfile@1
We are looking forward to your contributions 💖 Don’t forget to add your CI service to the list at the top of this file.