UNPKG

@revoloo/cypress6

Version:

Cypress.io end to end testing tool

66 lines (56 loc) 1.79 kB
const ciProvider = require('../../../lib/util/ci_provider') const { commitInfo } = require('@cypress/commit-info') const pkg = require('../../../../../package.json') const Promise = require('bluebird') const rp = require('@cypress/request-promise') const debug = require('debug')('cypress:performance') const R = require('ramda') const API_URL = process.env.PERF_API_URL || 'http://localhost:2999/track' const API_KEY = process.env.PERF_API_KEY // Store this performance record permanently. function track (type, data) { if (!API_KEY) { debug('skip tracking "%s", API key is not set', type) return Promise.resolve() } debug('getting commit information') return commitInfo() .then((commitInformation) => { const ciInformation = ciProvider.commitParams() || {} const merged = R.mergeWith(R.or, commitInformation, ciInformation) const { sha, branch, author, message, timestamp } = merged const timestampISO = new Date(timestamp * 1000).toISOString() const body = { type, data: { 'package.json Version': pkg.version, 'Commit SHA': sha, 'Commit Branch': branch, 'Commit Author': author, 'Commit Message': message, 'Commit Timestamp': timestampISO, 'Build URL': process.env.CIRCLE_BUILD_URL, 'Build Platform': process.platform, 'Build Arch': process.arch, ...data, }, } debug('sending performance numbers "%s"', type) debug('%o', body.data) return rp.post({ url: API_URL, json: true, headers: { authorization: `token ${API_KEY}`, }, body, timeout: 5000, }) }) .catch((err) => { console.error('Track error for type %s %s', type, err.message) }) } module.exports = { track, }