summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml130
-rwxr-xr-x.travis/create_artifacts.sh24
2 files changed, 85 insertions, 69 deletions
diff --git a/.travis.yml b/.travis.yml
index abb30809e7..9152838937 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,78 +2,70 @@
dist: trusty
sudo: true
-#
# C includes autotools and make by default
language: c
services:
- docker
-os:
- - linux
- - osx
-compiler:
- - gcc
- - clang
-#
-# Extra packages
-addons:
- apt:
- packages:
- - gnupg
- - libcap2-bin
- - zlib1g-dev
- - uuid-dev
- - fakeroot
+stages:
+ - lint
+ - test
+ - build
+ - name: release
+ if: branch = master AND type != pull_request
-#
-# Setup environment
-before_install:
- - eval "$(ssh-agent -s)"
- - ./.travis/decrypt-if-have-key decb6f6387c4
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew uninstall gnupg || echo; brew install gpg; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install fakeroot; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ossp-uuid; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install xz; fi
- - export KEYSERVER=ipv4.pool.sks-keyservers.net
-#
-# Run
-before_script:
- # Download keys - builds of tags check for a recognised signature
- - ./packaging/gpg-recv-key phil@firehol.org "0762 9FF7 89EA 6156 012F 9F50 C406 9602 1359 9237"
- - ./packaging/gpg-recv-key costa@tsaousis.gr "4DFF 624A E564 3B51 2872 1F40 29CA 3358 89B9 A863"
- # Run the commit hooks in case the developer didn't
- - git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | ./packaging/check-files -
-script:
- # make release packages
- - fakeroot ./packaging/git-build
- # Make sure stdout is in blocking mode. If we don't, then conda create will barf during downloads.
- # See https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-348435959 for details.
- - python -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
- # make self-extractor
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./makeself/build-x86_64-static.sh; fi
- # test build and installer
- - fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
- # build docker containers
- - if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then REPOSITORY="firehol/netdata" ./docker/build.sh; fi
-#
-# Deploy as required
-after_success:
- - for i in *.tar.*; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
- - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then for i in *.gz.run; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done; fi
- - ./.travis/deploy-if-have-key
-deploy:
- # Upload results to GitHub (tag only)
- - provider: releases
- draft: true
- api_key:
- secure: hbyuWsTshQ8Ixrgla2J6xtBNhQ1OjjaQ7hUEteclHrlx6i8B1ughCdhC3bYE1VGKClmq9mUvuZxcPGDDUaMBoLYTNaFx93IWorlrB29mpeNPd3b+DZqOePBYqU6NCA7PQccEUBkXJrGS44ZNg+pHFVCHMBe99+5u1Dfx/IJW0ojOb9XOfde6p5aL7syYWYXR/Ov/K40QAgpEDhAKUY4T1D/Yyk2ucdh6QsM00aq51F3D1SxIcFXcnBpacD3iGdkd3fM+c9PLMtq47mOicRjJsDnXYV58/upzmR9OPJYBbOPtNy0UKRl3f81cm5O4X3wcUBUMV4AQew8udy06TlWu2SQipGeh0RPDspRrBIqKhPJGX+h4Zyw/9iGvsDPetQqgoAsPqcruKGqNjC538LXr/fi8mur35VcKhmxi6gH7SNbs7TXfVLnrvNGgr6KCcKoLvFMxsJW1fQObVOq2mO+MwH6wQbqfRIo8btu6WVrzI4cYkZomny2i4D5YWVfTYEJ+BSTZCZ/l/RvxEYPUPFGyASxZ1OVCYA2in1JYdiPPMwK4gH66nYJG+ZDeTK5JUlXZAELZSRcDzecOAbi5zS/C3XXiGaHOXZBXjI0Gsw4kDaZn0xGUIzBFvMoSf1SMw5CuJ1kbSIzi4VGU1v85JaCB4znQ4pA4Yvw0/5l/q/B08aI=
- skip_cleanup: true
- file_glob: true
- file:
- - "netdata*.tar.*"
- - "netdata*.gz.run*"
- on:
- condition: $CC = gcc && $TRAVIS_OS_NAME = linux
- repo: firehol/netdata
- tags: true
+jobs:
+ include:
+ - stage: "lint"
+ name: "python"
+ install: skip
+ script: docker run --rm -v $(pwd):/code eeacms/pylint || echo "OK"
+ - name: "javascript"
+ install: skip
+ script: docker run -it --rm -v $(pwd)/web:/code eeacms/jslint --color /code/web/*.js /code/plugins.d/node.d.plugin/*.js /code/node.d/*.js /code/node.d/node_modules/netdata.js
+ - name: "css"
+ install: skip
+ script: docker run --rm -v $(pwd)/web:/code eeacms/csslint sh -c "csslint /code/*.css" || echo "OK"
+ - name: "bash"
+ install: skip
+ script: docker run --rm --volume "$(pwd)":/project:ro --entrypoint sh koalaman/shellcheck-alpine:v0.4.7 -c 'for file in $(find /project/ -type f -name "*.sh"); do if ! shellcheck --format=gcc $file; then export FAILED=true; fi; done; if [ "$FAILED" != "" ]; then exit 1; fi' || echo "OK"
+ - stage: "test"
+ name: "C"
+ install: sudo apt-get install -y libcap2-bin zlib1g-dev uuid-dev fakeroot libipmimonitoring-dev libmnl-dev libnetfilter-acct-dev
+ script: fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it --enable-plugin-nfacct --enable-plugin-freeipmi --disable-lto && $HOME/netdata/usr/sbin/netdata -W unittest
+ env: CFLAGS='-O1 -DNETDATA_INTERNAL_CHECKS=1 -DNETDATA_VERIFY_LOCKS=1'
+# env: CFLAGS='-O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1 -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1'
+# - name: "Node.js"
+# script: tests/run_nodejs.sh
+ - stage: "build"
+ name: "linux"
+ install: sudo apt-get install -y libcap2-bin zlib1g-dev uuid-dev fakeroot
+ script: fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
+ - name: "OSX"
+ install: brew install fakeroot ossp-uuid
+ script:
+ - fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
+ os: osx
+ - stage: "release"
+ name: "Docker"
+ script: docker/build.sh
+ env: REPOSITORY="firehol/netdata"
+ - name: "GitHub"
+ install: sudo apt-get install -y gnupg libcap2-bin zlib1g-dev uuid-dev fakeroot
+ script: ./travis/create_artifacts.sh
+ deploy:
+ - provider: releases
+ draft: true
+ api_key:
+ secure: hbyuWsTshQ8Ixrgla2J6xtBNhQ1OjjaQ7hUEteclHrlx6i8B1ughCdhC3bYE1VGKClmq9mUvuZxcPGDDUaMBoLYTNaFx93IWorlrB29mpeNPd3b+DZqOePBYqU6NCA7PQccEUBkXJrGS44ZNg+pHFVCHMBe99+5u1Dfx/IJW0ojOb9XOfde6p5aL7syYWYXR/Ov/K40QAgpEDhAKUY4T1D/Yyk2ucdh6QsM00aq51F3D1SxIcFXcnBpacD3iGdkd3fM+c9PLMtq47mOicRjJsDnXYV58/upzmR9OPJYBbOPtNy0UKRl3f81cm5O4X3wcUBUMV4AQew8udy06TlWu2SQipGeh0RPDspRrBIqKhPJGX+h4Zyw/9iGvsDPetQqgoAsPqcruKGqNjC538LXr/fi8mur35VcKhmxi6gH7SNbs7TXfVLnrvNGgr6KCcKoLvFMxsJW1fQObVOq2mO+MwH6wQbqfRIo8btu6WVrzI4cYkZomny2i4D5YWVfTYEJ+BSTZCZ/l/RvxEYPUPFGyASxZ1OVCYA2in1JYdiPPMwK4gH66nYJG+ZDeTK5JUlXZAELZSRcDzecOAbi5zS/C3XXiGaHOXZBXjI0Gsw4kDaZn0xGUIzBFvMoSf1SMw5CuJ1kbSIzi4VGU1v85JaCB4znQ4pA4Yvw0/5l/q/B08aI=
+ skip_cleanup: true
+ file_glob: true
+ file:
+ - "netdata*.tar.*"
+ - "netdata*.gz.run*"
+ on:
+ repo: firehol/netdata
+ tags: true
+
+notifications:
+ webhooks: https://app.fossa.io/hooks/travisci
diff --git a/.travis/create_artifacts.sh b/.travis/create_artifacts.sh
new file mode 100755
index 0000000000..6e76807d40
--- /dev/null
+++ b/.travis/create_artifacts.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+if [ ! -f .gitignore ]
+then
+ echo "Run as ./travis/$(basename $0) from top level directory of git repository"
+ exit 1
+fi
+
+eval "$(ssh-agent -s)"
+./.travis/decrypt-if-have-key decb6f6387c4
+export KEYSERVER=ipv4.pool.sks-keyservers.net
+./packaging/gpg-recv-key phil@firehol.org "0762 9FF7 89EA 6156 012F 9F50 C406 9602 1359 9237"
+./packaging/gpg-recv-key costa@tsaousis.gr "4DFF 624A E564 3B51 2872 1F40 29CA 3358 89B9 A863"
+# Run the commit hooks in case the developer didn't
+git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | ./packaging/check-files -
+fakeroot ./packaging/git-build
+# Make sure stdout is in blocking mode. If we don't, then conda create will barf during downloads.
+# See https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-348435959 for details.
+python -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
+# make self-extractor
+./makeself/build-x86_64-static.sh
+for i in *.tar.*; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
+for i in *.gz.run; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
+./.travis/deploy-if-have-key