My build of nnn with minor changes
 
 
 
 
 
 

96 lines
2.7 KiB

  1. version: 2
  2. jobs:
  3. compile:
  4. docker:
  5. - image: ubuntu:18.04
  6. working_directory: ~/nnn
  7. environment:
  8. CI_FORCE_TEST: 1
  9. steps:
  10. - run:
  11. command: |
  12. apt update -qq
  13. apt install -y --no-install-recommends software-properties-common wget gpg-agent
  14. apt-add-repository -y ppa:jonathonf/gcc-9.0
  15. wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|apt-key add -
  16. apt-add-repository -y "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main"
  17. apt update -qq
  18. apt install -y --no-install-recommends git gcc gcc-8 gcc-9 clang clang-8 clang-tidy-8 make pkg-config libncursesw5-dev libreadline-dev
  19. - checkout
  20. - run:
  21. command: |
  22. export CFLAGS=-Werror
  23. make clean
  24. echo
  25. echo "########## gcc ##########"
  26. CC=gcc make strip
  27. ls -l nnn
  28. make clean
  29. echo
  30. echo "########## gcc-8 ##########"
  31. CC=gcc-8 make strip
  32. ls -l nnn
  33. make clean
  34. echo
  35. echo "########## gcc-9 ##########"
  36. CC=gcc-9 make strip
  37. ls -l nnn
  38. make clean
  39. echo
  40. echo "########## clang ##########"
  41. CC=clang make strip
  42. ls -l nnn
  43. make clean
  44. echo
  45. echo "########## clang-8 ##########"
  46. CC=clang-8 make strip
  47. ls -l nnn
  48. make clean
  49. echo
  50. echo "########## clang-tidy-8 ##########"
  51. clang-tidy-8 src/* -- -I/usr/include -I/usr/include/ncursesw
  52. package-and-publish:
  53. machine: true
  54. working_directory: ~/nnn
  55. steps:
  56. - run:
  57. name: "package with packagecore"
  58. command: |
  59. # Use latest installed python3 from pyenv
  60. export PYENV_VERSION="$(pyenv versions | grep -Po '\b3\.\d+\.\d+' | tail -1)"
  61. pip install packagecore
  62. packagecore -o ./dist/ ${CIRCLE_TAG#v}
  63. - run:
  64. name: "publish to GitHub"
  65. command: |
  66. go get github.com/tcnksm/ghr
  67. ghr -t ${GITHUB_API_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -replace ${CIRCLE_TAG} ./dist/
  68. workflows:
  69. version: 2
  70. test:
  71. jobs: &all-tests
  72. - compile
  73. nightly:
  74. triggers:
  75. - schedule:
  76. cron: "0 0 * * 0"
  77. filters:
  78. branches:
  79. only:
  80. - master
  81. jobs: *all-tests
  82. publish-github-release:
  83. jobs:
  84. - package-and-publish:
  85. filters:
  86. tags:
  87. only: /^v.*/
  88. branches:
  89. ignore: /.*/