@@ -5,6 +5,8 @@ const K6_VERSION = 'v0.55.0'
55const K6_PATH_MAC_AMD = `k6-${ K6_VERSION } -macos-amd64`
66const K6_PATH_MAC_ARM = `k6-${ K6_VERSION } -macos-arm64`
77const K6_PATH_WIN_AMD = `k6-${ K6_VERSION } -windows-amd64`
8+ const K6_PATH_LINUX_AMD = `k6-${ K6_VERSION } -linux-amd64`
9+ const K6_PATH_LINUX_ARM = `k6-${ K6_VERSION } -linux-arm64`
810
911const getMacOSK6Binary = ( ) => {
1012 const command = `
@@ -52,6 +54,32 @@ Remove-Item -Path "${K6_PATH_WIN_AMD}" -Recurse
5254 execSync ( command , { shell : 'powershell.exe' } )
5355}
5456
57+ const getLinuxK6Binary = ( ) => {
58+ const command = `
59+ # download binaries
60+ curl -LO https://github.com/grafana/k6/releases/download/${ K6_VERSION } /${ K6_PATH_LINUX_AMD } .tar.gz
61+ curl -LO https://github.com/grafana/k6/releases/download/${ K6_VERSION } /${ K6_PATH_LINUX_ARM } .tar.gz
62+
63+ # unzip & smoke test
64+ tar -zxf ${ K6_PATH_LINUX_AMD } .tar.gz
65+ tar -zxf ${ K6_PATH_LINUX_ARM } .tar.gz
66+ ${ K6_PATH_LINUX_AMD } /k6 version
67+ # ${ K6_PATH_LINUX_ARM } /k6 version ## if we move to separate images for architectures we could test this one as well
68+
69+ # move to resource folder
70+ mv ${ K6_PATH_LINUX_AMD } /k6 resources/linux/x86_64
71+ mv ${ K6_PATH_LINUX_ARM } /k6 resources/linux/arm64
72+
73+ # cleanup
74+ rm ${ K6_PATH_LINUX_AMD } .tar.gz
75+ rm ${ K6_PATH_LINUX_ARM } .tar.gz
76+ rmdir ${ K6_PATH_LINUX_AMD }
77+ rmdir ${ K6_PATH_LINUX_ARM }
78+ `
79+
80+ execSync ( command )
81+ }
82+
5583switch ( process . platform ) {
5684 case 'darwin' :
5785 // we check only for one arch since we include both binaries
@@ -70,6 +98,15 @@ switch (process.platform) {
7098 console . log ( 'k6 binary download completed' )
7199 }
72100 break
101+ case 'linux' :
102+ // we check only for one arch since we include both binaries
103+ if ( ! existsSync ( 'resources/linux/x86_64/k6' ) ) {
104+ console . log ( 'k6 binary not found' )
105+ console . log ( 'downloading k6... this might take some time...' )
106+ getLinuxK6Binary ( )
107+ console . log ( 'k6 binary download completed' )
108+ }
109+ break
73110 default :
74111 console . log ( `unsupported platform found: ${ process . platform } ` )
75112}
0 commit comments