diff options
Diffstat (limited to 'app/assets/javascripts/ci/runner/components/registration/utils.js')
-rw-r--r-- | app/assets/javascripts/ci/runner/components/registration/utils.js | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/app/assets/javascripts/ci/runner/components/registration/utils.js b/app/assets/javascripts/ci/runner/components/registration/utils.js index 32fb8eac5e9..621963349ae 100644 --- a/app/assets/javascripts/ci/runner/components/registration/utils.js +++ b/app/assets/javascripts/ci/runner/components/registration/utils.js @@ -1,11 +1,15 @@ +/* eslint-disable @gitlab/require-i18n-strings */ import { DEFAULT_PLATFORM, LINUX_PLATFORM, MACOS_PLATFORM, WINDOWS_PLATFORM, + DOWNLOAD_LOCATIONS, } from '../../constants'; +import linuxInstall from './scripts/linux/install.sh?raw'; +import osxInstall from './scripts/osx/install.sh?raw'; +import windowsInstall from './scripts/windows/install.ps1?raw'; -/* eslint-disable @gitlab/require-i18n-strings */ const OS = { [LINUX_PLATFORM]: { commandPrompt: '$', @@ -33,11 +37,40 @@ export const registerCommand = ({ platform, url = gon.gitlab_url, registrationTo return [ `${executable({ platform })} register`, ` --url ${url}`, - ` --registration-token ${registrationToken}`, + ...(registrationToken ? [` --registration-token ${registrationToken}`] : []), ]; }; export const runCommand = ({ platform }) => { return `${executable({ platform })} run`; }; -/* eslint-enable @gitlab/require-i18n-strings */ + +const importInstallScript = ({ platform = DEFAULT_PLATFORM }) => { + switch (platform) { + case LINUX_PLATFORM: + return linuxInstall; + case MACOS_PLATFORM: + return osxInstall; + case WINDOWS_PLATFORM: + return windowsInstall; + default: + return ''; + } +}; + +export const platformArchitectures = ({ platform }) => { + return DOWNLOAD_LOCATIONS[platform].map(({ arch }) => arch); +}; + +export const installScript = ({ platform, architecture }) => { + const downloadLocation = DOWNLOAD_LOCATIONS[platform].find(({ arch }) => arch === architecture) + .url; + + return importInstallScript({ platform }) + .replace( + // eslint-disable-next-line no-template-curly-in-string + '${GITLAB_CI_RUNNER_DOWNLOAD_LOCATION}', + downloadLocation, + ) + .trim(); +}; |