Skip to content

Commit

Permalink
allow var balue inline
Browse files Browse the repository at this point in the history
  • Loading branch information
JulienMattiussi committed Jul 19, 2023
1 parent fb323fc commit 18aada9
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 45 deletions.
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,10 @@ This means that the lowest hanging fruit for optimizing the emissions of a web p
# Commands

<!-- commands -->

- [`greenframe analyze [BASEURL] [SCENARIO]`](#greenframe-analyze-baseurl-scenario)
- [`greenframe kube-config`](#greenframe-kube-config)
- [`greenframe open [BASEURL] [SCENARIO]`](#greenframe-open-baseurl-scenario)
- [`greenframe update [CHANNEL]`](#greenframe-update-channel)
* [`greenframe analyze [BASEURL] [SCENARIO]`](#greenframe-analyze-baseurl-scenario)
* [`greenframe kube-config`](#greenframe-kube-config)
* [`greenframe open [BASEURL] [SCENARIO]`](#greenframe-open-baseurl-scenario)
* [`greenframe update [CHANNEL]`](#greenframe-update-channel)

## `greenframe analyze [BASEURL] [SCENARIO]`

Expand All @@ -246,21 +245,23 @@ Create an analysis on GreenFrame server.
```
USAGE
$ greenframe analyze [BASEURL] [SCENARIO] [-C <value>] [-K <value>] [-t <value>] [-p <value>] [-c <value>]
[--commitId <value>] [-b <value>] [-s <value>] [-d] [-a] [-i] [--locale] [--timezoneId] [--dockerdHost <value>]
[--dockerdPort <value>] [--containers <value>] [--databaseContainers <value>] [--kubeContainers <value>]
[--kubeDatabaseContainers <value>]
[--commitId <value>] [-b <value>] [-s <value>] [-d] [-a] [-i] [--locale] [--timezoneId] [-e <value>] [-E <value>]
[--dockerdHost <value>] [--dockerdPort <value>] [--containers <value>] [--databaseContainers <value>]
[--kubeContainers <value>] [--kubeDatabaseContainers <value>]

ARGUMENTS
BASEURL Your baseURL website
SCENARIO Path to your GreenFrame scenario

FLAGS
-C, --configFile=<value> Path to config file
-E, --customEnvVarsFile=<value> File of environment vars
-K, --kubeConfig=<value> Path to kubernetes client config file
-a, --useAdblock Use an adblocker during analysis
-b, --branchName=<value> Pass branch name manually
-c, --commitMessage=<value> Pass commit message manually
-d, --distant Run a distant analysis on GreenFrame Server instead of locally
-e, --customEnvVars=<value>... List of environment vars to read in the scenarios
-i, --ignoreHTTPSErrors Ignore HTTPS errors during analysis
-p, --projectName=<value> Project name
-s, --samples=<value> Number of runs done for the score computation
Expand Down Expand Up @@ -347,7 +348,6 @@ DESCRIPTION
```
_See code: [dist/commands/update.ts](https://github.com/marmelab/greenframe-cli/blob/v1.6.8/dist/commands/update.ts)_
<!-- commandsstop -->
## Development
Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
"core-js-pure": "^3.24.0",
"cross-fetch": "^3.1.4",
"env-ci": "^5.0.2",
"envfile": "^6.18.0",
"js-yaml": "^4.1.0",
"listr2": "^3.12.2",
"lodash": "^4.17.21",
Expand Down
11 changes: 5 additions & 6 deletions src/examples/visit.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
const { Page } = require('playwright');
const { test, expect } = require('@playwright/test');
const maVar1 = process.env.GREENFRAME_MA_VAR;
const maVar2 = process.env.GREENFRAME_MA_VAR_DEUZE;
const { expect } = require('@playwright/test');
const myVar1 = process.env.GREENFRAME_MY_VAR_ONE;
const myVar2 = process.env.GREENFRAME_MY_VAR_TWO;

const visit = async (page) => {
expect(maVar1).toBe('bip');
expect(maVar2).toBe('bop');
expect(myVar1).toBe('bip');
expect(myVar2).toBe('blop');
await page.goto('', {
waitUntil: 'networkidle',
});
Expand Down
25 changes: 8 additions & 17 deletions src/services/container/execScenarioContainer.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
const fs = require('node:fs');

Check warning on line 1 in src/services/container/execScenarioContainer.js

View workflow job for this annotation

GitHub Actions / ESLint

src/services/container/execScenarioContainer.js#L1

'fs' is assigned a value but never used (@typescript-eslint/no-unused-vars)
const util = require('node:util');
const path = require('node:path');
const { parse } = require('envfile');
const exec = util.promisify(require('node:child_process').exec);
const { CONTAINER_DEVICE_NAME } = require('../../constants');
const ScenarioError = require('../errors/ScenarioError');
Expand All @@ -10,8 +9,6 @@ const initDebug = require('debug');
const PROJECT_ROOT = path.resolve(__dirname, '../../../');
const debug = initDebug('greenframe:services:container:execScenarioContainer');

const readFile = util.promisify(fs.readFile);

const createContainer = async (
extraHosts = [],
customEnvVars = [],
Expand Down Expand Up @@ -117,25 +114,19 @@ const stopContainer = async () => {
};

const buildEnvVarList = async (customEnvVars, customEnvVarsFile) => {
const fileEnvVars = await parseEnvFile(customEnvVarsFile);
let uniqueEnvVars = [...new Set(customEnvVars.concat(fileEnvVars))];
return uniqueEnvVars.reduce((list, envVarName) => {
let uniqueEnvVars = [...new Set(customEnvVars)];
const uniqueEnvVarsString = uniqueEnvVars.reduce((list, envVarName) => {
if (envVarName.includes('=')) {
return `${list} -e ${envVarName} `;
}

const envVarValue = process.env[envVarName];
return `${list} -e ${envVarName}=${envVarValue} `;
}, '');
};

const parseEnvFile = async (path) => {
try {
const file = await readFile(path, 'utf8');
if (file) {
const vars = parse(file);
const envVarFileString = customEnvVarsFile ? ` --env-file ${customEnvVarsFile}` : '';

return Object.keys(vars);
}
} catch {
// Do Nothing
}
return `${uniqueEnvVarsString} ${envVarFileString}`;
};

module.exports = {
Expand Down
4 changes: 2 additions & 2 deletions src/visit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ scenarios:
threshold: 0.03
baseURL: 'https://www.google.fr'
customEnvVars:
- GREENFRAME_MY_VAR_ONE
- GREENFRAME_MY_VAR_TWO
- GREENFRAME_MY_VAR_ONE1
- GREENFRAME_MY_VAR_TWO2
customEnvVarsFile: './.env'
projectName: 'test'
10 changes: 0 additions & 10 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5450,15 +5450,6 @@ __metadata:
languageName: node
linkType: hard

"envfile@npm:^6.18.0":
version: 6.18.0
resolution: "envfile@npm:6.18.0"
bin:
envfile: bin.cjs
checksum: 3a3762994d7b84ccf0293c1269cdfa5ea8971bdbbf7e3571fb686a6415eee2029e43d3faf36ed4222a83eaaf38fbc4fa37b3f50b77ea417ca35561e0e54059c1
languageName: node
linkType: hard

"err-code@npm:^2.0.2":
version: 2.0.3
resolution: "err-code@npm:2.0.3"
Expand Down Expand Up @@ -7088,7 +7079,6 @@ __metadata:
core-js-pure: ^3.24.0
cross-fetch: ^3.1.4
env-ci: ^5.0.2
envfile: ^6.18.0
eslint: ^8.19.0
eslint-config-oclif: ^4.0.0
eslint-config-oclif-typescript: ^1.0.2
Expand Down

0 comments on commit 18aada9

Please sign in to comment.