From c16a9a809525b6801f944a4177eedf1fc08bfe01 Mon Sep 17 00:00:00 2001 From: Phil Davis Date: Tue, 7 Sep 2021 15:33:42 +0545 Subject: [PATCH] Update .drone.star and drop PHP 7.2 in CI --- .drone.star | 130 ++++++++++++++++++++++++++++++++++++++++++---------- Makefile | 3 -- 2 files changed, 107 insertions(+), 26 deletions(-) diff --git a/.drone.star b/.drone.star index 24b8aec..e61a47d 100644 --- a/.drone.star +++ b/.drone.star @@ -22,12 +22,11 @@ config = { "phpunit": { "allDatabases": { "phpVersions": [ - "7.2", + "7.3", ], }, "reducedDatabases": { "phpVersions": [ - "7.3", "7.4", ], "databases": [ @@ -75,7 +74,7 @@ def main(ctx): return before + coverageTests + afterCoverageTests + nonCoverageTests + stages + after def beforePipelines(ctx): - return codestyle(ctx) + jscodestyle(ctx) + checkForRecentBuilds(ctx) + phpstan(ctx) + phan(ctx) + checkStarlark() + return codestyle(ctx) + jscodestyle(ctx) + checkForRecentBuilds(ctx) + phpstan(ctx) + phan(ctx) + phplint(ctx) + checkStarlark() def coveragePipelines(ctx): # All unit test pipelines that have coverage or other test analysis reported @@ -122,7 +121,7 @@ def codestyle(ctx): return pipelines default = { - "phpVersions": ["7.2"], + "phpVersions": ["7.3"], } if "defaults" in config: @@ -287,9 +286,10 @@ def phpstan(ctx): return pipelines default = { - "phpVersions": ["7.2"], + "phpVersions": ["7.3"], "logLevel": "2", "extraApps": {}, + "enableApp": True, } if "defaults" in config: @@ -329,7 +329,7 @@ def phpstan(ctx): "steps": installCore(ctx, "daily-master-qa", "sqlite", False) + installApp(ctx, phpVersion) + installExtraApps(phpVersion, params["extraApps"]) + - setupServerAndApp(ctx, phpVersion, params["logLevel"]) + + setupServerAndApp(ctx, phpVersion, params["logLevel"], False, params["enableApp"]) + [ { "name": "phpstan", @@ -363,7 +363,7 @@ def phan(ctx): return pipelines default = { - "phpVersions": ["7.2", "7.3", "7.4"], + "phpVersions": ["7.3", "7.4"], } if "defaults" in config: @@ -434,7 +434,7 @@ def build(ctx): return pipelines default = { - "phpVersions": ["7.2"], + "phpVersions": ["7.3"], "commands": [ "make dist", ], @@ -531,6 +531,7 @@ def javascript(ctx, withCoverage): "extraCommandsBeforeTestRun": [], "extraTeardown": [], "skip": False, + "enableApp": True, } if "defaults" in config: @@ -572,12 +573,12 @@ def javascript(ctx, withCoverage): }, "steps": installCore(ctx, "daily-master-qa", "sqlite", False) + installApp(ctx, "7.4") + - setupServerAndApp(ctx, "7.4", params["logLevel"]) + + setupServerAndApp(ctx, "7.4", params["logLevel"], False, params["enableApp"]) + params["extraSetup"] + [ { "name": "js-tests", - "image": "owncloudci/php:8.0", + "image": "owncloudci/nodejs:%s" % getNodeJsVersion(), "pull": "always", "environment": params["extraEnvironment"], "commands": params["extraCommandsBeforeTestRun"] + [ @@ -632,7 +633,7 @@ def phpTests(ctx, testType, withCoverage): errorFound = False default = { - "phpVersions": ["7.2", "7.3", "7.4"], + "phpVersions": ["7.3", "7.4"], "databases": [ "sqlite", "mariadb:10.2", @@ -652,6 +653,7 @@ def phpTests(ctx, testType, withCoverage): "extraApps": {}, "extraTeardown": [], "skip": False, + "enableApp": True, } if "defaults" in config: @@ -744,7 +746,7 @@ def phpTests(ctx, testType, withCoverage): "steps": installCore(ctx, "daily-master-qa", db, False) + installApp(ctx, phpVersion) + installExtraApps(phpVersion, params["extraApps"]) + - setupServerAndApp(ctx, phpVersion, params["logLevel"]) + + setupServerAndApp(ctx, phpVersion, params["logLevel"], False, params["enableApp"]) + setupCeph(params["cephS3"]) + setupScality(params["scalityS3"]) + params["extraSetup"] + @@ -828,7 +830,7 @@ def acceptance(ctx): default = { "servers": ["daily-master-qa", "latest"], "browsers": ["chrome"], - "phpVersions": ["7.2"], + "phpVersions": ["7.4"], "databases": ["mariadb:10.2"], "esVersions": ["none"], "federatedServerNeeded": False, @@ -858,6 +860,7 @@ def acceptance(ctx): "debugSuites": [], "skipExceptParts": [], "earlyFail": True, + "enableApp": True, } if "defaults" in config: @@ -908,7 +911,7 @@ def acceptance(ctx): params["extraSetup"] = [ { "name": "configure-app", - "image": "owncloudci/php:7.2", + "image": "owncloudci/php:7.4", "pull": "always", "commands": [ "cd /var/www/owncloud/server/apps/files_primary_s3", @@ -1074,7 +1077,7 @@ def acceptance(ctx): (installFederated(testConfig["server"], testConfig["phpVersion"], testConfig["logLevel"], testConfig["database"], federationDbSuffix) + owncloudLog("federated") if testConfig["federatedServerNeeded"] else []) + installApp(ctx, testConfig["phpVersion"]) + installExtraApps(testConfig["phpVersion"], testConfig["extraApps"]) + - setupServerAndApp(ctx, testConfig["phpVersion"], testConfig["logLevel"], testConfig["federatedServerNeeded"]) + + setupServerAndApp(ctx, testConfig["phpVersion"], testConfig["logLevel"], testConfig["federatedServerNeeded"], params["enableApp"]) + owncloudLog("server") + setupCeph(testConfig["cephS3"]) + setupScality(testConfig["scalityS3"]) + @@ -1371,10 +1374,11 @@ def elasticSearchService(esVersion): return [{ "name": "elasticsearch", - "image": "webhippie/elasticsearch:%s" % esVersion, + "image": "owncloudops/elasticsearch:%s" % esVersion, "pull": "always", "environment": { - "ELASTICSEARCH_PLUGINS_INSTALL": "ingest-attachment", + "ELASTICSEARCH_ROOT_LOG_LEVEL": "warn", + "ELASTICSEARCH_BOOTSTRAP_MEMORY_LOCK": "false", }, }] @@ -1487,6 +1491,13 @@ def getDbDatabase(db): return "owncloud" +def getNodeJsVersion(): + if "nodeJsVersion" not in config: + # We use nodejs 14 as the default + return "14" + else: + return config["nodeJsVersion"] + def cacheRestore(): return [{ "name": "cache-restore", @@ -1603,7 +1614,23 @@ def installApp(ctx, phpVersion): if "appInstallCommand" not in config: return [] - return [{ + if "buildJsDeps" not in config: + installJsDeps = False + else: + installJsDeps = config["buildJsDeps"] + + return ([ + { + "name": "install-app-js-%s" % config["app"], + "image": "owncloudci/nodejs:%s" % getNodeJsVersion(), + "pull": "always", + "commands": [ + "cd /var/www/owncloud/server/apps/%s" % config["app"], + "make install-js-deps", + "make build-dev", + ], + }, + ] if installJsDeps else []) + [{ "name": "install-app-%s" % ctx.repo.name, "image": "owncloudci/php:%s" % phpVersion, "pull": "always", @@ -1613,7 +1640,7 @@ def installApp(ctx, phpVersion): ], }] -def setupServerAndApp(ctx, phpVersion, logLevel, federatedServerNeeded = False): +def setupServerAndApp(ctx, phpVersion, logLevel, federatedServerNeeded = False, enableApp = True): return [{ "name": "setup-server-%s" % ctx.repo.name, "image": "owncloudci/php:%s" % phpVersion, @@ -1621,7 +1648,7 @@ def setupServerAndApp(ctx, phpVersion, logLevel, federatedServerNeeded = False): "commands": [ "cd %s" % dir["server"], "php occ a:l", - "php occ a:e %s" % ctx.repo.name, + "php occ a:e %s" % ctx.repo.name if enableApp else "", "php occ a:e testing", "php occ a:l", "php occ config:system:set trusted_domains 1 --value=server", @@ -1648,7 +1675,7 @@ def setupCeph(serviceParams): return [{ "name": "setup-ceph", - "image": "owncloudci/php:7.2", + "image": "owncloudci/php:7.4", "pull": "always", "commands": setupCommands + ([ "./apps/files_primary_s3/tests/drone/create-bucket.sh", @@ -1676,7 +1703,7 @@ def setupScality(serviceParams): return [{ "name": "setup-scality", - "image": "owncloudci/php:7.2", + "image": "owncloudci/php:7.4", "pull": "always", "commands": setupCommands + ([ "php occ s3:create-bucket owncloud --accept-warning", @@ -1691,7 +1718,7 @@ def setupElasticSearch(esVersion): return [{ "name": "setup-es", - "image": "owncloudci/php:7.2", + "image": "owncloudci/php:7.4", "pull": "always", "commands": [ "cd %s" % dir["server"], @@ -1930,3 +1957,60 @@ def checkStarlark(): ], }, }] + +def phplint(ctx): + pipelines = [] + + if "phplint" not in config: + return pipelines + + if type(config["phplint"]) == "bool": + if not config["phplint"]: + return pipelines + + result = { + "kind": "pipeline", + "type": "docker", + "name": "lint-test", + "workspace": { + "base": "/var/www/owncloud", + "path": "server/apps/%s" % ctx.repo.name, + }, + "steps": installNPM() + + lintTest(), + "depends_on": [], + "trigger": { + "ref": [ + "refs/heads/master", + "refs/tags/**", + "refs/pull/**", + ], + }, + } + + for branch in config["branches"]: + result["trigger"]["ref"].append("refs/heads/%s" % branch) + + pipelines.append(result) + + return pipelines + +def installNPM(): + return [{ + "name": "npm-install", + "image": "owncloudci/nodejs:%s" % getNodeJsVersion(), + "pull": "always", + "commands": [ + "yarn install --frozen-lockfile", + ], + }] + +def lintTest(): + return [{ + "name": "lint-test", + "image": "owncloudci/php:7.4", + "pull": "always", + "commands": [ + "make test-lint", + ], + }] diff --git a/Makefile b/Makefile index 2c6cf25..3b55fe8 100644 --- a/Makefile +++ b/Makefile @@ -5,9 +5,6 @@ SHELL := /bin/bash COMPOSER_BIN := $(shell command -v composer 2> /dev/null) -ifndef COMPOSER_BIN - $(warning composer is not available on your system, please install composer) -endif app_name=$(notdir $(CURDIR)) project_directory=$(CURDIR)/../$(app_name)