.travis.yml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. ---
  2. dist: focal
  3. language: c
  4. addons:
  5. apt:
  6. packages: ['moreutils']
  7. env:
  8. global:
  9. - RELEASE_CHANNEL=nightly
  10. before_install:
  11. - exec > >(ts -s '%H:%M:%.S ') 2>&1
  12. - source .travis/utils.sh
  13. # Install dependencies for all, once
  14. #
  15. install:
  16. - sudo apt-get install -y libuv1-dev liblz4-dev libjudy-dev libcap2-bin zlib1g-dev uuid-dev fakeroot libipmimonitoring-dev libmnl-dev libnetfilter-acct-dev gnupg python3-pip
  17. - sudo pip install git-semver==0.3.2 # 11/Sep/2019: git-semver tip was broken, so we had to force last good run of it
  18. - source tests/installer/slack.sh
  19. - export NOTIF_CHANNEL="automation-beta"
  20. - if [ "${TRAVIS_REPO_SLUG}" = "netdata/netdata" ]; then export NOTIF_CHANNEL="automation"; fi;
  21. - export BUILD_VERSION="$(cat packaging/version | cut -d'-' -f1)"
  22. - export LATEST_RELEASE_VERSION="$(cat packaging/version | cut -d'-' -f1)"
  23. - export LATEST_RELEASE_DATE="$(git log -1 --format=%aD "${LATEST_RELEASE_VERSION}" | cat)"
  24. - if [[ "${TRAVIS_COMMIT_MESSAGE}" = *"[Build latest]"* ]]; then export BUILD_VERSION="$(cat packaging/version | cut -d'-' -f1,2 | sed -e 's/-/./g').latest"; fi;
  25. - export DEPLOY_REPO="netdata" # Default production packaging repository
  26. - export PACKAGING_USER="netdata" # Standard package cloud account
  27. - if [[ "${TRAVIS_COMMIT_MESSAGE}" = *"[Build latest]"* ]]; then export DEPLOY_REPO="netdata-edge"; fi;
  28. - export PACKAGE_CLOUD_RETENTION_DAYS=30
  29. - if [ ! "${TRAVIS_REPO_SLUG}" = "netdata/netdata" ]; then export DEPLOY_REPO="netdata-devel"; fi;
  30. # These are release-related artifacts and have to be evaluated before we start doing conditional checks inside stages
  31. - source ".travis/tagger.sh"
  32. - export GIT_TAG="$(git tag --points-at)"
  33. # Setup notification system
  34. #
  35. notifications:
  36. webhooks:
  37. urls:
  38. - https://app.fossa.io/hooks/travisci
  39. # Define the stage sequence and conditionals
  40. #
  41. stages:
  42. # Mandatory runs, we always want these executed
  43. - name: Build process
  44. if: commit_message =~ /^((?!\[Package (amd64|arm64|i386) (DEB|RPM)( .*)?\]).)*$/
  45. # Nightly operations
  46. - name: Nightly operations
  47. if: branch = master AND type = cron AND env(RUN_NIGHTLY) = yes
  48. - name: Nightly release
  49. if: branch = master AND type = cron AND env(RUN_NIGHTLY) = yes
  50. - name: Trigger deb and rpm package build (nightly release)
  51. if: branch = master AND type = cron AND env(RUN_NIGHTLY) = yes
  52. # Scheduled releases
  53. - name: Support activities on main branch
  54. if: branch = master AND type != pull_request AND type != cron AND repo = netdata/netdata
  55. # We don't run on release candidates
  56. - name: Publish for release
  57. if: >-
  58. branch = master
  59. AND type != pull_request
  60. AND type != cron
  61. AND tag !~ /(-rc)/
  62. AND commit_message =~ /\[netdata (release candidate|(major|minor|patch) release)\]/
  63. - name: Trigger deb and rpm package build (release)
  64. if: >-
  65. branch = master
  66. AND type != pull_request
  67. AND type != cron
  68. AND tag !~ /(-rc)/
  69. AND commit_message =~ /\[netdata (release candidate|(major|minor|patch) release)\]/
  70. # Build DEB packages under special conditions
  71. - name: Package ubuntu/* and debian/*
  72. if: type != cron AND type != pull_request AND branch = master
  73. # Build RPM packages under special conditions
  74. - name: Package centos, fedora and opensuse
  75. if: type != cron AND type != pull_request AND branch = master
  76. # Define stage implementation details
  77. #
  78. jobs:
  79. # This is a hook to help us introduce "soft" errors on our process
  80. allow_failures:
  81. - env: ALLOW_SOFT_FAILURE_HERE=true
  82. include:
  83. # Ensure netdata code builds successfully
  84. - stage: Build process
  85. name: Standard netdata build
  86. script: fakeroot ./netdata-installer.sh --install $HOME --dont-wait --dont-start-it --enable-plugin-nfacct --enable-plugin-freeipmi --disable-lto
  87. env: CFLAGS='-O1 -Wall -Wextra -Wformat-signedness -fstack-protector-all -fno-common -DNETDATA_INTERNAL_CHECKS=1 -D_FORTIFY_SOURCE=2 -DNETDATA_VERIFY_LOCKS=1'
  88. after_failure: post_message "TRAVIS_MESSAGE" "<!here> standard netdata build is failing (Still dont know which one, will improve soon)"
  89. - name: Build/Install for ubuntu 20.04 (not containerized)
  90. script: fakeroot ./netdata-installer.sh --dont-wait --dont-start-it --install $HOME
  91. after_failure: post_message "TRAVIS_MESSAGE" "Build/Install failed on ubuntu 18.04"
  92. - name: Build/install for CentOS 7 (Containerized)
  93. script: docker run -it -v "${PWD}:/netdata:rw" -w /netdata "netdata/os-test:centos7" ./netdata-installer.sh --dont-wait --dont-start-it --install /tmp
  94. after_failure: post_message "TRAVIS_MESSAGE" "Build/Install failed on CentOS 7"
  95. - name: DEB package test
  96. git:
  97. depth: false
  98. before_install:
  99. - sudo apt-get install -y wget lxc python3-lxc lxc-templates dh-make git-buildpackage build-essential libdistro-info-perl
  100. before_script:
  101. - export PACKAGES_DIRECTORY="$(mktemp -d -t netdata-packaging-contents-dir-XXXXXX)" && echo "Created packaging directory ${PACKAGES_DIRECTORY}"
  102. script:
  103. - echo "GIT Branch:" && git branch
  104. - echo "Last commit:" && git log -1
  105. - echo "GIT Describe:" && git describe
  106. - echo "packaging/version:" && cat packaging/version
  107. - echo "Creating LXC environment for the build" && sudo -E .travis/package_management/create_lxc_for_build.sh
  108. - echo "Building package in container" && sudo -E .travis/package_management/build_package_in_container.sh
  109. - sudo chown -R root:travis "/var/lib/lxc"
  110. - sudo chmod -R 750 "/var/lib/lxc"
  111. - echo "Preparing DEB packaging contents for upload" && sudo -E .travis/package_management/prepare_packages.sh
  112. env:
  113. - BUILDER_NAME="builder" BUILD_DISTRO="debian" BUILD_RELEASE="buster" BUILD_STRING="debian/buster"
  114. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  115. after_failure: post_message "TRAVIS_MESSAGE" "Netdata DEB package build check failed."
  116. - name: RPM package test
  117. git:
  118. depth: false
  119. before_install:
  120. - sudo apt-get install -y wget lxc lxc-templates python3-lxc
  121. before_script:
  122. - export PACKAGES_DIRECTORY="$(mktemp -d -t netdata-packaging-contents-dir-XXXXXX)" && echo "Created packaging directory ${PACKAGES_DIRECTORY}"
  123. script:
  124. - echo "GIT Branch:" && git branch
  125. - echo "Last commit:" && git log -1
  126. - echo "GIT Describe:" && git describe
  127. - echo "packaging/version:" && cat packaging/version
  128. - echo "Creating LXC environment for the build" && sudo -E .travis/package_management/create_lxc_for_build.sh
  129. - echo "Building package in container" && sudo -E .travis/package_management/build_package_in_container.sh
  130. - sudo chmod -R 755 "/var/lib/lxc"
  131. - echo "Preparing RPM packaging contents for upload" && sudo -E .travis/package_management/prepare_packages.sh
  132. env:
  133. - BUILDER_NAME="builder" BUILD_DISTRO="fedora" BUILD_RELEASE="32" BUILD_STRING="fedora/32"
  134. - PACKAGE_TYPE="rpm" REPO_TOOL="dnf"
  135. after_failure: post_message "TRAVIS_MESSAGE" "Netdata RPM package build check failed."
  136. - stage: Support activities on main branch
  137. name: Generate changelog for release (only on special and tagged commit msg)
  138. before_script: post_message "TRAVIS_MESSAGE" "Support activities on main branch initiated" "${NOTIF_CHANNEL}"
  139. script:
  140. - echo "GIT Branch:" && git branch
  141. - echo "Last commit:" && git log -1
  142. - echo "GIT Describe:" && git describe
  143. - echo "packaging/version:" && cat packaging/version
  144. - if [[ -z "${GIT_TAG}" ]]; then echo "Running set tag for release" && set_tag_for_release; fi;
  145. - .travis/generate_changelog_and_tag_release.sh
  146. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Changelog generation and tag of release, failed"
  147. git:
  148. depth: false
  149. if: commit_message =~ /\[netdata (release candidate|(major|minor|patch) release)\]/ AND tag !~ /(-rc)/ OR (env(GIT_TAG) IS present AND NOT env(GIT_TAG) IS blank)
  150. # ###### Packaging workflow section ######
  151. # References:
  152. # https://us.images.linuxcontainers.org
  153. # https://packagecloud.io/docs#install_repo
  154. # TODO: This section is stale, will be aligned with the RPM implementation when we get to DEB packaging
  155. - stage: Package ubuntu/* and debian/*
  156. _template: &DEB_TEMPLATE
  157. git:
  158. depth: false
  159. before_install:
  160. - sudo apt-get install -y wget lxc python3-lxc lxc-templates dh-make git-buildpackage build-essential libdistro-info-perl
  161. - source tests/installer/slack.sh
  162. before_script:
  163. - export PACKAGES_DIRECTORY="$(mktemp -d -t netdata-packaging-contents-dir-XXXXXX)" && echo "Created packaging directory ${PACKAGES_DIRECTORY}"
  164. script:
  165. - echo "GIT Branch:" && git branch
  166. - echo "Last commit:" && git log -1
  167. - echo "GIT Describe:" && git describe
  168. - echo "packaging/version:" && cat packaging/version
  169. - echo "Creating LXC environment for the build" && sudo -E .travis/package_management/create_lxc_for_build.sh
  170. - echo "Building package in container" && sudo -E .travis/package_management/build_package_in_container.sh
  171. - sudo chown -R root:travis "/var/lib/lxc"
  172. - sudo chmod -R 750 "/var/lib/lxc"
  173. - echo "Preparing DEB packaging contents for upload" && sudo -E .travis/package_management/prepare_packages.sh
  174. after_failure: post_message "TRAVIS_MESSAGE" "Failed to build DEB for ${BUILD_STRING}.${BUILD_ARCH}"
  175. before_deploy:
  176. - .travis/package_management/yank_stale_pkg.sh "${PACKAGES_DIRECTORY}" "${BUILD_STRING}" || echo "No stale DEB found"
  177. deploy:
  178. - provider: packagecloud
  179. repository: "${DEPLOY_REPO}"
  180. username: "${PACKAGING_USER}"
  181. token: "${PKG_CLOUD_TOKEN}"
  182. dist: "${BUILD_STRING}"
  183. local_dir: "${PACKAGES_DIRECTORY}"
  184. skip_cleanup: true
  185. on:
  186. # Only deploy on ${USER}/netdata, master branch, when build-area directory is created
  187. repo: ${TRAVIS_REPO_SLUG}
  188. branch: "master"
  189. condition: -d "${PACKAGES_DIRECTORY}"
  190. after_deploy:
  191. - if [ -n "${BUILDER_NAME}" ]; then rm -rf /home/${BUILDER_NAME}/* && echo "Cleared /home/${BUILDER_NAME} directory" || echo "Failed to clean /home/${BUILDER_NAME} directory"; fi;
  192. - if [ -d "${PACKAGES_DIRECTORY}" ]; then rm -rf "${PACKAGES_DIRECTORY}"; fi;
  193. name: "Build & Publish DEB package for ubuntu/bionic"
  194. <<: *DEB_TEMPLATE
  195. if: commit_message =~ /\[Package (amd64|arm64|i386) DEB( Ubuntu)?\]/
  196. env:
  197. - BUILDER_NAME="builder" BUILD_DISTRO="ubuntu" BUILD_RELEASE="bionic" BUILD_STRING="ubuntu/bionic"
  198. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  199. - ALLOW_SOFT_FAILURE_HERE=true
  200. - name: "Build & Publish DEB package for ubuntu/xenial"
  201. <<: *DEB_TEMPLATE
  202. if: commit_message =~ /\[Package (amd64|arm64|i386) DEB( Ubuntu)?\]/
  203. env:
  204. - BUILDER_NAME="builder" BUILD_DISTRO="ubuntu" BUILD_RELEASE="xenial" BUILD_STRING="ubuntu/xenial"
  205. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  206. - ALLOW_SOFT_FAILURE_HERE=true
  207. - name: "Build & Publish DEB package for ubuntu/focal"
  208. <<: *DEB_TEMPLATE
  209. if: commit_message =~ /\[Package (amd64|arm64) DEB( Ubuntu)?\]/
  210. env:
  211. - BUILDER_NAME="builder" BUILD_DISTRO="ubuntu" BUILD_RELEASE="focal" BUILD_STRING="ubuntu/focal"
  212. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  213. - ALLOW_SOFT_FAILURE_HERE=true
  214. - name: "Build & Publish DEB package for ubuntu/groovy"
  215. <<: *DEB_TEMPLATE
  216. if: commit_message =~ /\[Package (amd64|arm64) DEB( Ubuntu)?\]/
  217. env:
  218. - BUILDER_NAME="builder" BUILD_DISTRO="ubuntu" BUILD_RELEASE="groovy" BUILD_STRING="ubuntu/groovy"
  219. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  220. - ALLOW_SOFT_FAILURE_HERE=true
  221. - name: "Build & Publish DEB package for debian/buster"
  222. <<: *DEB_TEMPLATE
  223. if: commit_message =~ /\[Package (amd64|arm64|i386) DEB( Debian)?\]/
  224. env:
  225. - BUILDER_NAME="builder" BUILD_DISTRO="debian" BUILD_RELEASE="buster" BUILD_STRING="debian/buster"
  226. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  227. - ALLOW_SOFT_FAILURE_HERE=true
  228. - name: "Build & Publish DEB package for debian/stretch"
  229. <<: *DEB_TEMPLATE
  230. if: commit_message =~ /\[Package (amd64|arm64|i386) DEB( Debian)?\]/
  231. env:
  232. - BUILDER_NAME="builder" BUILD_DISTRO="debian" BUILD_RELEASE="stretch" BUILD_STRING="debian/stretch"
  233. - PACKAGE_TYPE="deb" REPO_TOOL="apt-get"
  234. - ALLOW_SOFT_FAILURE_HERE=true
  235. - stage: Package centos, fedora and opensuse
  236. _template: &RPM_TEMPLATE
  237. git:
  238. depth: false
  239. before_install:
  240. - sudo apt-get install -y wget lxc lxc-templates python3-lxc
  241. - source tests/installer/slack.sh
  242. before_script:
  243. - export PACKAGES_DIRECTORY="$(mktemp -d -t netdata-packaging-contents-dir-XXXXXX)" && echo "Created packaging directory ${PACKAGES_DIRECTORY}"
  244. script:
  245. - echo "GIT Branch:" && git branch
  246. - echo "Last commit:" && git log -1
  247. - echo "GIT Describe:" && git describe
  248. - echo "packaging/version:" && cat packaging/version
  249. - echo "Creating LXC environment for the build" && sudo -E .travis/package_management/create_lxc_for_build.sh
  250. - echo "Building package in container" && sudo -E .travis/package_management/build_package_in_container.sh
  251. - sudo chmod -R 755 "/var/lib/lxc"
  252. - echo "Preparing RPM packaging contents for upload" && sudo -E .travis/package_management/prepare_packages.sh
  253. after_failure: post_message "TRAVIS_MESSAGE" "Failed to build RPM for ${BUILD_STRING}.${BUILD_ARCH}"
  254. before_deploy:
  255. - .travis/package_management/yank_stale_pkg.sh "${PACKAGES_DIRECTORY}" "${BUILD_STRING}" || echo "No stale RPM found"
  256. deploy:
  257. - provider: packagecloud
  258. repository: "${DEPLOY_REPO}"
  259. username: "${PACKAGING_USER}"
  260. token: "${PKG_CLOUD_TOKEN}"
  261. dist: "${BUILD_STRING}"
  262. local_dir: "${PACKAGES_DIRECTORY}"
  263. skip_cleanup: true
  264. on:
  265. # Only deploy on ${USER}/netdata, master branch, when packages directory is created
  266. repo: ${TRAVIS_REPO_SLUG}
  267. branch: "master"
  268. condition: -d "${PACKAGES_DIRECTORY}"
  269. after_deploy:
  270. - if [ -n "${BUILDER_NAME}" ]; then rm -rf /home/${BUILDER_NAME}/* && echo "Cleared /home/${BUILDER_NAME} directory" || echo "Failed to clean /home/${BUILDER_NAME} directory"; fi;
  271. - if [ -d "${PACKAGES_DIRECTORY}" ]; then rm -rf "${PACKAGES_DIRECTORY}"; fi;
  272. name: "Build & Publish RPM package for Enterprise Linux 7"
  273. <<: *RPM_TEMPLATE
  274. if: commit_message =~ /\[Package (amd64|arm64) RPM( Enterprise Linux)?\]/
  275. env:
  276. - BUILDER_NAME="builder" BUILD_DISTRO="centos" BUILD_RELEASE="7" BUILD_STRING="el/7"
  277. - PACKAGE_TYPE="rpm" REPO_TOOL="yum"
  278. - ALLOW_SOFT_FAILURE_HERE=true
  279. - name: "Build & Publish RPM package for Fedora 32"
  280. <<: *RPM_TEMPLATE
  281. if: commit_message =~ /\[Package (amd64|arm64) RPM( Fedora)?\]/
  282. env:
  283. - BUILDER_NAME="builder" BUILD_DISTRO="fedora" BUILD_RELEASE="32" BUILD_STRING="fedora/32"
  284. - PACKAGE_TYPE="rpm" REPO_TOOL="dnf"
  285. - ALLOW_SOFT_FAILURE_HERE=true
  286. - name: "Build & Publish RPM package for Fedora 33"
  287. <<: *RPM_TEMPLATE
  288. if: commit_message =~ /\[Package (amd64|arm64) RPM( Fedora)?\]/
  289. env:
  290. - BUILDER_NAME="builder" BUILD_DISTRO="fedora" BUILD_RELEASE="33" BUILD_STRING="fedora/33"
  291. - PACKAGE_TYPE="rpm" REPO_TOOL="dnf"
  292. - ALLOW_SOFT_FAILURE_HERE=true
  293. - name: "Build & Publish RPM package for openSUSE 15.2"
  294. <<: *RPM_TEMPLATE
  295. if: commit_message =~ /\[Package (amd64|arm64) RPM( openSUSE)?\]/
  296. env:
  297. - BUILDER_NAME="builder" BUILD_DISTRO="opensuse" BUILD_RELEASE="15.2" BUILD_STRING="opensuse/15.2"
  298. - PACKAGE_TYPE="rpm" REPO_TOOL="zypper"
  299. - ALLOW_SOFT_FAILURE_HERE=true
  300. # ###### End of packaging workflow section ###### #
  301. # ############################################### #
  302. # We only publish if a TAG has been set during packaging
  303. - stage: Publish for release
  304. name: Create release draft
  305. git:
  306. depth: false
  307. env:
  308. - RELEASE_CHANNEL=stable
  309. before_script: post_message "TRAVIS_MESSAGE" "Drafting release on github" "${NOTIF_CHANNEL}"
  310. script:
  311. - echo "GIT Branch:" && git branch
  312. - echo "Last commit:" && git log -1
  313. - echo "GIT Describe:" && git describe
  314. - echo "packaging/version:" && cat packaging/version
  315. - echo "Generating release artifacts" && .travis/create_artifacts.sh # Could/should be a common storage to put this and share between jobs
  316. - .travis/draft_release.sh
  317. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Draft release submission failed"
  318. - name: Trigger Docker image build and publish
  319. script:
  320. - git checkout "${TRAVIS_BRANCH}" && export BUILD_VERSION="$(cat packaging/version | cut -d'-' -f1)"
  321. - .travis/trigger_docker_build.sh "${GITHUB_TOKEN}" "${BUILD_VERSION}"
  322. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Failed to trigger docker build during release" "${NOTIF_CHANNEL}"
  323. - stage: Trigger deb and rpm package build (release)
  324. name: Trigger deb and rpm package build
  325. script: .travis/trigger_package_generation.sh
  326. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Failed to trigger deb and rpm package build during release" "${NOTIF_CHANNEL}"
  327. # This is the nightly pre-execution step (Jobs, preparatory steps for nightly, etc)
  328. - stage: Nightly operations
  329. name: Kickstart files integrity testing (extended)
  330. script: ./tests/installer/checksums.sh
  331. # This is generating the changelog for nightly release and publish it
  332. - name: Generate nightly changelog
  333. script:
  334. - ".travis/nightlies.sh"
  335. - ".travis/check_changelog_last_modification.sh"
  336. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Nightly changelog generation failed"
  337. git:
  338. depth: false
  339. - name: Clean up package cloud nightly repository from old versions
  340. script:
  341. - DEPLOY_REPO="netdata-edge" .travis/package_management/old_package_purging.sh
  342. - DEPLOY_REPO="netdata-devel" .travis/package_management/old_package_purging.sh
  343. # This is the nightly execution step
  344. #
  345. - stage: Nightly release
  346. _template: &NIGHTLY_TEMPLATE
  347. git:
  348. depth: false
  349. script:
  350. - echo "GIT Branch:" && git branch
  351. - echo "Last commit:" && git log -1
  352. - echo "GIT Describe:" && git describe
  353. - echo "packaging/version:" && cat packaging/version
  354. - "sudo echo '{\"experimental\": true}' > /etc/docker/daemon.json && sudo systemctl restart docker"
  355. - packaging/docker/check_login.sh
  356. && tick packaging/docker/build.sh
  357. && packaging/docker/publish.sh
  358. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Nightly docker image publish failed"
  359. name: Create nightly release artifacts, publish to GCS
  360. script:
  361. - echo "GIT Branch:" && git branch
  362. - echo "Last commit:" && git log -1
  363. - echo "GIT Describe:" && git describe
  364. - echo "packaging/version:" && cat packaging/version
  365. - .travis/create_artifacts.sh
  366. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Nightly artifacts generation failed"
  367. git:
  368. depth: false
  369. before_deploy:
  370. echo "Preparing creds under ${TRAVIS_REPO_SLUG}";
  371. if [ "${TRAVIS_REPO_SLUG}" == "netdata/netdata" ]; then
  372. openssl aes-256-cbc -K $encrypted_8daf19481253_key -iv $encrypted_8daf19481253_iv -in .travis/gcs-credentials.json.enc -out .travis/gcs-credentials.json -d;
  373. else
  374. echo "Beta deployment stage in progress";
  375. openssl aes-256-cbc -K $encrypted_8daf19481253_key -iv $encrypted_8daf19481253_iv -in .travis/gcs-credentials.json.enc -out .travis/gcs-credentials.json -d;
  376. fi;
  377. deploy:
  378. # Beta storage, used for testing purposes
  379. - provider: gcs
  380. edge:
  381. branch: gcs-ng
  382. project_id: netdata-storage
  383. credentials: .travis/gcs-credentials.json
  384. bucket: "netdata-dev-nightlies"
  385. skip_cleanup: true
  386. local_dir: "artifacts"
  387. on:
  388. # Only deploy on netdata/netdata, master branch, when artifacts directory is created
  389. repo: ${TRAVIS_REPO_SLUG}
  390. branch: master
  391. condition: -d "artifacts" && ${TRAVIS_REPO_SLUG} != "netdata/netdata"
  392. # Production storage
  393. - provider: gcs
  394. edge:
  395. branch: gcs-ng
  396. project_id: netdata-storage
  397. credentials: .travis/gcs-credentials.json
  398. bucket: "netdata-nightlies"
  399. skip_cleanup: true
  400. local_dir: "artifacts"
  401. on:
  402. # Only deploy on netdata/netdata, master branch, when artifacts directory is created
  403. repo: netdata/netdata
  404. branch: master
  405. condition: -d "artifacts" && ${TRAVIS_REPO_SLUG} = "netdata/netdata"
  406. after_deploy: rm -f .travis/gcs-credentials.json
  407. - name: Trigger Docker image build and publish
  408. script: .travis/trigger_docker_build.sh "${GITHUB_TOKEN}" "nightly"
  409. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Failed to trigger docker build during nightly release" "${NOTIF_CHANNEL}"
  410. - stage: Trigger deb and rpm package build (nightly release)
  411. name: Trigger deb and rpm package build
  412. script: .travis/trigger_package_generation.sh "[Build latest]"
  413. after_failure: post_message "TRAVIS_MESSAGE" "<!here> Failed to trigger deb and rpm package build during nightly release" "${NOTIF_CHANNEL}"