@@ -3,6 +3,7 @@ const fs = require("fs");
33const archiver = require ( "archiver" ) ;
44const constants = require ( "./constants.js" ) ;
55const process = require ( "process" ) ;
6+ const semver = require ( "semver" ) ;
67
78function delete_archive ( file_name ) {
89 try {
@@ -55,6 +56,8 @@ function archive_project(lt_config) {
5556 "cypress/videos/**/*" ,
5657 "cypress/results/**/*" ,
5758 "lambdatest-artefacts/**/*" ,
59+ "*.lock" ,
60+ "package-lock.json" ,
5861 ] . concat ( lt_config [ "run_settings" ] [ "ignore_files" ] ) ;
5962 //If we have some env variables passed through cli or config file we will ignore the original file and create a new one using
6063 //the parameter appended in config file through code
@@ -72,24 +75,64 @@ function archive_project(lt_config) {
7275 { cwd : process . cwd ( ) , ignore : ignore_files , dot : false } ,
7376 { prefix : "project/" }
7477 ) ;
78+ let raw_package_data = fs . readFileSync ( "package.json" ) ;
79+ let package = JSON . parse ( raw_package_data ) ;
7580 //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+ ) {
7785 console . log ( "Overriding NPM Dependencies" ) ;
78- let rawdata = fs . readFileSync ( "package.json" ) ;
79-
80- let package = JSON . parse ( rawdata ) ;
8186 package . dependencies = lt_config . run_settings . npm_dependencies ;
8287 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+ }
92126 }
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+ ) ;
93136 if ( fs . existsSync ( ".npmrc" ) ) {
94137 let raw_data = fs . readFileSync ( ".npmrc" , "utf8" ) ;
95138 if (
0 commit comments