This IPFS-related repository has been archived, and all issues are therefore frozen. If you want to ask a question or open/continue a discussion related to this repo, please visit the official IPFS forums.
We archive repos for one or more of the following reasons:
- Code or content is unmaintained, and therefore might be broken
- Content is outdated, and therefore may mislead readers
- Code or content evolved into something else and/or has lived on in a different place
- The repository or project is not active in general
Please note that in order to keep the primary IPFS GitHub org tidy, most archived repos are moved into the ipfs-inactive org.
If you feel this repo should not be archived (or portions of it should be moved to a non-archived repo), please reach out and let us know. Archiving can always be reversed if needed.
This repository is being used for setting up default/standard pipelines for projects in https://github.com/ipfs/jenkins
Issues are handled via https://github.com/ipfs/testing
A script that sits in ci/Jenkinsfile
can access these library functions by calling the name of the file and passing arguments.
Builds an Electron application by using Electron Forge, saving the built artifacts for downloading directly from Jenkins. Creates following binaries : .dmg
, .rpm
, .deb
, .nupkg
and .exe
for Debian and other Linux systems, macOS and Windows.
electronForge()
Runs go test
and optionally sharness tests for a Go project on Ubuntu, macOS and Windows.
golang([
env: [TEST_NO_FUSE: true], // optional extra environment variables. Already sets CI=true
test: 'go test -v ./...' // optional command to run for running tests, defaults to `go test -v ./...`
])
Runs tests for JavaScript projects. Needs to implement npm test
/yarn test
in order to work. Runs tests on Ubuntu, macOS and Windows for NodeJS version 8.9.1 and 9.2.0
javascript()
By default, we run tests on Windows, Linux and macOS with NodeJS versions 8.11.1 and 9.2.0
but you can customize it by providing ['nodejs_versions': ['10.0.0']]
to the javascript()
function.
javascript(['nodejs_versions': ['10.0.0']])
You can also specify custom versions of node modules in the pipeline.
javascript([
'node_modules': [
'datastore-fs': 'github:ipfs/js-datastore-fs#fix/node10',
'datastore-level': 'github:ipfs/js-datastore-level#fix/node10'
]
])
If you want to run a different command rather than yarn test
, you can specify
it with custom_build_steps
. Each step will run in parallel on different workers by default.
javascript([
'custom_build_steps': ['test:browser', 'test:webworker', 'test:node']
])
Code coverage reporting via CodeCov is currently activated by default but you can disable
it by setting coverage
to false
when calling javascript()
. When enabled, it'll
run yarn coverage -u -p codecov
automatically in a separate agent to upload the metrics.
javascript([coverage: false])
Builds commits and publishes previews over IPFS for websites using hugo. If commit is on master branch, deploys that commit via dnslink-dnsimple as well.
website([
website: 'libp2p.io', // required argument for which zone this website will deployed at
record: '_dnslink', // required argument for which record to add the dnslink TXT record at
build_directory: 'public/', // optional argument for which directory to use as build directory. Defaults to `public/`
disable_publish: false // optional argument for disabling DNS publish. Useful when websites are using hugo but we're not ready to publish them anywhere yet
])
This example will map release
branch to _dnslink
record, and master
branch to _dnslink.dev
record. This allows us to have development and production deployments, depending on which branch gets updated.
website([
website: 'igis.io',
record: [
'release': '_dnslink',
'master': '_dnslink.dev',
]
])
export ORG=IPFS
export REPO=js-ipns
export BRANCH=master
java -jar jenkins-cli.jar -s https://ci.ipfs.team/ replay-pipeline "$ORG/$REPO/$BRANCH/" -s javascript --username VictorBjelkholm --password $GITHUB_TOKEN < vars/javascript.groovy && firefox "$(curl --silent https://ci.ipfs.team/job/$ORG/job/$REPO/job/$BRANCH/lastBuild/api/json | jq -r .url)/console"
MIT 2017