Replace .drone.yml with .woodpecker tests
This commit is contained in:
parent
c371d2ec82
commit
cea4a8cb6c
7 changed files with 454 additions and 653 deletions
653
.drone.yml
653
.drone.yml
|
@ -1,653 +0,0 @@
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: Check messages.po
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Run default Xgettext
|
|
||||||
image: friendicaci/transifex
|
|
||||||
commands:
|
|
||||||
- ./bin/run_xgettext.sh
|
|
||||||
|
|
||||||
- name: Check default
|
|
||||||
image: friendicaci/transifex
|
|
||||||
commands:
|
|
||||||
- /check-messages.sh
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: Integrity checks
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Check database version
|
|
||||||
image: alpine
|
|
||||||
commands:
|
|
||||||
- export DBSTRUCTURE_VERSION="$(sed -rn "s/.*'DB_UPDATE_VERSION', ([0-9]+).*/\1/p" static/dbstructure.config.php)"
|
|
||||||
- export DATABASE_VERSION="$(sed -rn 's/.*DB_UPDATE_VERSION ([0-9]+).*/\1/p' database.sql)"
|
|
||||||
- echo "Database $DATABASE_VERSION - DB-Structure $DBSTRUCTURE_VERSION"
|
|
||||||
- if [[ "$DBSTRUCTURE_VERSION" != "$DATABASE_VERSION" ]]; then
|
|
||||||
echo "Database version mismatch.";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php7.3-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Test
|
|
||||||
image: php:7.3
|
|
||||||
commands:
|
|
||||||
- ./bin/composer.phar run lint
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php7.4-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Test
|
|
||||||
image: php:7.4
|
|
||||||
commands:
|
|
||||||
- ./bin/composer.phar run lint
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php8.0-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Test
|
|
||||||
image: php:8.0
|
|
||||||
commands:
|
|
||||||
- ./bin/composer.phar run lint
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php-cs check
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Install dependencies
|
|
||||||
image: composer
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- ./bin/composer.phar run cs:install
|
|
||||||
- name: Rebuild cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
rebuild: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Run coding standards check
|
|
||||||
image: friendicaci/php-cs
|
|
||||||
commands:
|
|
||||||
- export CHANGED_FILES="$(git diff --name-status ${DRONE_COMMIT_BEFORE}..${DRONE_COMMIT_AFTER} | grep ^A | cut -f2)"
|
|
||||||
- /check-php-cs.sh
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /tmp/drone-cache
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php7.4-database-check
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- Integrity checks
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- ./bin/composer.phar validate
|
|
||||||
- ./bin/composer.phar install --prefer-dist
|
|
||||||
- name: Rebuild cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
rebuild: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Recreate database.sql
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
environment:
|
|
||||||
MYSQL_HOST: "mariadb"
|
|
||||||
MYSQL_PORT: 3306
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
REDIS_HOST: "redis"
|
|
||||||
MEMCACHED_HOST: "memcached"
|
|
||||||
MEMCACHE_HOST: "memcached"
|
|
||||||
XDEBUG_MODE: "coverage"
|
|
||||||
commands:
|
|
||||||
- phpenmod xdebug
|
|
||||||
- cp config/local-sample.config.php config/local.config.php
|
|
||||||
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
|
||||||
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
|
||||||
- php ./bin/console.php dbstructure dumpsql > database.sql
|
|
||||||
- name: Check database.sql
|
|
||||||
image: alpine/git
|
|
||||||
commands:
|
|
||||||
- git update-index --refresh
|
|
||||||
- git diff-index --quiet HEAD --
|
|
||||||
- if [[ $? -ne 0 ]]; then
|
|
||||||
echo "database.sql mismatch.";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
services:
|
|
||||||
- name: mariadb
|
|
||||||
image: mariadb:latest
|
|
||||||
environment:
|
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
tmpfs:
|
|
||||||
- /var/lib/mysql
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /tmp/drone-cache
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php7.3-mariadb
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- php7.3-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php73_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php7.3:php7.3.28
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- ./bin/composer.phar validate
|
|
||||||
- ./bin/composer.phar install --prefer-dist
|
|
||||||
- name: Rebuild cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
rebuild: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php73_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Test Friendica
|
|
||||||
image: friendicaci/php7.3:php7.3.28
|
|
||||||
environment:
|
|
||||||
MYSQL_HOST: "mariadb"
|
|
||||||
MYSQL_PORT: 3306
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
REDIS_HOST: "redis"
|
|
||||||
MEMCACHED_HOST: "memcached"
|
|
||||||
MEMCACHE_HOST: "memcached"
|
|
||||||
commands:
|
|
||||||
- cp config/local-sample.config.php config/local.config.php
|
|
||||||
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
|
||||||
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
|
||||||
- phpunit --configuration tests/phpunit.xml
|
|
||||||
|
|
||||||
services:
|
|
||||||
- name: mariadb
|
|
||||||
image: mariadb:latest
|
|
||||||
environment:
|
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
tmpfs:
|
|
||||||
- /var/lib/mysql
|
|
||||||
|
|
||||||
- name: memcached
|
|
||||||
image: memcached
|
|
||||||
|
|
||||||
- name: redis
|
|
||||||
image: redis
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /tmp/drone-cache
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php7.4-mariadb
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- php7.4-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- ./bin/composer.phar validate
|
|
||||||
- ./bin/composer.phar install --prefer-dist
|
|
||||||
- name: Rebuild cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
rebuild: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Test Friendica
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
environment:
|
|
||||||
MYSQL_HOST: "mariadb"
|
|
||||||
MYSQL_PORT: 3306
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
REDIS_HOST: "redis"
|
|
||||||
MEMCACHED_HOST: "memcached"
|
|
||||||
MEMCACHE_HOST: "memcached"
|
|
||||||
XDEBUG_MODE: "coverage"
|
|
||||||
commands:
|
|
||||||
- phpenmod xdebug
|
|
||||||
- cp config/local-sample.config.php config/local.config.php
|
|
||||||
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
|
||||||
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
|
||||||
- phpunit --configuration tests/phpunit.xml --coverage-clover clover.xml
|
|
||||||
- name: Codecov
|
|
||||||
image: plugins/codecov
|
|
||||||
when:
|
|
||||||
repo:
|
|
||||||
- friendica/friendica
|
|
||||||
settings:
|
|
||||||
token:
|
|
||||||
from_secret: codecov-token
|
|
||||||
files:
|
|
||||||
- clover.xml
|
|
||||||
|
|
||||||
services:
|
|
||||||
- name: mariadb
|
|
||||||
image: mariadb:latest
|
|
||||||
environment:
|
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
tmpfs:
|
|
||||||
- /var/lib/mysql
|
|
||||||
|
|
||||||
- name: memcached
|
|
||||||
image: memcached
|
|
||||||
|
|
||||||
- name: redis
|
|
||||||
image: redis
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /tmp/drone-cache
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: php8.0-mariadb
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- php8.0-lint
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php80_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php8.0:php8.0.5
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- ./bin/composer.phar validate
|
|
||||||
- ./bin/composer.phar install --prefer-dist
|
|
||||||
- name: Rebuild cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
rebuild: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php80_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /tmp/cache
|
|
||||||
- name: Test Friendica
|
|
||||||
image: friendicaci/php8.0:php8.0.5
|
|
||||||
environment:
|
|
||||||
MYSQL_HOST: "mariadb"
|
|
||||||
MYSQL_PORT: 3306
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
REDIS_HOST: "redis"
|
|
||||||
MEMCACHED_HOST: "memcached"
|
|
||||||
MEMCACHE_HOST: "memcached"
|
|
||||||
commands:
|
|
||||||
- cp config/local-sample.config.php config/local.config.php
|
|
||||||
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
|
||||||
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
|
||||||
- phpunit --configuration tests/phpunit.xml
|
|
||||||
|
|
||||||
services:
|
|
||||||
- name: mariadb
|
|
||||||
image: mariadb:latest
|
|
||||||
environment:
|
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
|
||||||
MYSQL_DATABASE: "test"
|
|
||||||
MYSQL_PASSWORD: "test"
|
|
||||||
MYSQL_USER: "test"
|
|
||||||
tmpfs:
|
|
||||||
- /var/lib/mysql
|
|
||||||
|
|
||||||
- name: memcached
|
|
||||||
image: memcached
|
|
||||||
|
|
||||||
- name: redis
|
|
||||||
image: redis
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /tmp/drone-cache
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: continuous-deployment
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- php7.3-mariadb
|
|
||||||
- php7.4-mariadb
|
|
||||||
- php8.0-mariadb
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
repo:
|
|
||||||
- friendica/friendica
|
|
||||||
branch:
|
|
||||||
- develop
|
|
||||||
- 20*-rc
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
node:
|
|
||||||
node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path:
|
|
||||||
/tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- composer validate
|
|
||||||
- composer install --no-dev --optimize-autoloader
|
|
||||||
- name: Create artifacts
|
|
||||||
image: debian
|
|
||||||
commands:
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install bzip2
|
|
||||||
- mkdir ./build
|
|
||||||
- export VERSION="$(cat VERSION)"
|
|
||||||
- # Create artifact
|
|
||||||
- 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
|
|
||||||
- # 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
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- php7.3-mariadb
|
|
||||||
- php7.4-mariadb
|
|
||||||
- php8.0-mariadb
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
repo:
|
|
||||||
- friendica/friendica
|
|
||||||
branch:
|
|
||||||
- stable
|
|
||||||
event:
|
|
||||||
- tag
|
|
||||||
|
|
||||||
node:
|
|
||||||
node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Restore cache
|
|
||||||
image: meltwater/drone-cache:dev
|
|
||||||
settings:
|
|
||||||
backend: "filesystem"
|
|
||||||
restore: true
|
|
||||||
cache_key: '{{ .Repo.Name }}_php74_{{ arch }}_{{ os }}'
|
|
||||||
archive_format: "gzip"
|
|
||||||
mount:
|
|
||||||
- '.composer'
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path:
|
|
||||||
/tmp/cache
|
|
||||||
- name: Composer install
|
|
||||||
image: friendicaci/php7.4:php7.4.18
|
|
||||||
commands:
|
|
||||||
- export COMPOSER_HOME=.composer
|
|
||||||
- composer validate
|
|
||||||
- composer install --no-dev --optimize-autoloader
|
|
||||||
- name: Create artifacts
|
|
||||||
image: debian
|
|
||||||
commands:
|
|
||||||
- apt-get update
|
|
||||||
- apt-get install bzip2
|
|
||||||
- mkdir ./build
|
|
||||||
- export VERSION="$(cat VERSION)"
|
|
||||||
- # Create artifact
|
|
||||||
- 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
|
|
||||||
- # 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
|
|
33
.woodpecker/.code_standards_check.yml
Normal file
33
.woodpecker/.code_standards_check.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
pipeline:
|
||||||
|
restore_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
restore: true
|
||||||
|
cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
composer_install:
|
||||||
|
image: composer
|
||||||
|
commands:
|
||||||
|
- export COMPOSER_HOME=.composer
|
||||||
|
- ./bin/composer.phar run cs:install
|
||||||
|
rebuild_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
rebuild: true
|
||||||
|
cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
check:
|
||||||
|
image: friendicaci/php-cs
|
||||||
|
commands:
|
||||||
|
- export CHANGED_FILES="$(git diff --name-status ${CI_PREV_COMMIT_SHA}..${CI_COMMIT_SHA} | grep ^A | cut -f2)"
|
||||||
|
- /check-php-cs.sh
|
116
.woodpecker/.continuous-deployment.yml
Normal file
116
.woodpecker/.continuous-deployment.yml
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- PHP_MAJOR_VERSION: 7.4
|
||||||
|
PHP_VERSION: 7.4.18
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- phpunit
|
||||||
|
- code_standards_check
|
||||||
|
- database_checks
|
||||||
|
- messages.po_check
|
||||||
|
|
||||||
|
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
restore_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
restore: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
when:
|
||||||
|
repo: friendica/friendica
|
||||||
|
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
|
||||||
|
branch: [ develop, '*-rc' ]
|
||||||
|
event: push
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
branch: [ develop, '*-rc' ]
|
||||||
|
event: push
|
85
.woodpecker/.database_checks.yml
Normal file
85
.woodpecker/.database_checks.yml
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- PHP_MAJOR_VERSION: 7.4
|
||||||
|
PHP_VERSION: 7.4.18
|
||||||
|
|
||||||
|
branches:
|
||||||
|
exclude: [ stable ]
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
db_version_match:
|
||||||
|
image: friendicaci/transifex
|
||||||
|
commands:
|
||||||
|
- export DBSTRUCTURE_VERSION="$(sed -rn "s/.*'DB_UPDATE_VERSION', ([0-9]+).*/\1/p" static/dbstructure.config.php)"
|
||||||
|
- export DATABASE_VERSION="$(sed -rn 's/.*DB_UPDATE_VERSION ([0-9]+).*/\1/p' database.sql)"
|
||||||
|
- echo "Database $DATABASE_VERSION - DB-Structure $DBSTRUCTURE_VERSION"
|
||||||
|
- if [ "$DBSTRUCTURE_VERSION" != "$DATABASE_VERSION" ]; then
|
||||||
|
echo "Database version mismatch.";
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
restore_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
restore: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
composer_install:
|
||||||
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||||
|
commands:
|
||||||
|
- export COMPOSER_HOME=.composer
|
||||||
|
- ./bin/composer.phar validate
|
||||||
|
- ./bin/composer.phar install --prefer-dist
|
||||||
|
volumes:
|
||||||
|
- /etc/hosts:/etc/hosts
|
||||||
|
rebuild_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
rebuild: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
recreate_database.sql:
|
||||||
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||||
|
environment:
|
||||||
|
MYSQL_HOST: "mariadb"
|
||||||
|
MYSQL_PORT: "3306"
|
||||||
|
MYSQL_DATABASE: "test"
|
||||||
|
MYSQL_PASSWORD: "test"
|
||||||
|
MYSQL_USER: "test"
|
||||||
|
REDIS_HOST: "redis"
|
||||||
|
MEMCACHED_HOST: "memcached"
|
||||||
|
MEMCACHE_HOST: "memcached"
|
||||||
|
XDEBUG_MODE: "coverage"
|
||||||
|
commands:
|
||||||
|
- phpenmod xdebug
|
||||||
|
- cp config/local-sample.config.php config/local.config.php
|
||||||
|
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
||||||
|
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
||||||
|
- php ./bin/console.php dbstructure dumpsql > database.sql
|
||||||
|
check_database.sql:
|
||||||
|
image: alpine/git
|
||||||
|
commands:
|
||||||
|
- git update-index --refresh
|
||||||
|
- git diff-index --quiet HEAD --
|
||||||
|
- if [[ $? -ne 0 ]]; then
|
||||||
|
echo "database.sql mismatch.";
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:latest
|
||||||
|
environment:
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
||||||
|
MYSQL_DATABASE: "test"
|
||||||
|
MYSQL_PASSWORD: "test"
|
||||||
|
MYSQL_USER: "test"
|
12
.woodpecker/.messages.po_check.yml
Normal file
12
.woodpecker/.messages.po_check.yml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
pipeline:
|
||||||
|
build_xgettext:
|
||||||
|
image: friendicaci/transifex
|
||||||
|
commands:
|
||||||
|
- ./bin/run_xgettext.sh
|
||||||
|
check:
|
||||||
|
image: friendicaci/transifex
|
||||||
|
commands:
|
||||||
|
- /check-messages.sh
|
||||||
|
|
||||||
|
branches:
|
||||||
|
exclude: [ stable ]
|
96
.woodpecker/.phpunit.yml
Normal file
96
.woodpecker/.phpunit.yml
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- PHP_MAJOR_VERSION: 7.3
|
||||||
|
PHP_VERSION: 7.3.28
|
||||||
|
- PHP_MAJOR_VERSION: 7.4
|
||||||
|
PHP_VERSION: 7.4.18
|
||||||
|
- PHP_MAJOR_VERSION: 8.0
|
||||||
|
PHP_VERSION: 8.0.5
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
php-lint:
|
||||||
|
image: php:${PHP_MAJOR_VERSION}
|
||||||
|
group: lint
|
||||||
|
commands:
|
||||||
|
- ./bin/composer.phar run lint
|
||||||
|
restore_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
restore: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
composer_install:
|
||||||
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||||
|
commands:
|
||||||
|
- export COMPOSER_HOME=.composer
|
||||||
|
- ./bin/composer.phar validate
|
||||||
|
- ./bin/composer.phar install --prefer-dist
|
||||||
|
volumes:
|
||||||
|
- /etc/hosts:/etc/hosts
|
||||||
|
rebuild_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
rebuild: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
test:
|
||||||
|
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||||
|
environment:
|
||||||
|
MYSQL_HOST: "mariadb"
|
||||||
|
MYSQL_PORT: "3306"
|
||||||
|
MYSQL_DATABASE: "test"
|
||||||
|
MYSQL_PASSWORD: "test"
|
||||||
|
MYSQL_USER: "test"
|
||||||
|
REDIS_HOST: "redis"
|
||||||
|
MEMCACHED_HOST: "memcached"
|
||||||
|
MEMCACHE_HOST: "memcached"
|
||||||
|
commands:
|
||||||
|
- cp config/local-sample.config.php config/local.config.php
|
||||||
|
- if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
|
||||||
|
- mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
|
||||||
|
- if [ "${PHP_MAJOR_VERSION}" = "7.4" -a "${CI_REPO}" = "friendica/friendica" ]; then
|
||||||
|
phpenmod xdebug;
|
||||||
|
export XDEBUG_MODE=coverage;
|
||||||
|
phpunit --configuration tests/phpunit.xml --coverage-clover clover.xml;
|
||||||
|
else
|
||||||
|
phpunit --configuration tests/phpunit.xml;
|
||||||
|
fi
|
||||||
|
|
||||||
|
codecov:
|
||||||
|
image: plugins/codecov
|
||||||
|
when:
|
||||||
|
matrix:
|
||||||
|
PHP_MAJOR_VERSION: 7.4
|
||||||
|
PHP_VERSION: 7.4.18
|
||||||
|
repo:
|
||||||
|
- friendica/friendica
|
||||||
|
settings:
|
||||||
|
token:
|
||||||
|
from_secret: codecov-token
|
||||||
|
files:
|
||||||
|
- clover.xml
|
||||||
|
|
||||||
|
services:
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:latest
|
||||||
|
environment:
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
|
||||||
|
MYSQL_DATABASE: "test"
|
||||||
|
MYSQL_PASSWORD: "test"
|
||||||
|
MYSQL_USER: "test"
|
||||||
|
|
||||||
|
memcached:
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
112
.woodpecker/.releaser.yml
Normal file
112
.woodpecker/.releaser.yml
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- PHP_MAJOR_VERSION: 7.4
|
||||||
|
PHP_VERSION: 7.4.18
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- phpunit
|
||||||
|
- code_standards_check
|
||||||
|
|
||||||
|
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
restore_cache:
|
||||||
|
image: meltwater/drone-cache:dev
|
||||||
|
settings:
|
||||||
|
backend: "filesystem"
|
||||||
|
restore: true
|
||||||
|
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||||
|
archive_format: "gzip"
|
||||||
|
mount:
|
||||||
|
- '.composer'
|
||||||
|
volumes:
|
||||||
|
- /tmp/drone-cache:/tmp/cache
|
||||||
|
when:
|
||||||
|
repo: friendica/friendica
|
||||||
|
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
|
||||||
|
when:
|
||||||
|
repo: friendica/friendica
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
branch: stable
|
||||||
|
event: tag
|
Loading…
Reference in a new issue