Kromek Radangel gamma spectrometer USB HID daemon and WebUI. https://git.unino.de/pvivell/radangel
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

drone.yml 7.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. kind: pipeline
  2. name: clone-prepare-build-sign-release
  3. # https://github.com/drone/drone
  4. platform:
  5. os: linux
  6. arch: amd64
  7. clone:
  8. disable: false
  9. depth: 50
  10. steps:
  11. - name: prepare
  12. image: plugins/docker
  13. # http://plugins.drone.io/drone-plugins/drone-docker/
  14. # https://github.com/drone-plugins/drone-docker
  15. when:
  16. event: [] # [ tag ] # [ push, tag ]
  17. settings:
  18. dry_run: false
  19. registry: reg.unino.de
  20. insecure: false
  21. #auth: authtoken for registry
  22. username: { from_secret: reg-user }
  23. password: { from_secret: reg-pass }
  24. repo: reg.unino.de/develop/debian-${DRONE_REPO_NAMESPACE}-${DRONE_REPO_NAME}
  25. #mirror: registry-1.docker.io
  26. bip: 172.17.0.1/16 # set bridge if non-existent
  27. context: /drone/src # defaults to root of git repo
  28. #custom_dns: 127.0.0.11 # defaults to 8.8.8.8 and 8.8.4.4
  29. storage_driver: overlay2 # aufs, overlay or vfs
  30. #debug: true
  31. #launch_debug: true
  32. target: builder # Dockerfile build target e.g. builder, debug, production
  33. dockerfile: Dockerfile
  34. auto_tag: false
  35. auto_tag_suffix: linux-amd64
  36. force_tag: true
  37. tags: [ latest, builder ]
  38. build_args: # custom args for docker build, e.g. additional BUILD_DEPS etc.
  39. - DEB_RELEASE=stretch
  40. - BUILD_DEPS=libhidapi-dev libssl-dev
  41. - BUILD_ARCH=armhf # amd64 arm64 armel armhf i386 mips mips64el mipsel powerpc ppc64el s390x
  42. - name: build
  43. image: reg.unino.de/develop/debian-${DRONE_REPO_NAMESPACE}-${DRONE_REPO_NAME}:latest
  44. # https://readme.drone.io/user-guide/pipeline/
  45. # https://docs.drone.io/reference/environ/
  46. when:
  47. event: [ push, tag ]
  48. depends_on: [ clone, prepare ]
  49. environment:
  50. MAKEFLAGS: -j 1
  51. # https://wiki.debian.org/CrossCompiling#Building_with_dpkg-buildpackage
  52. BUILD_ARCH: amd64 armhf # amd64 arm64 armel armhf i386 mips mips64el mipsel powerpc ppc64el s390x
  53. commands:
  54. # DEB_BUILD_ARCH DEB_HOST_ARCH TARGET=armhf
  55. # addr2line ar as c++filt cpp cpp-6 dwp elfedit g++ g++-6 gcc gcc-6 gcc-ar gcc-ar-6 gcc-nm gcc-nm-6 gcc-ranlib gcc-ranlib-6 gcov gcov-6 gcov-dump gcov-dump-6 gcov-tool gcov-tool-6 gprof ld ld.bfd ld.gold nm objcopy objdump ranlib readelf size strings strip
  56. - PKG_NAME="${DRONE_REPO_NAME}" &&
  57. PKG_VERSION="$(git describe --always)" &&
  58. echo git fetch --tags && echo PKG_VERSION="$(git for-each-ref --merged='master' --sort='-*creatordate' --format='%(refname:short)' 'refs/tags' | head -1 | sed 's/[^0-9.]//g')" &&
  59. if test -d "debian" ; then PKG_VERSION=$(dpkg-parsechangelog -SVersion | sed 's/-.*//') ; fi &&
  60. PKG_BUILDHOST_ARCH="amd64" &&
  61. PKG_SRC_ROOT="$(pwd)" &&
  62. PKG_RELEASE_DIR="$${PKG_SRC_ROOT}/release" &&
  63. PKG_DIST_DIR="dist" &&
  64. mkdir -p "$${PKG_RELEASE_DIR}" &&
  65. PKG_DEB_ARCHIVE="$${PKG_NAME}_$${PKG_VERSION}.orig.tar.xz" &&
  66. PKG_DEB_ARCHIVE_ROOT="$${PKG_NAME}-$${PKG_VERSION}" &&
  67. tar --exclude='./.*' --exclude='debian' --exclude="$${PKG_RELEASE_DIR}"
  68. --exclude="$${PKG_DEB_ARCHIVE}"
  69. --transform "s/\./$${PKG_DEB_ARCHIVE_ROOT}/"
  70. -cJf "$${PKG_RELEASE_DIR}/$${PKG_DEB_ARCHIVE}" . &&
  71. for PKG_ARCH in $${BUILD_ARCH} ; do cd "$${PKG_SRC_ROOT}" &&
  72. echo " ░▒▓█ BUILDING FOR $${PKG_ARCH} █▓▒░ " &&
  73. PKG_RELEASE_ARCHIVE="$${PKG_NAME}_$${PKG_VERSION}_$${PKG_ARCH}.tar.xz" &&
  74. PKG_RELEASE_ARCHIVE_ROOT="$${PKG_NAME}-$${PKG_VERSION}" &&
  75. PKG_BUILD_DIR="$${PKG_SRC_ROOT}/build/$${PKG_ARCH}/$${PKG_RELEASE_ARCHIVE_ROOT}" &&
  76. mkdir -p "$${PKG_BUILD_DIR}" &&
  77. tar -xf "$${PKG_RELEASE_DIR}/$${PKG_DEB_ARCHIVE}" -C "$${PKG_BUILD_DIR}" --strip 1 &&
  78. cd "$${PKG_BUILD_DIR}" &&
  79. case "$${PKG_ARCH}" in
  80. amd64) PREFIX="x86_64-linux-gnu-" ;;
  81. arm64) PREFIX="aarch64-linux-gnu-" ;;
  82. armel) PREFIX="arm-linux-gnueabi-" ;;
  83. armhf) PREFIX="arm-linux-gnueabihf-" ;;
  84. i386) PREFIX="i686-linux-gnu-" ;;
  85. mips) PREFIX="mips-linux-gnu-" ;;
  86. mips64el) PREFIX="mips64el-linux-gnuabi64-" ;;
  87. mipsel) PREFIX="mipsel-linux-gnu-" ;;
  88. powerpc) PREFIX="powerpc-linux-gnu-" ;;
  89. ppc64el) PREFIX="powerpc64le-linux-gnu-" ;;
  90. s390x) PREFIX="s390x-linux-gnu-" ;;
  91. esac &&
  92. if test "$${PKG_ARCH}" = "$${PKG_BUILDHOST_ARCH}" ; then PREFIX="" ; fi &&
  93. export CC="$${PREFIX}gcc" &&
  94. export LD="$${PREFIX}ld" &&
  95. export STRIP="$${PREFIX}strip" &&
  96. export MAKEFLAGS="$${MAKEFLAGS}" &&
  97. if test -d "$${PKG_SRC_ROOT}/debian" ; then
  98. cp -rp "$${PKG_SRC_ROOT}/debian" . &&
  99. cp -p "$${PKG_RELEASE_DIR}/$${PKG_DEB_ARCHIVE}" .. &&
  100. echo apt-get build-dep -a $${PKG_ARCH} . &&
  101. CONFIG_SITE="/etc/dpkg-cross/cross-config.$${PKG_ARCH}"
  102. DEB_BUILD_OPTIONS="nocheck"
  103. dpkg-buildpackage -us -uc -a "${PKG_ARCH}" &&
  104. ls -l .. &&
  105. cp ../*.tar.xz ../*.deb ../*.dsc "$${PKG_RELEASE_DIR}/" ;
  106. else
  107. make &&
  108. tar --exclude='./.*'
  109. --transform "s/\./$${PKG_RELEASE_ARCHIVE_ROOT}/"
  110. -C "$${PKG_DIST_DIR}"
  111. -cJf "$${PKG_RELEASE_DIR}/$${PKG_RELEASE_ARCHIVE}" . &&
  112. make clean ;
  113. fi ;
  114. done &&
  115. ls -la "$${PKG_RELEASE_DIR}" &&
  116. find "$${PKG_RELEASE_DIR}" -type f -exec md5sum '{}' \;
  117. - exit 0 ; ░▒▓█ BUILD END █▓▒░
  118. # tar --exclude='./.*'
  119. # --transform "s/$${PKG_DIST_DIR}/$${PKG_RELEASE_ARCHIVE_ROOT}/"
  120. # -cJvf "$${PKG_RELEASE_DIR}/$${PKG_RELEASE_ARCHIVE}" "${PKG_DIST_DIR}" &&
  121. # - export MAKEFLAGS && make
  122. # - CONTENT=${DRONE_REPO_NAME} ;
  123. # test -n "${DRONE_TAG}" &&
  124. # RELEASE=${DRONE_REPO_NAME}-${DRONE_TAG}-bin ||
  125. # RELEASE=${DRONE_REPO_NAME}-bin
  126. # - cp -rp dist/. $CONTENT/ ;
  127. # ls -la $CONTENT
  128. # - find $CONTENT -type f -exec md5sum '{}' \;
  129. # - rm -rf release ;
  130. # mkdir release
  131. # # - zip -rpq release/$RELEASE.zip $CONTENT
  132. # - tar -czf release/$RELEASE.tar.gz $CONTENT
  133. # # - tar -cJf release/$RELEASE.tar.xz $CONTENT
  134. # - make clean ; rm -rf $CONTENT ;
  135. # ls -la release
  136. # - find release -type f -exec md5sum '{}' \;
  137. # - for ARCH in ${BUILD_ARCH} ; do
  138. # apt-get build-dep -a $ARCH . ;
  139. # done
  140. # - for ARCH in ${BUILD_ARCH} ; do
  141. # CONFIG_SITE=/etc/dpkg-cross/cross-config.$ARCH
  142. # DEB_BUILD_OPTIONS=nocheck
  143. # dpkg-buildpackage -us -uc -a $ARCH ;
  144. # done
  145. # - exit 0 ; ░▒▓█ BUILD END █▓▒░
  146. - name: sign
  147. image: plugins/gpgsign
  148. # http://plugins.drone.io/drone-plugins/drone-gpgsign/
  149. # https://github.com/drone-plugins/drone-gpgsign
  150. when:
  151. event: [ push, tag ]
  152. depends_on: [ build ]
  153. settings:
  154. key: { from_secret: gpg-key }
  155. passphrase: { from_secret: gpg-pass }
  156. detach_sign: true
  157. clear_sign: false
  158. files:
  159. - release/*
  160. excludes:
  161. - release/*.asc
  162. # http://plugins.drone.io/drone-plugins/drone-gitea-release/
  163. # https://github.com/drone-plugins/drone-gitea-release
  164. - name: release
  165. image: plugins/gitea-release
  166. # http://plugins.drone.io/drone-plugins/drone-gitea-release/
  167. # https://github.com/drone-plugins/drone-gitea-release
  168. when:
  169. event: [ tag ]
  170. depends_on: [ sign ]
  171. settings:
  172. title: Release ${DRONE_REPO_NAME}-${DRONE_TAG} # file or string
  173. note: RELEASE.md # file or string
  174. draft: false
  175. prerelease: false
  176. base_url: https://git.unino.de
  177. insecure: false
  178. api_key: { from_secret: gitea-release }
  179. checksum: [ md5 ] # [ md5, sha1, sha256, sha512, adler32, crc32 ]
  180. file_exists: overwrite # overwrite, skip, fail
  181. files: # wildcard * matching files with prefix supported
  182. - release/*