forked from friendica/friendica-addons
Merge pull request #1224 from nupplaphil/feat/woodpecker
Replace Drone with Woodpecker
This commit is contained in:
commit
ff763795a3
5 changed files with 317 additions and 282 deletions
282
.drone.yml
282
.drone.yml
|
@ -1,282 +0,0 @@
|
|||
---
|
||||
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"
|
||||
- chmod 664 ./*
|
||||
- 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"
|
||||
- chmod 664 ./*
|
||||
- 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
|
35
.woodpecker/.code_standards_check.yml
Normal file
35
.woodpecker/.code_standards_check.yml
Normal file
|
@ -0,0 +1,35 @@
|
|||
skip_clone: true
|
||||
|
||||
pipeline:
|
||||
clone_friendica_base:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone https://github.com/friendica/friendica.git .
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
when:
|
||||
event: pull_request
|
||||
clone_friendica_addon:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone $CI_REPO_LINK addon
|
||||
- cd addon/
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
- git fetch origin $CI_COMMIT_REF
|
||||
- git merge $CI_COMMIT_SHA
|
||||
when:
|
||||
event: pull_request
|
||||
composer_install:
|
||||
image: composer
|
||||
commands:
|
||||
- ./bin/composer.phar run cs:install
|
||||
when:
|
||||
event: pull_request
|
||||
check:
|
||||
image: friendicaci/php-cs
|
||||
commands:
|
||||
- cd addon/
|
||||
- export CHANGED_FILES="$(git diff --name-status ${CI_PREV_COMMIT_SHA}..${CI_COMMIT_SHA} | grep ^A | cut -f2 | sed -e "s/^/addon\\//")"
|
||||
- cd ../
|
||||
- /check-php-cs.sh
|
||||
when:
|
||||
event: pull_request
|
126
.woodpecker/.continuous-deployment.yml
Normal file
126
.woodpecker/.continuous-deployment.yml
Normal file
|
@ -0,0 +1,126 @@
|
|||
matrix:
|
||||
include:
|
||||
- PHP_MAJOR_VERSION: 7.4
|
||||
PHP_VERSION: 7.4.18
|
||||
|
||||
depends_on:
|
||||
- code_standards_check
|
||||
- messages.po_check
|
||||
|
||||
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
|
||||
skip_clone: true
|
||||
|
||||
pipeline:
|
||||
clone_friendica_base:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone https://github.com/friendica/friendica.git .
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
clone_friendica_addon:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone $CI_REPO_LINK addon
|
||||
- cd addon/
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
- git fetch origin $CI_COMMIT_REF
|
||||
- git merge $CI_COMMIT_SHA
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
composer_install:
|
||||
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||
commands:
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
- composer install --no-dev --optimize-autoloader
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
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
|
||||
- tar
|
||||
--exclude='.tx'
|
||||
--exclude='.git'
|
||||
--exclude='.editorconfig'
|
||||
--exclude='.gitattributes'
|
||||
--exclude='.gitignore'
|
||||
--exclude='.drone.yml'
|
||||
--exclude='**/*/messages.po'
|
||||
-cvzf ./build/$ARTIFACT addon/
|
||||
- cd ./build
|
||||
- sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
|
||||
- chmod 664 ./*
|
||||
- ls -lh
|
||||
- cat "$ARTIFACT.sum256"
|
||||
- sha256sum "$ARTIFACT"
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
sign_artifacts:
|
||||
image: plugins/gpgsign
|
||||
settings:
|
||||
key:
|
||||
from_secret: gpg_key
|
||||
passphrase:
|
||||
from_secret: gpg_password
|
||||
files:
|
||||
- build/*
|
||||
exclude:
|
||||
- build/*.sum256
|
||||
detach_sign: true
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
upload_artifacts:
|
||||
image: alpine
|
||||
secrets:
|
||||
- source: sftp_host
|
||||
target: lftp_host
|
||||
- source: sftp_user
|
||||
target: lftp_user
|
||||
- source: ssh_key
|
||||
target: lftp_key
|
||||
environment:
|
||||
LFTP_PORT: "22"
|
||||
LFTP_SOURCE: "build"
|
||||
LFTP_TARGET: "/http"
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
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
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
35
.woodpecker/.messages.po_check.yml
Normal file
35
.woodpecker/.messages.po_check.yml
Normal file
|
@ -0,0 +1,35 @@
|
|||
skip_clone: true
|
||||
|
||||
branches:
|
||||
exclude: [ stable ]
|
||||
|
||||
pipeline:
|
||||
clone_friendica_base:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone https://github.com/friendica/friendica.git .
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
when:
|
||||
event: pull_request
|
||||
clone_friendica_addon:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone $CI_REPO_LINK addon
|
||||
- cd addon/
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
- git fetch origin $CI_COMMIT_REF
|
||||
- git merge $CI_COMMIT_SHA
|
||||
when:
|
||||
event: pull_request
|
||||
build_xgettext:
|
||||
image: friendicaci/transifex
|
||||
commands:
|
||||
- /xgettext-addon.sh
|
||||
when:
|
||||
event: pull_request
|
||||
check:
|
||||
image: friendicaci/transifex
|
||||
commands:
|
||||
- /check-addons.sh
|
||||
when:
|
||||
event: pull_request
|
121
.woodpecker/.releaser.yml
Normal file
121
.woodpecker/.releaser.yml
Normal file
|
@ -0,0 +1,121 @@
|
|||
matrix:
|
||||
include:
|
||||
- PHP_MAJOR_VERSION: 7.4
|
||||
PHP_VERSION: 7.4.18
|
||||
|
||||
depends_on:
|
||||
- code_standards_check
|
||||
|
||||
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
|
||||
skip_clone: true
|
||||
|
||||
pipeline:
|
||||
clone_friendica_base:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone https://github.com/friendica/friendica.git .
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
||||
clone_friendica_addon:
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git clone $CI_REPO_LINK addon
|
||||
- cd addon/
|
||||
- git checkout $CI_COMMIT_BRANCH
|
||||
- git fetch origin $CI_COMMIT_REF
|
||||
- git merge $CI_COMMIT_SHA
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
||||
composer_install:
|
||||
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||
commands:
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
- composer install --no-dev --optimize-autoloader
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
||||
create_artifacts:
|
||||
image: debian
|
||||
commands:
|
||||
- apt-get update
|
||||
- apt-get install bzip2
|
||||
- mkdir ./build
|
||||
- export VERSION="$(cat VERSION)"
|
||||
- export RELEASE="friendica-full-$VERSION"
|
||||
- export ARTIFACT="$RELEASE.tar.gz"
|
||||
- tar
|
||||
--transform "s,^,$RELEASE/,"
|
||||
-X mods/release-list-exclude.txt
|
||||
-T mods/release-list-include.txt
|
||||
-cvzf ./build/$ARTIFACT
|
||||
- cd ./build
|
||||
- sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
|
||||
- chmod 664 ./*
|
||||
- ls -lh
|
||||
- cat "$ARTIFACT.sum256"
|
||||
- sha256sum "$ARTIFACT"
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
||||
sign_artifacts:
|
||||
image: plugins/gpgsign
|
||||
settings:
|
||||
key:
|
||||
from_secret: gpg_key
|
||||
passphrase:
|
||||
from_secret: gpg_password
|
||||
files:
|
||||
- build/*
|
||||
exclude:
|
||||
- build/*.sum256
|
||||
detach_sign: true
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
||||
upload_artifacts:
|
||||
image: alpine
|
||||
secrets:
|
||||
- source: sftp_host
|
||||
target: lftp_host
|
||||
- source: sftp_user
|
||||
target: lftp_user
|
||||
- source: ssh_key
|
||||
target: lftp_key
|
||||
environment:
|
||||
LFTP_PORT: "22"
|
||||
LFTP_SOURCE: "build"
|
||||
LFTP_TARGET: "/http"
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
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
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: stable
|
||||
event: tag
|
Loading…
Reference in a new issue