You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
280 lines
6.8 KiB
280 lines
6.8 KiB
--- |
|
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
|
|
|