From 69e0da0096dcdd3a63e1e9c44b7408d3aba0ec58 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 30 Sep 2020 11:42:26 +0200 Subject: [PATCH] Send coverage to S3 Cache --- .drone.star | 79 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 72 insertions(+), 7 deletions(-) diff --git a/.drone.star b/.drone.star index 3c64628d02..e8178d241c 100644 --- a/.drone.star +++ b/.drone.star @@ -117,6 +117,7 @@ def testPipelines(ctx): pipelines.append(testing(ctx, module)) pipelines += [ + uploadCoverage(ctx), localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'owncloud'), localApiTests(ctx, config['apiTests']['coreBranch'], config['apiTests']['coreCommit'], 'ocis') ] @@ -182,6 +183,7 @@ def testing(ctx, module): 'commands': [ 'cd %s' % (module), 'make test', + 'mv coverage.out %s_coverage.out' % (module), ], 'volumes': [ { @@ -191,15 +193,25 @@ def testing(ctx, module): ], }, { - 'name': 'codacy', - 'image': 'plugins/codacy:1', - 'pull': 'always', + 'name': 'coverage-cache', + 'image': 'plugins/s3', 'settings': { - 'token': { - 'from_secret': 'codacy_token', + 'endpoint': { + 'from_secret': 'cache_s3_endpoint' }, - }, - }, + 'bucket': 'cache', + 'source': '%s/%s_coverage.out' % (module, module), + 'target': '%s/%s/coverage' % (ctx.repo.slug, ctx.build.commit + '-${DRONE_BUILD_NUMBER}'), + 'path_style': True, + 'strip_prefix': module, + 'access_key': { + 'from_secret': 'cache_s3_access_key' + }, + 'secret_key': { + 'from_secret': 'cache_s3_secret_key' + } + } + } ] if config['modules'][module] == 'frontend': @@ -224,6 +236,57 @@ def testing(ctx, module): }, } +def uploadCoverage(ctx): + return { + 'kind': 'pipeline', + 'type': 'docker', + 'name': 'upload-coverage', + 'platform': { + 'os': 'linux', + 'arch': 'amd64', + }, + 'steps': [ + { + 'name': 'sync-from-cache', + 'image': 'minio/mc', + 'environment': { + 'MC_HOST_cache': { + 'from_secret': 'cache_s3_connection_url' + } + }, + 'commands': [ + 'mc mirror cache/cache/%s/%s/coverage coverage/' % (ctx.repo.slug, ctx.build.commit + '-${DRONE_BUILD_NUMBER}'), + ] + }, + { + 'name': 'check', + 'image': 'alpine', + 'commands': [ + 'ls -la coverage/', + 'cat coverage/*' + ] + }, + { + 'name': 'codacy', + 'image': 'plugins/codacy:1', + 'pull': 'always', + 'settings': { + 'token': { + 'from_secret': 'codacy_token', + }, + }, + } + ], + 'trigger': { + 'ref': [ + 'refs/heads/master', + 'refs/tags/v*', + 'refs/pull/**', + ], + }, + 'depends_on': getTestSuiteNames(), + } + def localApiTests(ctx, coreBranch = 'master', coreCommit = '', storage = 'owncloud'): return { 'kind': 'pipeline', @@ -480,6 +543,7 @@ def docker(ctx, arch): ], 'depends_on': getTestSuiteNames() + [ + 'upload-coverage', 'localApiTests-owncloud-storage', 'localApiTests-ocis-storage', ] + getCoreApiTestPipelineNames() + getUITestSuiteNames(), @@ -635,6 +699,7 @@ def binary(ctx, name): ], 'depends_on': getTestSuiteNames() + [ + 'upload-coverage', 'localApiTests-owncloud-storage', 'localApiTests-ocis-storage', ] + getCoreApiTestPipelineNames() + getUITestSuiteNames(),