@@ -3,6 +3,7 @@ const fs = require("fs");
3
3
const archiver = require ( "archiver" ) ;
4
4
const constants = require ( "./constants.js" ) ;
5
5
const process = require ( "process" ) ;
6
+ const semver = require ( "semver" ) ;
6
7
7
8
function delete_archive ( file_name ) {
8
9
try {
@@ -55,6 +56,8 @@ function archive_project(lt_config) {
55
56
"cypress/videos/**/*" ,
56
57
"cypress/results/**/*" ,
57
58
"lambdatest-artefacts/**/*" ,
59
+ "*.lock" ,
60
+ "package-lock.json" ,
58
61
] . concat ( lt_config [ "run_settings" ] [ "ignore_files" ] ) ;
59
62
//If we have some env variables passed through cli or config file we will ignore the original file and create a new one using
60
63
//the parameter appended in config file through code
@@ -72,24 +75,64 @@ function archive_project(lt_config) {
72
75
{ cwd : process . cwd ( ) , ignore : ignore_files , dot : false } ,
73
76
{ prefix : "project/" }
74
77
) ;
78
+ let raw_package_data = fs . readFileSync ( "package.json" ) ;
79
+ let package = JSON . parse ( raw_package_data ) ;
75
80
//OverRide NPM Dependencies
76
- if ( lt_config . run_settings . npm_dependencies ) {
81
+ if (
82
+ lt_config . run_settings . npm_dependencies &&
83
+ ! lt_config . run_settings . cypress_version
84
+ ) {
77
85
console . log ( "Overriding NPM Dependencies" ) ;
78
- let rawdata = fs . readFileSync ( "package.json" ) ;
79
-
80
- let package = JSON . parse ( rawdata ) ;
81
86
package . dependencies = lt_config . run_settings . npm_dependencies ;
82
87
package . devDependencies = { } ;
83
- archive . append (
84
- JSON . stringify ( package , null , 4 ) ,
85
- {
86
- name : "project/package.json" ,
87
- cwd : process . cwd ( ) ,
88
- ignore : ignore_files ,
89
- } ,
90
- { prefix : "project/" }
91
- ) ;
88
+ package . dependencies . cypress = semver . coerce (
89
+ package . dependencies . cypress
90
+ ) . version ;
91
+ } else if (
92
+ lt_config . run_settings . npm_dependencies &&
93
+ lt_config . run_settings . cypress_version
94
+ ) {
95
+ console . log ( "Overriding NPM Dependencies" ) ;
96
+ package . dependencies = lt_config . run_settings . npm_dependencies ;
97
+ package . devDependencies = { } ;
98
+ console . log ( "Overriding Cypress Version" ) ;
99
+ package . dependencies . cypress = semver . coerce (
100
+ lt_config . run_settings . cypress_version
101
+ ) . version ;
102
+ } else if (
103
+ ! lt_config . run_settings . npm_dependencies &&
104
+ lt_config . run_settings . cypress_version
105
+ ) {
106
+ console . log ( "Overriding Cypress Version" ) ;
107
+ if ( package . dependencies . hasOwnProperty ( "cypress" ) ) {
108
+ package . dependencies . cypress = semver . coerce (
109
+ lt_config . run_settings . cypress_version
110
+ ) . version ;
111
+ } else {
112
+ package . devDependencies . cypress = semver . coerce (
113
+ lt_config . run_settings . cypress_version
114
+ ) . version ;
115
+ }
116
+ } else {
117
+ if ( package . dependencies . hasOwnProperty ( "cypress" ) ) {
118
+ package . dependencies . cypress = semver . coerce (
119
+ package . dependencies . cypress
120
+ ) . version ;
121
+ } else {
122
+ package . devDependencies . cypress = semver . coerce (
123
+ package . devDependencies . cypress
124
+ ) . version ;
125
+ }
92
126
}
127
+ archive . append (
128
+ JSON . stringify ( package , null , 4 ) ,
129
+ {
130
+ name : "project/package.json" ,
131
+ cwd : process . cwd ( ) ,
132
+ ignore : ignore_files ,
133
+ } ,
134
+ { prefix : "project/" }
135
+ ) ;
93
136
if ( fs . existsSync ( ".npmrc" ) ) {
94
137
let raw_data = fs . readFileSync ( ".npmrc" , "utf8" ) ;
95
138
if (
0 commit comments