--- kind: pipeline type: docker name: Check messages.po clone: disable: true trigger: event: - pull_request 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: Run Xgettext for addons image: friendicaci/transifex commands: - /xgettext-addon.sh - name: Check update necessary image: friendicaci/transifex commands: - /check-addons.sh --- kind: pipeline type: docker name: php-cs check clone: disable: true trigger: event: - pull_request 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: Install dependencies image: composer commands: - ./bin/composer.phar run cs:install - name: Run coding standards check image: friendicaci/php-cs commands: - cd addon/ - 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: continuous-deployment 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 RELEASE="friendica-addons-$VERSION" - export ARTIFACT="$RELEASE.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' -cvzf ./build/$ARTIFACT addon/ - # calculate SHA256 checksum - cd ./build - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256" - ls -lh - # output the sha256 sum for checking - cat "$ARTIFACT.sum256" - sha256sum "$ARTIFACT" - name: Sign artifacts image: plugins/gpgsign settings: key: from_secret: gpg_key passphrase: from_secret: gpg_password files: - build/* exclude: - build/*.sum256 detach_sign: true - 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 --- kind: pipeline type: docker name: release-deployment trigger: repo: - friendica/friendica-addons branch: - stable event: - tag 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 RELEASE="friendica-addons-$VERSION" - export ARTIFACT="$RELEASE.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' -cvzf ./build/$ARTIFACT addon/ - # calculate SHA256 checksum - cd ./build - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256" - ls -lh - # output the sha256 sum for checking - cat "$ARTIFACT.sum256" - sha256sum "$ARTIFACT" - name: Sign artifacts image: plugins/gpgsign settings: key: from_secret: gpg_key passphrase: from_secret: gpg_password files: - build/* exclude: - build/*.sum256 detach_sign: true - 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