From 7d552d8090b40b1eb333bfd4b56be8326923a542 Mon Sep 17 00:00:00 2001 From: hveldstra Date: Thu, 3 Oct 2024 14:39:53 +0100 Subject: [PATCH] feat: send CI status to cloud If the test is running in CI, set isCI true and send the name of the CI service to Artillery Cloud as part of test's metadata. This will be shown in reports and available as a property to filter & search on too. --- package-lock.json | 17 ++++++++++++++++- packages/artillery/lib/platform/cloud/cloud.js | 9 ++++++++- packages/artillery/package.json | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98c15eee1f..2da6665496 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24637,7 +24637,7 @@ "aws-sdk": "^2.1338.0", "chalk": "^2.4.2", "chokidar": "^3.6.0", - "ci-info": "^3.8.0", + "ci-info": "^4.0.0", "cli-table3": "^0.6.0", "cross-spawn": "^7.0.3", "csv-parse": "^4.16.3", @@ -24975,6 +24975,21 @@ "node": ">=4" } }, + "packages/artillery/node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "packages/artillery/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", diff --git a/packages/artillery/lib/platform/cloud/cloud.js b/packages/artillery/lib/platform/cloud/cloud.js index a6eaef1322..3031f731d3 100644 --- a/packages/artillery/lib/platform/cloud/cloud.js +++ b/packages/artillery/lib/platform/cloud/cloud.js @@ -12,6 +12,8 @@ const util = require('node:util'); const chokidar = require('chokidar'); const fs = require('fs'); const path = require('path'); +const { isCI, name: ciName } = require('ci-info'); + class ArtilleryCloudPlugin { constructor(_script, _events, { flags }) { this.enabled = false; @@ -59,8 +61,13 @@ class ArtilleryCloudPlugin { this.getLoadTestEndpoint = `${this.baseUrl}/api/load-tests/${this.testRunId}/status`; + const metadata = Object.assign({}, testInfo.metadata, { + isCI, + ciName + }); + await this._event('testrun:init', { - metadata: testInfo.metadata + metadata: metadata }); this.setGetLoadTestInterval = this.setGetStatusInterval(); diff --git a/packages/artillery/package.json b/packages/artillery/package.json index e5cf3d893d..0d6ccffbf1 100644 --- a/packages/artillery/package.json +++ b/packages/artillery/package.json @@ -116,7 +116,7 @@ "aws-sdk": "^2.1338.0", "chalk": "^2.4.2", "chokidar": "^3.6.0", - "ci-info": "^3.8.0", + "ci-info": "^4.0.0", "cli-table3": "^0.6.0", "cross-spawn": "^7.0.3", "csv-parse": "^4.16.3",