X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=.drone.yml;h=99692d32cf1ee67ec9d98c497400f3586fa1ddf4;hb=55147a6b44164f28b64a876a48140a7cd821802f;hp=43df677aa8dbe3d5dc406f7f624bf31ec3409d6e;hpb=c0b2f5d960b3d9dbc97c0078e8f8313b644172b6;p=friendica.git diff --git a/.drone.yml b/.drone.yml index 43df677aa8..99692d32cf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,6 +15,22 @@ steps: --- 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: @@ -87,6 +103,88 @@ steps: - 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: @@ -96,6 +194,9 @@ kind: pipeline type: docker name: php7.3-mariadb +depends_on: + - php7.3-lint + steps: - name: Restore cache image: meltwater/drone-cache:dev @@ -170,6 +271,9 @@ kind: pipeline type: docker name: php7.4-mariadb +depends_on: + - php7.4-lint + steps: - name: Restore cache image: meltwater/drone-cache:dev @@ -256,6 +360,9 @@ kind: pipeline type: docker name: php8.0-mariadb +depends_on: + - php8.0-lint + steps: - name: Restore cache image: meltwater/drone-cache:dev @@ -330,6 +437,11 @@ kind: pipeline type: docker name: continuous-deployment +depends_on: + - php7.3-mariadb + - php7.4-mariadb + - php8.0-mariadb + trigger: repo: - friendica/friendica @@ -376,14 +488,27 @@ steps: --transform "s,^,$RELEASE/," -X mods/release-list-exclude.txt -T mods/release-list-include.txt - -cvjf ./build/$ARTIFACT + -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: @@ -422,6 +547,11 @@ kind: pipeline type: docker name: release-deployment +depends_on: + - php7.3-mariadb + - php7.4-mariadb + - php8.0-mariadb + trigger: repo: - friendica/friendica @@ -460,8 +590,6 @@ steps: - apt-get install bzip2 - mkdir ./build - export VERSION="$(cat VERSION)" - - mkdir ./build - - export VERSION="$(cat VERSION)" - # Create artifact - export RELEASE="friendica-full-$VERSION" - export ARTIFACT="$RELEASE.tar.gz" @@ -469,14 +597,27 @@ steps: --transform "s,^,$RELEASE/," -X mods/release-list-exclude.txt -T mods/release-list-include.txt - -cvjf ./build/$ARTIFACT + -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: