diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f8a99cf4cc0168e3e3a810fa1116002f6275c69b..8cd28a2d115bde1103c9b2090a3df71c1819efc0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -78,6 +78,7 @@ build_website: before_script: - apk add --update nodejs npm script: + - echo "'${WEBSITE_PUBLIC_PATH}'" - npm install - npm run build # optionally, you can activate gzip support with the following line: @@ -91,9 +92,16 @@ build_website: - if: $CI_SERVER_HOST == "gitlab.jsc.fz-juelich.de" variables: WEBSITE_PUBLIC_PATH: $CI_PROJECT_NAME - - if: $CI_SERVER_HOST == "jugit.fz-juelich.de" + - if: >- + $CI_SERVER_HOST == "jugit.fz-juelich.de" && + $CI_COMMIT_BRANCH == "main" variables: WEBSITE_PUBLIC_PATH: "rse/interactive-software-guidelines" + - if: >- + $CI_SERVER_HOST == "jugit.fz-juelich.de" && + $CI_COMMIT_BRANCH != "main" + variables: + WEBSITE_PUBLIC_PATH: "rse/interactive-software-guidelines/${CI_COMMIT_REF_SLUG}" # yamllint disable-line rule:line-length pages: image: alpine:latest @@ -114,7 +122,7 @@ pages: $CI_SERVER_HOST == "gitlab.jsc.fz-juelich.de" && $CI_PROJECT_ID == $JSC_GITLAB_REPO_ID -deploy_website: +deploy_website_main: stage: deploy environment: name: apps @@ -132,10 +140,41 @@ deploy_website: script: - echo "'${APPS_HOST}'" - echo "'${APPS_DIR}'" - - rsync -avh --delete-before dist/* ${APPS_HOST}:${APPS_DIR}/ + - rsync -avh --delete-before dist/ ${APPS_HOST}:${APPS_DIR}/ rules: - if: >- $CI_COMMIT_BRANCH == "main" && $CI_SERVER_HOST == "jugit.fz-juelich.de" && $CI_PROJECT_ID == $JUGIT_REPO_ID when: on_success + + +deploy_website_other: + stage: deploy + environment: + name: apps + url: https://apps.fz-juelich.de/rse/interactive-software-guidelines + image: instrumentisto/rsync-ssh + dependencies: + - build_website + before_script: + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config + - echo "${ISG_DEPLOY_KEY}" > ~/.ssh/id_ed25519 + - chmod 600 ~/.ssh/id_ed25519 + - ssh-keygen -y -f ~/.ssh/id_ed25519 + script: + - echo "'${APPS_HOST}'" + - echo "'${APPS_DIR}'" + - echo "'${CI_COMMIT_REF_SLUG}'" + - echo "'${APPS_DIR_BRANCH}'" + - rsync -avh --delete-before dist/ ${APPS_HOST}:${APPS_DIR_BRANCH}/ + variables: + APPS_DIR_BRANCH: ${APPS_DIR}/${CI_COMMIT_REF_SLUG} + rules: + - if: >- + $CI_COMMIT_BRANCH != "main" && + $CI_SERVER_HOST == "jugit.fz-juelich.de" && + $CI_PROJECT_ID == $JUGIT_REPO_ID + when: on_success diff --git a/README.md b/README.md index 0dfbf823c2eb91f520dad586cfd139c6fd15155d..6d4b3e427e217ad6be49506d591112d6254864d4 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ to the software guidelines of the Forschungszentrum Jülich. ## Location This code of this project is located at -[<gitlab.jsc.fz-juelich.de>](<https://gitlab.jsc.fz-juelich.de/rg-rse/software-guidelines>). +[<jugit.fz-juelich.de>](<https://jugit.fz-juelich.de/rg-rse/apps-server/interactive-software-guidelines>). The created website is located at the -[apps-server](<https://rg-rse.pages.jsc.fz-juelich.de/rse-monitor/>) +[apps-server](<https://apps.fz-juelich.de/rse/interactive-software-guidelines/>) of Forschungszentrum Jülich. ## License diff --git a/public/.htaccess b/public/.htaccess index 80a42f9935275a794ccf475ea9d5ed10f7d6fe4e..a7749aefecf06925d890655219f8f9ef64503bf9 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,7 +1,12 @@ -<ifModule mod_rewrite.c> - RewriteEngine On - RewriteBase / - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule (.*) /index.html [QSA,L] -</ifModule> \ No newline at end of file +<IfModule mod_negotiation.c> + Options -MultiViews +</IfModule> + +<IfModule mod_rewrite.c> + RewriteEngine On + RewriteBase / + RewriteRule ^index\.html$ - [L] + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . 404.html [L] +</IfModule> diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000000000000000000000000000000000000..bee4d2bd84a0b396aecb4fe1459df6cf59e7a434 --- /dev/null +++ b/public/404.html @@ -0,0 +1,52 @@ +<!-- +SPDX-FileCopyrightText: 2023 Forschungszentrum Juelich GmbH +SPDX-FileContributor: Jakob Fritz <j.fritz@fz-juelich.de> + +SPDX-License-Identifier: MIT +--> + +<!DOCTYPE html> +<html lang=""> + + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <link href='https://apps.fz-juelich.de/fdm/fonts/css.php?family=weissenhof' rel='stylesheet' type='text/css'> + <link rel="icon" href="https://fz-juelich.de/favicon.ico" sizes="any"> + <link rel="icon" href="https://fz-juelich.de/icon.svg" type="image/svg+xml"> + <link rel="apple-touch-icon" sizes="180x180" href="https://fz-juelich.de/apple-touch-icon.png"> + <title>Interactive Software Guidelines</title> + </head> + + <body> + <div + id="nav" + class="nav" + > + <a href="index.html" > Home </a> | + <a href="determine-class.html" > Determine application class </a> | + <a href="check-requirements.html" > Check requirements </a> + </div> + <div style="align:right"> + <a + href="https://apps.fz-juelich.de/rse/legal-notice" + target="_blank" + rel="noopener noreferrer" + > + Legal Notice + </a> + | <a + href="https://www.fz-juelich.de/en/privacy-policy" + target="_blank" + rel="noopener noreferrer" + >Privacy Policy</a> + </div> + + <h1>404 Page not found</h1> + <strong>We're sorry but the page you've been looking for is not available.</strong><br> + <p>You can go to one of the pages linked above.</p> + + </body> + +</html> \ No newline at end of file diff --git a/public/index.html b/public/index.html index 784a41be0c82e223f27a36946c5231200ddaccb6..f7f1eded89512f920e71f7ffdd7a56ef46df3d7b 100644 --- a/public/index.html +++ b/public/index.html @@ -20,6 +20,29 @@ SPDX-License-Identifier: MIT </head> <body> + <div + id="nav" + class="nav" + > + <a href="index.html" > Home </a> | + <a href="determine-class.html" > Determine application class </a> | + <a href="check-requirements.html" > Check requirements </a> + </div> + <div style="align:right"> + <a + href="https://apps.fz-juelich.de/rse/legal-notice" + target="_blank" + rel="noopener noreferrer" + > + Legal Notice + </a> + | <a + href="https://www.fz-juelich.de/en/privacy-policy" + target="_blank" + rel="noopener noreferrer" + >Privacy Policy</a> + </div> + <noscript> <strong>We're sorry but Interactive Software Guidelines doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> diff --git a/src/App.vue b/src/App.vue deleted file mode 100644 index 42e06f49efe0c6d3c9af9d3f7dab0f2a764e5d95..0000000000000000000000000000000000000000 --- a/src/App.vue +++ /dev/null @@ -1,46 +0,0 @@ -<!-- -SPDX-FileCopyrightText: 2023 Forschungszentrum Juelich GmbH -SPDX-FileContributor: Jakob Fritz <j.fritz@fz-juelich.de> - -SPDX-License-Identifier: MIT ---> - -<template> - <div - id="nav" - class="nav" - > - <router-link to="/"> - Home - </router-link> | - <router-link to="/determine-class"> - Determine application class - </router-link> | - <router-link to="/check-requirements"> - Check requirements - </router-link> - </div> - <div style="align:right"> - <a - href="https://apps.fz-juelich.de/rse/legal-notice" - target="_blank" - rel="noopener noreferrer" - > - Legal Notice - </a> - | <a - href="https://www.fz-juelich.de/en/privacy-policy" - target="_blank" - rel="noopener noreferrer" - >Privacy Policy</a> - </div> - - <div class="container"> - <router-view /> - </div> -</template> - -<script> -export default { -} -</script> diff --git a/src/main.js b/src/pages/check-requirements.js similarity index 64% rename from src/main.js rename to src/pages/check-requirements.js index 341ff374bb84e740843463584c25efb35016b07a..b6e4d550318f95dcc7923d8a432d21d4787a1dfe 100644 --- a/src/main.js +++ b/src/pages/check-requirements.js @@ -4,10 +4,9 @@ // SPDX-License-Identifier: CC0-1.0 import { createApp } from 'vue' -import App from './App.vue' +import App from './check-requirements.vue' import { plugin, defaultConfig } from '@formkit/vue' import '@formkit/themes/genesis' -import "./assets/reset.css" -import router from '@/router' +import "../assets/reset.css" -createApp(App).use(router).use(plugin, defaultConfig).mount('#app') +createApp(App).use(plugin, defaultConfig).mount('#app') diff --git a/src/views/checkRequirements.vue b/src/pages/check-requirements.vue similarity index 100% rename from src/views/checkRequirements.vue rename to src/pages/check-requirements.vue diff --git a/src/pages/determine-class.js b/src/pages/determine-class.js new file mode 100644 index 0000000000000000000000000000000000000000..f2c60fb0228654e96f7031872a35e3359e3a2047 --- /dev/null +++ b/src/pages/determine-class.js @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2023 Forschungszentrum Juelich GmbH +// SPDX-FileContributor: Jakob Fritz <j.fritz@fz-juelich.de> +// +// SPDX-License-Identifier: CC0-1.0 + +import { createApp } from 'vue' +import App from './determine-class.vue' +import { plugin, defaultConfig } from '@formkit/vue' +import '@formkit/themes/genesis' +import "../assets/reset.css" + +createApp(App).use(plugin, defaultConfig).mount('#app') diff --git a/src/views/exampleTable.vue b/src/pages/determine-class.vue similarity index 100% rename from src/views/exampleTable.vue rename to src/pages/determine-class.vue diff --git a/src/pages/index.js b/src/pages/index.js new file mode 100644 index 0000000000000000000000000000000000000000..60c3f864475a0eb89297b0aaae176496ffacb738 --- /dev/null +++ b/src/pages/index.js @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2023 Forschungszentrum Juelich GmbH +// SPDX-FileContributor: Jakob Fritz <j.fritz@fz-juelich.de> +// +// SPDX-License-Identifier: CC0-1.0 + +import { createApp } from 'vue' +import App from './starting-page.vue' +import { plugin, defaultConfig } from '@formkit/vue' +import '@formkit/themes/genesis' +import "../assets/reset.css" + +createApp(App).use(plugin, defaultConfig).mount('#app') diff --git a/src/views/StartingPage.vue b/src/pages/starting-page.vue similarity index 100% rename from src/views/StartingPage.vue rename to src/pages/starting-page.vue diff --git a/src/router/index.js b/src/router/index.js deleted file mode 100644 index 5ab348853ebd2d235e4340ba585cd505c51a1d8b..0000000000000000000000000000000000000000 --- a/src/router/index.js +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-FileCopyrightText: 2023 Forschungszentrum Juelich GmbH -// SPDX-FileContributor: Jakob Fritz <j.fritz@fz-juelich.de> -// -// SPDX-License-Identifier: MIT - -import { createRouter, createWebHistory } from 'vue-router' -import exampleTable from '@/views/exampleTable.vue' -import checkRequirements from '@/views/checkRequirements.vue' -import home from '@/views/StartingPage.vue' - -const routes = [ - { - path: '/', - name: 'Home', - component: home - }, - { - path: '/determine-class', - name: 'exampletable', - component: exampleTable - }, - { - path: '/check-requirements', - name: 'checkrequirements', - component: checkRequirements - } -] -const router = createRouter({ - history: createWebHistory(process.env.BASE_URL), - routes -}) -export default router \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 23c5bd73acee3066e7eae1c1feb235502a74d6b3..92b17c4c8d2435afbb1596ce893902f2c2b2042e 100644 --- a/vue.config.js +++ b/vue.config.js @@ -8,5 +8,20 @@ module.exports = defineConfig({ transpileDependencies: true, publicPath: process.env.NODE_ENV === 'production' ? '/' + process.env.WEBSITE_PUBLIC_PATH + '/' - : '/' + : '/', + pages: { + index: 'src/pages/index.js', + 'determine-class': 'src/pages/determine-class.js', + 'check-requirements': 'src/pages/check-requirements.js' + // determineClass: { + // entry: 'src/pages/determine-class.js', + // filename: 'determine-class.html', + // title: 'Determine Class' + // }, + // checkRequirements: { + // entry: 'src/pages/check-requirements.js', + // filename: 'check-requirements.html', + // title: 'Check Requirements' + // } + } })