X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=.drone.yml;h=99692d32cf1ee67ec9d98c497400f3586fa1ddf4;hb=903d829f4988592c102495eab82d523d7d093300;hp=887ccfdf0a1f6e0bc6a65dc4036bc3d77b41aaa2;hpb=453b94f9b759a3698e713587d84674325d952e48;p=friendica.git diff --git a/.drone.yml b/.drone.yml index 887ccfdf0a..99692d32cf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,493 +1,653 @@ kind: pipeline -name: mysql8.0-php7.1 +type: docker +name: Check messages.po steps: -- name: mysql8.0-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - NOCOVERAGE=true ./autotest.sh mysql - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql - -node: - test: db - -services: -- name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql - -volumes: -- name: cache - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: Run default Xgettext + image: friendicaci/transifex + commands: + - ./bin/run_xgettext.sh + + - name: Check default + image: friendicaci/transifex + commands: + - /check-messages.sh --- kind: pipeline -name: mysql8.0-php7.2 +type: docker +name: Integrity checks steps: -- name: mysql8.0-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true ./autotest.sh mysql - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql - -node: - test: db - -services: -- name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql - -volumes: - - name: cache - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + - 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 -name: mysql8.0-php7.3 +type: docker +name: php7.3-lint steps: -- name: mysql8.0-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true ./autotest.sh mysql - environment: - MYSQL_USERNAME: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mysql - -node: - test: db - -services: -- name: mysql - image: mysql:8.0 - command: [ "--default-authentication-plugin=mysql_native_password" ] - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql - -volumes: - - name: cache - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: Test + image: php:7.3 + commands: + - ./bin/composer.phar run lint --- kind: pipeline -name: mariadb10.1-php7.1 +type: docker +name: php7.4-lint steps: -- name: mariadb10.1-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - phpenmod xdebug - - sleep 20 - - ./autotest.sh mariadb - - wget https://codecov.io/bash -O codecov.sh - - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - environment: - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mariadb - -node: - test: db - -services: -- name: mariadb - image: mariadb:10.1 - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql - -volumes: - - name: cache - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + - name: Test + image: php:7.4 + commands: + - ./bin/composer.phar run lint --- kind: pipeline -name: mariadb10.1-php7.2 +type: docker +name: php8.0-lint steps: -- name: mariadb10.1-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true ./autotest.sh mariadb - environment: - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mariadb + - name: Test + image: php:8.0 + commands: + - ./bin/composer.phar run lint +--- +kind: pipeline +type: docker +name: php-cs check -node: - test: db +trigger: + event: + - pull_request -services: -- name: mariadb - image: mariadb:10.1 - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql +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 - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + host: + path: /tmp/drone-cache --- kind: pipeline -name: mariadb10.1-php7.3 +type: docker +name: php7.4-database-check -steps: -- name: mariadb10.1-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true ./autotest.sh mariadb - environment: - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - MYSQL_HOST: mariadb +depends_on: + - Integrity checks -node: - test: db +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:10.1 - environment: - MYSQL_ROOT_PASSWORD: friendica - MYSQL_USER: friendica - MYSQL_PASSWORD: friendica - MYSQL_DATABASE: friendica - volumes: - - name: cache - path: /var/lib/mysql + - 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 - temp: {} - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push + host: + path: /tmp/drone-cache --- kind: pipeline -name: redis-php7.1 +type: docker +name: php7.3-mariadb -steps: -- name: redis-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - phpenmod xdebug - - sleep 20 - - NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql - - wget https://codecov.io/bash -O codecov.sh - - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - environment: - REDIS_HOST: redis - -services: -- name: redis - image: redis - -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push ---- -kind: pipeline -name: redis-php7.2 +depends_on: + - php7.3-lint steps: -- name: redis-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql - environment: - REDIS_HOST: redis + - 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: redis - image: redis + - 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 -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: redis-php7.3 - -steps: -- name: redis-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql - environment: - REDIS_HOST: redis - -services: -- name: redis - image: redis +type: docker +name: php7.4-mariadb -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push - ---- -kind: pipeline -name: memcache-php7.1 +depends_on: + - php7.4-lint steps: -- name: memcache-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: + - 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 - - sleep 20 - - NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql - - wget https://codecov.io/bash -O codecov.sh - - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - environment: - MEMCACHE_HOST: memcached + - 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: memcached - image: memcached + - 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 -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: memcache-php7.2 +type: docker +name: php8.0-mariadb + +depends_on: + - php8.0-lint steps: -- name: memcache-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql - environment: - MEMCACHE_HOST: memcached + - 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: memcached - image: memcached + - 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 -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: memcache-php7.3 - -steps: -- name: memcache-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql - environment: - MEMCACHE_HOST: memcached +type: docker +name: continuous-deployment -services: -- name: memcached - image: memcached +depends_on: + - php7.3-mariadb + - php7.4-mariadb + - php8.0-mariadb trigger: + repo: + - friendica/friendica branch: -# - master - develop -# - "*-rc" -# event: -# - pull_request -# - push + - 20*-rc + event: + - push - ---- -kind: pipeline -name: memcached-php7.1 +node: + node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca steps: -- name: memcached-php7.1 - image: friendicaci/php7.1:php7.1.32 - commands: - - phpenmod xdebug - - sleep 20 - - NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql - - wget https://codecov.io/bash -O codecov.sh - - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi" - environment: - MEMCACHED_HOST: memcached - -services: -- name: memcached - image: memcached + - 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 -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push +volumes: + - name: cache + host: + path: /tmp/drone-cache --- kind: pipeline -name: memcached-php7.2 +type: docker +name: release-deployment -steps: -- name: memcached-php7.2 - image: friendicaci/php7.2:php7.2.22 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql - environment: - MEMCACHED_HOST: memcached - -services: -- name: memcached - image: memcached +depends_on: + - php7.3-mariadb + - php7.4-mariadb + - php8.0-mariadb trigger: + repo: + - friendica/friendica branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push ---- -kind: pipeline -name: memcached-php7.3 + - stable + event: + - tag -steps: -- name: memcached-php7.3 - image: friendicaci/php7.3:php7.3.9 - commands: - - NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql - environment: - MEMCACHED_HOST: memcached +node: + node: releaser # This prevents executing this pipeline at other servers than drone.friendi.ca -services: -- name: memcached - image: memcached +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 -trigger: - branch: -# - master - - develop -# - "*-rc" -# event: -# - pull_request -# - push +volumes: + - name: cache + host: + path: /tmp/drone-cache