--- kind: pipeline type: docker name: default steps: - name: build:binary image: crystallang/crystal:1.7.3 environment: PACKAGE_BASENAME: mfm_linux_amd64 volumes: - name: cache path: /_cache commands: - pwd - apt-get update && apt-get install -y cmake g++ libevent-dev libpcre3-dev libyaml-dev - shards install - shards build --production --static - strip bin/mfm - mkdir -p /_cache/bin - cp -r bin/mfm /_cache/bin/$PACKAGE_BASENAME - name: publish:tag image: curlimages/curl environment: PACKAGE_UPLOAD_URL: https://code.apps.glenux.net/api/packages/glenux/generic/mfm RELEASES_URL: https://code.apps.glenux.net/api/repos/glenux/mfm/releases PACKAGE_BASENAME: mfm_linux_amd64 RELEASE_UPLOAD_TOKEN: from_secret: RELEASE_UPLOAD_TOKEN PACKAGE_UPLOAD_TOKEN: from_secret: PACKAGE_UPLOAD_TOKEN when: ref: include: - refs/tags/** volumes: - name: cache path: /_cache commands: - env |grep DRONE - | curl -H "Authorization: token $PACKAGE_UPLOAD_TOKEN" \ --upload-file "/_cache/bin/$PACKAGE_BASENAME" \ "$PACKAGE_UPLOAD_URL/$DRONE_TAG/$PACKAGE_BASENAME" - | curl -X 'POST' \ -H 'Authorization: token $RELEASE_UPLOAD_TOKEN' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d "{\"body\": \"DRAFT\", \"draft\": true, \"name\": \"$DRONE_TAG - DRAFT\", \"prerelease\": false, \"tag_name\": \"$DRONE_TAG\", \"target_commitish\": \"$DRONE_COMMIT_SHA\"}" \ "$RELEASES_URL" - | set -x curl -X POST \ -H "Authorization: token $RELEASE_UPLOAD_TOKEN" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "attachment=@/_cache/bin/$PACKAGE_BASENAME" \ "$RELEASES_URL/$DRONE_TAG/assets?name=$PACKAGE_BASENAME" # FIXME: handle multi-arch # FIXME: publish only on tags volumes: - name: cache temp: {} #