From e6e749d94ae1585e5271c6cca395c39cda5db93e Mon Sep 17 00:00:00 2001
From: Hugo Dias
Date: Tue, 12 Feb 2019 16:02:23 +0000
Subject: [PATCH] chore: move to travis-ci.com (#1728)
---
.aegir.js | 1 -
.gitattributes | 7 +++
.travis.yml | 44 ++++++++++++++++++
README.md | 2 +-
ci/Jenkinsfile | 2 -
package.json | 7 +--
test/cli/config.js | 2 +-
test/cli/files.js | 6 +--
.../greater-than-default-max-chunk-size | Bin 300000 -> 544335 bytes
9 files changed, 58 insertions(+), 13 deletions(-)
create mode 100644 .gitattributes
create mode 100644 .travis.yml
delete mode 100644 ci/Jenkinsfile
diff --git a/.aegir.js b/.aegir.js
index 5d87aa66d7..43915d90d6 100644
--- a/.aegir.js
+++ b/.aegir.js
@@ -21,7 +21,6 @@ module.exports = {
included: false
}],
browserNoActivityTimeout: 100 * 1000,
- singleRun: true
},
hooks: {
node: {
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..7ac2353455
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,7 @@
+* text=auto
+test/** text eol=lf
+src/init-files/** text eol=lf
+
+*.data binary
+*.png binary
+*.jpg binary
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..e0d74ff547
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,44 @@
+language: node_js
+cache: npm
+stages:
+ - check
+ - test
+ - cov
+
+node_js:
+ - '10'
+
+os:
+ - linux
+ - osx
+ - windows
+
+script: npx nyc -s npm run test:node -- --bail
+after_success: npx nyc report --reporter=text-lcov > coverage.lcov && npx codecov
+
+jobs:
+ include:
+ - stage: check
+ script:
+ - npx aegir commitlint --travis
+ - npx aegir dep-check -- -i wrtc -i electron-webrtc
+ - npm run lint
+
+ - stage: test
+ name: chrome
+ addons:
+ chrome: stable
+ script:
+ - npx aegir test -t browser
+ - npx aegir test -t webworker
+
+ - stage: test
+ name: firefox
+ addons:
+ firefox: latest
+ script:
+ - npx aegir test -t browser -- --browsers FirefoxHeadless
+ - npx aegir test -t webworker -- --browsers FirefoxHeadless
+
+notifications:
+ email: false
diff --git a/README.md b/README.md
index 541eca795c..8c3b08a394 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@
-
+
diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile
deleted file mode 100644
index a7da2e54f3..0000000000
--- a/ci/Jenkinsfile
+++ /dev/null
@@ -1,2 +0,0 @@
-// Warning: This file is automatically synced from https://github.com/ipfs/ci-sync so if you want to change it, please change it there and ask someone to sync all repositories.
-javascript()
diff --git a/package.json b/package.json
index 846ace851e..f3bde79f98 100644
--- a/package.json
+++ b/package.json
@@ -44,10 +44,7 @@
"benchmark:browser": "echo \"Error: no benchmarks yet\" && exit 1",
"release": "aegir release -t node -t browser",
"release-minor": "aegir release --type minor -t node -t browser",
- "release-major": "aegir release --type major -t node -t browser",
- "coverage": "aegir coverage",
- "coverage-publish": "aegir-coverage publish",
- "dep-check": "npx dependency-check package.json './test/**/*.js' './src/**/*.js'"
+ "release-major": "aegir release --type major -t node -t browser"
},
"repository": {
"type": "git",
@@ -62,7 +59,7 @@
},
"homepage": "https://github.com/ipfs/js-ipfs#readme",
"devDependencies": {
- "aegir": "^18.0.3",
+ "aegir": "^18.1.0",
"chai": "^4.2.0",
"delay": "^4.1.0",
"detect-node": "^2.0.4",
diff --git a/test/cli/config.js b/test/cli/config.js
index 2150c39e2c..1687f2d7fb 100644
--- a/test/cli/config.js
+++ b/test/cli/config.js
@@ -69,7 +69,7 @@ describe('config', () => runOnAndOff((thing) => {
it('call config with no arguments', () => {
return ipfs('config')
- .then(out => expect(out).to.include('bin.js config [value]'))
+ .then(out => expect(out).to.include('Not enough non-option arguments: got 0, need at least 1'))
})
})
diff --git a/test/cli/files.js b/test/cli/files.js
index a025e77c9a..e9a6c69422 100644
--- a/test/cli/files.js
+++ b/test/cli/files.js
@@ -233,7 +233,7 @@ describe('files', () => runOnAndOff((thing) => {
return ipfs('add test/fixtures/greater-than-default-max-chunk-size --cid-version=1')
.then((out) => {
expect(out)
- .to.eql('added zdj7WbyyZoWVifUHUe58SNS184PpN8qAuCP6HpAY91iA8CveT greater-than-default-max-chunk-size\n')
+ .to.eql('added zdj7We8b7taMubqinMgnZ9HFUiv17bm5zjJkYnqpfxXhqx5sY greater-than-default-max-chunk-size\n')
})
})
@@ -253,7 +253,7 @@ describe('files', () => runOnAndOff((thing) => {
return ipfs(`add test/fixtures/greater-than-default-max-chunk-size --cid-version=1 --raw-leaves=false`)
.then((out) => {
expect(out)
- .to.eql('added zdj7WmYojH6vMkDQFNDNwUy2ZawrggqAhS6jjRJwb1C4KXZni greater-than-default-max-chunk-size\n')
+ .to.eql('added zdj7WW4sSVxNKLJXQSzy3RD7msG3SS4WgdGEdJzDZ7swYv65p greater-than-default-max-chunk-size\n')
})
})
@@ -273,7 +273,7 @@ describe('files', () => runOnAndOff((thing) => {
return ipfs('add test/fixtures/greater-than-default-max-chunk-size --cid-version=1 --raw-leaves=true')
.then((out) => {
expect(out)
- .to.eql('added zdj7WbyyZoWVifUHUe58SNS184PpN8qAuCP6HpAY91iA8CveT greater-than-default-max-chunk-size\n')
+ .to.eql('added zdj7We8b7taMubqinMgnZ9HFUiv17bm5zjJkYnqpfxXhqx5sY greater-than-default-max-chunk-size\n')
})
})
diff --git a/test/fixtures/greater-than-default-max-chunk-size b/test/fixtures/greater-than-default-max-chunk-size
index 27347e687b813304b558bb49d330720d49c83035..5511294402ff42c981cf2ccdd2df92f509e00908 100644
GIT binary patch
literal 544335
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