summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ci/runner/components/registration/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/ci/runner/components/registration/utils.js')
-rw-r--r--app/assets/javascripts/ci/runner/components/registration/utils.js39
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();
+};