| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- kind: pipeline
- name: clone-prepare-build-sign-release
- # https://github.com/drone/drone
-
- platform:
- os: linux
- arch: amd64
-
- clone:
- disable: false
- depth: 50
-
- steps:
- - name: prepare
- image: plugins/docker
- # http://plugins.drone.io/drone-plugins/drone-docker/
- # https://github.com/drone-plugins/drone-docker
- when:
- event: [ tag ] # [ push, tag ]
- settings:
- dry_run: false
- registry: reg.unino.de
- insecure: false
- #auth: authtoken for registry
- username: { from_secret: reg-user }
- password: { from_secret: reg-pass }
- repo: reg.unino.de/develop/debian-${DRONE_REPO_NAMESPACE}-${DRONE_REPO_NAME}
- #mirror: registry-1.docker.io
- bip: 172.17.0.1/16 # set bridge if non-existent
- context: /drone/src # defaults to root of git repo
- #custom_dns: 127.0.0.11 # defaults to 8.8.8.8 and 8.8.4.4
- storage_driver: overlay2 # aufs, overlay or vfs
- #debug: true
- #launch_debug: true
- target: builder # Dockerfile build target e.g. builder, debug, production
- dockerfile: Dockerfile
- auto_tag: false
- auto_tag_suffix: linux-amd64
- force_tag: true
- tags: [ latest, builder ]
- build_args: # custom args for docker build, e.g. additional BUILD_DEPS etc.
- - DEB_RELEASE=stretch
- - BUILD_DEPS=libhidapi-dev libssl-dev
- - BUILD_ARCH=i386 amd64 armhf armel # amd64 arm64 armel armhf i386 mips mips64el mipsel powerpc ppc64el s390x
-
-
-
-
- - name: build
- image: reg.unino.de/develop/debian-${DRONE_REPO_NAMESPACE}-${DRONE_REPO_NAME}:latest
- # https://readme.drone.io/user-guide/pipeline/
- # https://docs.drone.io/reference/environ/
- when:
- event: [ push, tag ]
- depends_on: [ clone, prepare ]
- environment:
- MAKEFLAGS: -j 1
- # https://wiki.debian.org/CrossCompiling#Building_with_dpkg-buildpackage
- BUILD_ARCH: amd64 armhf # amd64 arm64 armel armhf i386 mips mips64el mipsel powerpc ppc64el s390x
- commands:
-
-
- # DEB_BUILD_ARCH DEB_HOST_ARCH TARGET=armhf
-
- - PKG_NAME="${DRONE_REPO_NAME}" &&
- PKG_VERSION="$(git describe --always)" &&
- PKG_SRC_ROOT="$(pwd)" &&
- PKG_RELEASE_DIR="$${PKG_SRC_ROOT}/release" &&
- PKG_DIST_DIR="dist" &&
- mkdir -p "$${PKG_RELEASE_DIR}" &&
- PKG_DEB_ARCHIVE="$${PKG_NAME}_$${PKG_VERSION}.orig.tar.xz" &&
- PKG_DEB_ARCHIVE_ROOT="$${PKG_NAME}-$${PKG_VERSION}" &&
- tar --exclude='./.*' --exclude='debian' --exclude="$${PKG_RELEASE_DIR}"
- --exclude="$${PKG_DEB_ARCHIVE}"
- --transform "s/\./$${PKG_DEB_ARCHIVE_ROOT}/"
- -cJf "$${PKG_RELEASE_DIR}/$${PKG_DEB_ARCHIVE}" . &&
- PKG_BUILDHOST_ARCH="amd64" &&
- for PKG_ARCH in $${BUILD_ARCH} ; do cd "$${PKG_SRC_ROOT}" && echo "Building for $${PKG_ARCH}" &&
- PKG_RELEASE_ARCHIVE="$${PKG_NAME}_$${PKG_VERSION}_$${PKG_ARCH}.tar.xz" &&
- PKG_RELEASE_ARCHIVE_ROOT="$${PKG_NAME}-$${PKG_VERSION}" &&
- PKG_BUILD_DIR="$${PKG_SRC_ROOT}/build/$${PKG_ARCH}/$${PKG_ARCHIVE_ROOT}" &&
- mkdir -p "$${PKG_BUILD_DIR}" &&
- tar -xf "$${PKG_RELEASE_DIR}/$${PKG_DEB_ARCHIVE}" -C "$${PKG_BUILD_DIR}" --strip 1 &&
- cd "$${PKG_BUILD_DIR}" &&
- export MAKEFLAGS="$${MAKEFLAGS}" &&
- case $${PKG_ARCH} in
- amd64) PREFIX="" ;;
- armhf) PREFIX="arm-linux-gnueabihf-" ;;
- esac &&
- export CC="$${PREFIX}gcc" &&
- export LD="$${PREFIX}ld" &&
- export STRIP="$${PREFIX}strip" &&
- echo $${CC} &&
- make &&
- tar --exclude='./.*'
- --transform "s/\./$${PKG_RELEASE_ARCHIVE_ROOT}/"
- -C "$${PKG_DIST_DIR}"
- -cJf "$${PKG_RELEASE_DIR}/$${PKG_RELEASE_ARCHIVE}" . &&
- make clean ;
- done &&
- ls -la "$${PKG_RELEASE_DIR}" &&
- find "$${PKG_RELEASE_DIR}" -type f -exec md5sum '{}' \;
-
-
-
- # tar --exclude='./.*'
- # --transform "s/$${PKG_DIST_DIR}/$${PKG_RELEASE_ARCHIVE_ROOT}/"
- # -cJvf "$${PKG_RELEASE_DIR}/$${PKG_RELEASE_ARCHIVE}" "${PKG_DIST_DIR}" &&
-
-
- # - export MAKEFLAGS && make
- # - CONTENT=${DRONE_REPO_NAME} ;
- # test -n "${DRONE_TAG}" &&
- # RELEASE=${DRONE_REPO_NAME}-${DRONE_TAG}-bin ||
- # RELEASE=${DRONE_REPO_NAME}-bin
- # - cp -rp dist/. $CONTENT/ ;
- # ls -la $CONTENT
- # - find $CONTENT -type f -exec md5sum '{}' \;
- # - rm -rf release ;
- # mkdir release
- # # - zip -rpq release/$RELEASE.zip $CONTENT
- # - tar -czf release/$RELEASE.tar.gz $CONTENT
- # # - tar -cJf release/$RELEASE.tar.xz $CONTENT
- # - make clean ; rm -rf $CONTENT ;
- # ls -la release
- # - find release -type f -exec md5sum '{}' \;
-
-
- # - for ARCH in ${BUILD_ARCH} ; do
- # apt-get build-dep -a $ARCH . ;
- # done
-
- # - for ARCH in ${BUILD_ARCH} ; do
- # CONFIG_SITE=/etc/dpkg-cross/cross-config.$ARCH
- # DEB_BUILD_OPTIONS=nocheck
- # dpkg-buildpackage -us -uc -a $ARCH ;
- # done
-
- - exit 0 ; ░▒▓█ BUILD END █▓▒░
-
-
- - name: sign
- image: plugins/gpgsign
- # http://plugins.drone.io/drone-plugins/drone-gpgsign/
- # https://github.com/drone-plugins/drone-gpgsign
- when:
- event: [ push, tag ]
- depends_on: [ build ]
- settings:
- key: { from_secret: gpg-key }
- passphrase: { from_secret: gpg-pass }
- detach_sign: true
- clear_sign: false
- files:
- - release/*
- excludes:
- - release/*.asc
-
-
- # http://plugins.drone.io/drone-plugins/drone-gitea-release/
- # https://github.com/drone-plugins/drone-gitea-release
- - name: release
- image: plugins/gitea-release
- # http://plugins.drone.io/drone-plugins/drone-gitea-release/
- # https://github.com/drone-plugins/drone-gitea-release
- when:
- event: [ tag ]
- depends_on: [ sign ]
- settings:
- title: Release ${DRONE_REPO_NAME}-${DRONE_TAG} # file or string
- note: RELEASE.md # file or string
- draft: false
- prerelease: false
- base_url: https://git.unino.de
- insecure: false
- api_key: { from_secret: gitea-release }
- checksum: [ md5 ] # [ md5, sha1, sha256, sha512, adler32, crc32 ]
- file_exists: overwrite # overwrite, skip, fail
- files: # wildcard * matching files with prefix supported
- - release/*
|