@cryptotaxi247 / netdata-1 / commits / 205b8613a

[cleanup crusade] travis build stages (#4142)

* :construction: build stages * add linters * move addons to install * release * meaningful javascript linting * css linter * move artifact creation to separate script

Paweł Krupa committed Sep 12, 2018 at 11:06 UTC 205b8613a89b1a3c1d9c5a9f457dc1295faf0c7f
2 files changed +85 -69
.travis.yml
+61 -69
@@ -2,78 +2,70 @@
2 dist: trusty
3 sudo: true
4
5 -#
5 # C includes autotools and make by default
6 language: c
7 services:
8 - docker
10 -os:
11 - - linux
12 - - osx
13 -compiler:
14 - - gcc
15 - - clang
9
17 -#
18 -# Extra packages
19 -addons:
20 - apt:
21 - packages:
22 - - gnupg
23 - - libcap2-bin
24 - - zlib1g-dev
25 - - uuid-dev
26 - - fakeroot
10 +stages:
11 + - lint
12 + - test
13 + - build
14 + - name: release
15 + if: branch = master AND type != pull_request
16
28 -#
29 -# Setup environment
30 -before_install:
31 - - eval "$(ssh-agent -s)"
32 - - ./.travis/decrypt-if-have-key decb6f6387c4
33 - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
34 - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew uninstall gnupg || echo; brew install gpg; fi
35 - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install fakeroot; fi
36 - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ossp-uuid; fi
37 - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install xz; fi
38 - - export KEYSERVER=ipv4.pool.sks-keyservers.net
39 -#
40 -# Run
41 -before_script:
42 - # Download keys - builds of tags check for a recognised signature
43 - - ./packaging/gpg-recv-key phil@firehol.org "0762 9FF7 89EA 6156 012F 9F50 C406 9602 1359 9237"
44 - - ./packaging/gpg-recv-key costa@tsaousis.gr "4DFF 624A E564 3B51 2872 1F40 29CA 3358 89B9 A863"
45 - # Run the commit hooks in case the developer didn't
46 - - git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | ./packaging/check-files -
47 -script:
48 - # make release packages
49 - - fakeroot ./packaging/git-build
50 - # Make sure stdout is in blocking mode. If we don't, then conda create will barf during downloads.
51 - # See https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-348435959 for details.
52 - - 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);'
53 - # make self-extractor
54 - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./makeself/build-x86_64-static.sh; fi
55 - # test build and installer
56 - - fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
57 - # build docker containers
58 - - if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_OS_NAME" == "linux" && "$CC" == "gcc" ]]; then REPOSITORY="firehol/netdata" ./docker/build.sh; fi
59 -#
60 -# Deploy as required
61 -after_success:
62 - - for i in *.tar.*; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
63 - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then for i in *.gz.run; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done; fi
64 - - ./.travis/deploy-if-have-key
65 -deploy:
66 - # Upload results to GitHub (tag only)
67 - - provider: releases
68 - draft: true
69 - api_key:
70 - secure: hbyuWsTshQ8Ixrgla2J6xtBNhQ1OjjaQ7hUEteclHrlx6i8B1ughCdhC3bYE1VGKClmq9mUvuZxcPGDDUaMBoLYTNaFx93IWorlrB29mpeNPd3b+DZqOePBYqU6NCA7PQccEUBkXJrGS44ZNg+pHFVCHMBe99+5u1Dfx/IJW0ojOb9XOfde6p5aL7syYWYXR/Ov/K40QAgpEDhAKUY4T1D/Yyk2ucdh6QsM00aq51F3D1SxIcFXcnBpacD3iGdkd3fM+c9PLMtq47mOicRjJsDnXYV58/upzmR9OPJYBbOPtNy0UKRl3f81cm5O4X3wcUBUMV4AQew8udy06TlWu2SQipGeh0RPDspRrBIqKhPJGX+h4Zyw/9iGvsDPetQqgoAsPqcruKGqNjC538LXr/fi8mur35VcKhmxi6gH7SNbs7TXfVLnrvNGgr6KCcKoLvFMxsJW1fQObVOq2mO+MwH6wQbqfRIo8btu6WVrzI4cYkZomny2i4D5YWVfTYEJ+BSTZCZ/l/RvxEYPUPFGyASxZ1OVCYA2in1JYdiPPMwK4gH66nYJG+ZDeTK5JUlXZAELZSRcDzecOAbi5zS/C3XXiGaHOXZBXjI0Gsw4kDaZn0xGUIzBFvMoSf1SMw5CuJ1kbSIzi4VGU1v85JaCB4znQ4pA4Yvw0/5l/q/B08aI=
71 - skip_cleanup: true
72 - file_glob: true
73 - file:
74 - - "netdata*.tar.*"
75 - - "netdata*.gz.run*"
76 - on:
77 - condition: $CC = gcc && $TRAVIS_OS_NAME = linux
78 - repo: firehol/netdata
79 - tags: true
17 +jobs:
18 + include:
19 + - stage: "lint"
20 + name: "python"
21 + install: skip
22 + script: docker run --rm -v $(pwd):/code eeacms/pylint || echo "OK"
23 + - name: "javascript"
24 + install: skip
25 + 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
26 + - name: "css"
27 + install: skip
28 + script: docker run --rm -v $(pwd)/web:/code eeacms/csslint sh -c "csslint /code/*.css" || echo "OK"
29 + - name: "bash"
30 + install: skip
31 + 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"
32 + - stage: "test"
33 + name: "C"
34 + install: sudo apt-get install -y libcap2-bin zlib1g-dev uuid-dev fakeroot libipmimonitoring-dev libmnl-dev libnetfilter-acct-dev
35 + 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
36 + env: CFLAGS='-O1 -DNETDATA_INTERNAL_CHECKS=1 -DNETDATA_VERIFY_LOCKS=1'
37 +# env: CFLAGS='-O1 -ggdb -Wall -Wextra -Wformat-signedness -fstack-protector-all -DNETDATA_INTERNAL_CHECKS=1 -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1'
38 +# - name: "Node.js"
39 +# script: tests/run_nodejs.sh
40 + - stage: "build"
41 + name: "linux"
42 + install: sudo apt-get install -y libcap2-bin zlib1g-dev uuid-dev fakeroot
43 + script: fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
44 + - name: "OSX"
45 + install: brew install fakeroot ossp-uuid
46 + script:
47 + - fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it
48 + os: osx
49 + - stage: "release"
50 + name: "Docker"
51 + script: docker/build.sh
52 + env: REPOSITORY="firehol/netdata"
53 + - name: "GitHub"
54 + install: sudo apt-get install -y gnupg libcap2-bin zlib1g-dev uuid-dev fakeroot
55 + script: ./travis/create_artifacts.sh
56 + deploy:
57 + - provider: releases
58 + draft: true
59 + api_key:
60 + secure: hbyuWsTshQ8Ixrgla2J6xtBNhQ1OjjaQ7hUEteclHrlx6i8B1ughCdhC3bYE1VGKClmq9mUvuZxcPGDDUaMBoLYTNaFx93IWorlrB29mpeNPd3b+DZqOePBYqU6NCA7PQccEUBkXJrGS44ZNg+pHFVCHMBe99+5u1Dfx/IJW0ojOb9XOfde6p5aL7syYWYXR/Ov/K40QAgpEDhAKUY4T1D/Yyk2ucdh6QsM00aq51F3D1SxIcFXcnBpacD3iGdkd3fM+c9PLMtq47mOicRjJsDnXYV58/upzmR9OPJYBbOPtNy0UKRl3f81cm5O4X3wcUBUMV4AQew8udy06TlWu2SQipGeh0RPDspRrBIqKhPJGX+h4Zyw/9iGvsDPetQqgoAsPqcruKGqNjC538LXr/fi8mur35VcKhmxi6gH7SNbs7TXfVLnrvNGgr6KCcKoLvFMxsJW1fQObVOq2mO+MwH6wQbqfRIo8btu6WVrzI4cYkZomny2i4D5YWVfTYEJ+BSTZCZ/l/RvxEYPUPFGyASxZ1OVCYA2in1JYdiPPMwK4gH66nYJG+ZDeTK5JUlXZAELZSRcDzecOAbi5zS/C3XXiGaHOXZBXjI0Gsw4kDaZn0xGUIzBFvMoSf1SMw5CuJ1kbSIzi4VGU1v85JaCB4znQ4pA4Yvw0/5l/q/B08aI=
61 + skip_cleanup: true
62 + file_glob: true
63 + file:
64 + - "netdata*.tar.*"
65 + - "netdata*.gz.run*"
66 + on:
67 + repo: firehol/netdata
68 + tags: true
69 +
70 +notifications:
71 + webhooks: https://app.fossa.io/hooks/travisci
.travis/create_artifacts.sh new
+24
@@ -0,0 +1,24 @@
1 +#!/bin/bash
2 +
3 +if [ ! -f .gitignore ]
4 +then
5 + echo "Run as ./travis/$(basename $0) from top level directory of git repository"
6 + exit 1
7 +fi
8 +
9 +eval "$(ssh-agent -s)"
10 +./.travis/decrypt-if-have-key decb6f6387c4
11 +export KEYSERVER=ipv4.pool.sks-keyservers.net
12 +./packaging/gpg-recv-key phil@firehol.org "0762 9FF7 89EA 6156 012F 9F50 C406 9602 1359 9237"
13 +./packaging/gpg-recv-key costa@tsaousis.gr "4DFF 624A E564 3B51 2872 1F40 29CA 3358 89B9 A863"
14 +# Run the commit hooks in case the developer didn't
15 +git diff 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | ./packaging/check-files -
16 +fakeroot ./packaging/git-build
17 +# Make sure stdout is in blocking mode. If we don't, then conda create will barf during downloads.
18 +# See https://github.com/travis-ci/travis-ci/issues/4704#issuecomment-348435959 for details.
19 +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);'
20 +# make self-extractor
21 +./makeself/build-x86_64-static.sh
22 +for i in *.tar.*; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
23 +for i in *.gz.run; do md5sum -b $i > $i.md5; sha512sum -b $i > $i.sha; done
24 +./.travis/deploy-if-have-key