From c2cd12bc65c63964b7c315d231bf83453b72b7e1 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 2 Sep 2021 12:13:14 +0200 Subject: [PATCH] Add drone release for addons --- .drone.yml | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/.drone.yml b/.drone.yml index 4e3239f5..adb54a85 100644 --- a/.drone.yml +++ b/.drone.yml @@ -69,3 +69,92 @@ steps: - export CHANGED_FILES="$(git diff --name-status ${DRONE_COMMIT_BEFORE}..${DRONE_COMMIT_AFTER} | grep ^A | cut -f2 | sed -e "s/^/addon\\//")" - cd ../ - /check-php-cs.sh +--- +kind: pipeline +type: docker +name: php-continous-package + +#trigger: +# repo: +# - friendica/friendica-addons +# branch: +# - develop +# - 20*-rc +# event: +# - push + +node: + node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca + +clone: + disable: true + +steps: + - name: Clone friendica base + image: alpine/git + commands: + - git clone https://github.com/friendica/friendica.git . + - git checkout $DRONE_COMMIT_BRANCH + - name: Clone friendica addon + image: alpine/git + commands: + - git clone $DRONE_REPO_LINK addon + - cd addon/ + - git checkout $DRONE_COMMIT_BRANCH + - git fetch origin $DRONE_COMMIT_REF + - git merge $DRONE_COMMIT_SHA + - name: Create artifacts + image: debian + commands: + - apt-get update + - apt-get install bzip2 + - export VERSION="$(cat VERSION)" + - export RELEASEADDONS="friendica-addons-$VERSION" + - export ARTIFACTADDONS="$RELEASEADDON.tar.gz" + - mkdir ./build + - # Create artifact for friendica-addons + - tar \ + --exclude='./.tx' \ + --exclude='./.git' \ + --exclude='./.editorconfig' \ + --exclude='./.gitattributes' \ + --exclude='./.gitignore' \ + --exclude='./.drone.yml' \ + --exclude='./**/*/messages.po' \ + -cvjf ./build/$ARTIFACTADDONS --transform "s,^addon,$RELEASEADDONS," addon/ + - # calculate SHA256 checksum + - sha256sum ./build/$ARTIFACTADDONS > ./build/$ARTIFACTADDONS.sha256 + - ls -lh ./build + - name: Upload artifacts + image: alpine + environment: + LFTP_HOST: + from_secret: sftp_host + LFTP_USER: + from_secret: sftp_user + LFTP_KEY: + from_secret: ssh_key + LFTP_PORT: "22" + LFTP_SOURCE: "build" + LFTP_TARGET: "/http" + commands: + - apk add lftp openssh openssl + - touch drone.key + - chmod 400 drone.key + - echo "$LFTP_KEY" | openssl base64 -A -d > drone.key + - lftp -c " + set net:timeout 5; + set net:max-retries 2; + set net:reconnect-interval-base 5; + set sftp:auto-confirm true; + set sftp:connect-program 'ssh -q -a -x -i drone.key'; + connect sftp://$LFTP_USER:@$LFTP_HOST:$LFTP_PORT; + cd $LFTP_TARGET; + mput $LFTP_SOURCE/*; + " + - rm drone.key + +volumes: + - name: cache + host: + path: /tmp/drone-cache