lint + pipeline

This commit is contained in:
Sieciech 2021-07-27 14:38:48 +02:00
parent 0a40523c2c
commit ddd5c55615
7 changed files with 59 additions and 29 deletions

33
Jenkinsfile vendored
View File

@ -3,6 +3,7 @@ pipeline {
environment { environment {
DatabaseUrl = sh(returnStdout: true, script: 'bash /var/lib/jenkins/variables/CureNet/var.sh ${BRANCH_NAME} DatabaseUrl').trim() DatabaseUrl = sh(returnStdout: true, script: 'bash /var/lib/jenkins/variables/CureNet/var.sh ${BRANCH_NAME} DatabaseUrl').trim()
DatabaseUrlTesting = sh(returnStdout: true, script: 'bash /var/lib/jenkins/variables/CureNet/var.sh test DatabaseUrl').trim()
} }
stages { stages {
@ -58,7 +59,7 @@ pipeline {
} }
} }
stage('Configure') { stage('Configure for tests') {
parallel { parallel {
stage('Frontend') { stage('Frontend') {
steps { steps {
@ -73,8 +74,9 @@ pipeline {
steps { steps {
dir(path: 'src/backend') { dir(path: 'src/backend') {
sh 'APP_SECRET=`php8.0 -r "echo md5(\\"branch=${BRANCH_NAME};\\");"` && sed -i "s/APP_SECRET=.*/APP_SECRET=${APP_SECRET}/g" .env' sh 'APP_SECRET=`php8.0 -r "echo md5(\\"branch=${BRANCH_NAME};\\");"` && sed -i "s/APP_SECRET=.*/APP_SECRET=${APP_SECRET}/g" .env'
sh 'sed -i "s/DATABASE_URL=.*/DATABASE_URL=${DatabaseUrl}/g" .env.dev' sh 'sed -i "s/DATABASE_URL=.*/DATABASE_URL=${DatabaseUrlTesting}/g" .env.test'
sh 'composer dump-env dev' sh 'composer dump-env test'
sh 'php bin/console doctrine:schema:update --force';
} }
} }
@ -106,6 +108,31 @@ pipeline {
} }
} }
stage('Configure') {
parallel {
stage('Frontend') {
steps {
dir(path: 'src/frontend') {
sh 'echo skip'
}
}
}
stage('Backend') {
steps {
dir(path: 'src/backend') {
sh 'APP_SECRET=`php8.0 -r "echo md5(\\"branch=${BRANCH_NAME};\\");"` && sed -i "s/APP_SECRET=.*/APP_SECRET=${APP_SECRET}/g" .env'
sh 'sed -i "s/DATABASE_URL=.*/DATABASE_URL=${DatabaseUrl}/g" .env.dev'
sh 'composer dump-env dev'
}
}
}
}
}
stage('Build') { stage('Build') {
parallel { parallel {
stage('Frontend') { stage('Frontend') {

View File

@ -4,3 +4,4 @@ APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999 SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther PANTHER_APP_ENV=panther
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=13&charset=utf8"

View File

@ -36,7 +36,7 @@ export class AppComponent {
avatar: 'https://www.gravatar.com/avatar/81b206a89f89d5b1123b87606075c6a8?s=514&d=robohash', avatar: 'https://www.gravatar.com/avatar/81b206a89f89d5b1123b87606075c6a8?s=514&d=robohash',
}; };
get isSidebarOpen() { get isSidebarOpen(): boolean {
switch (this.sidebarOpen) { switch (this.sidebarOpen) {
case SidebarOpenEnum.Open: case SidebarOpenEnum.Open:
return true; return true;
@ -86,7 +86,7 @@ export class AppComponent {
} }
} }
onThemeChanged(theme: string) { onThemeChanged(theme: string): void {
if (theme === undefined) { if (theme === undefined) {
return; return;
} }
@ -95,7 +95,7 @@ export class AppComponent {
this.isDark = theme.indexOf('dark') !== -1; this.isDark = theme.indexOf('dark') !== -1;
} }
onResize(size: WindowSize) { onResize(size: WindowSize): void {
if (size === undefined) { if (size === undefined) {
return; return;
} }
@ -104,7 +104,7 @@ export class AppComponent {
this.sidebarMode = this.isMobile ? 'over' : 'side'; this.sidebarMode = this.isMobile ? 'over' : 'side';
} }
onLangChanged(lang: string) { onLangChanged(lang: string): void {
if (lang === undefined) { if (lang === undefined) {
return; return;
} }
@ -112,16 +112,16 @@ export class AppComponent {
this.langControl.setValue(lang); this.langControl.setValue(lang);
} }
toggleSidebar() { toggleSidebar(): void {
this.sidebarOpen = this.isSidebarOpen ? SidebarOpenEnum.Closed : SidebarOpenEnum.Open; this.sidebarOpen = this.isSidebarOpen ? SidebarOpenEnum.Closed : SidebarOpenEnum.Open;
this.browserStorageService.setItem('sidebar.open', this.sidebarOpen); this.browserStorageService.setItem('sidebar.open', this.sidebarOpen);
} }
onSidebarOpenedChange(opened: boolean) { onSidebarOpenedChange(opened: boolean): void {
this.sidebarOpen = opened ? SidebarOpenEnum.Open : SidebarOpenEnum.Closed; this.sidebarOpen = opened ? SidebarOpenEnum.Open : SidebarOpenEnum.Closed;
} }
url(url: string): SafeStyle { url(url: string): SafeStyle {
return this.sanitizer.bypassSecurityTrustStyle(`url('${url}')`); return this.sanitizer.bypassSecurityTrustStyle(`url('${url}')`);
} }
} }

View File

@ -12,7 +12,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { TranslateHttpLoader } from '@ngx-translate/http-loader';
export function HttpLoaderFactory(http: HttpClient) { export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
return new TranslateHttpLoader(http, '/assets/lang/', '.json'); return new TranslateHttpLoader(http, '/assets/lang/', '.json');
} }

View File

@ -13,13 +13,14 @@ export class WindowSize {
this.isMobile = this.width <= 700; this.isMobile = this.width <= 700;
} }
update() { static generate(): WindowSize {
this.width = window.innerWidth; return new WindowSize(window.innerWidth, window.innerHeight);
this.height = window.innerHeight;
} }
static generate() { update(): WindowSize {
return new WindowSize(window.innerWidth, window.innerHeight); this.width = window.innerWidth;
this.height = window.innerHeight;
return this;
} }
} }
@ -41,29 +42,29 @@ export class AppService {
}); });
this.sizeChange.subscribe(size => this.size = size); this.sizeChange.subscribe(size => this.size = size);
this.sizeChange.next(WindowSize.generate()); this.sizeChange.next(WindowSize.generate());
let lang = browserStorageService.getItem('language'); let language = browserStorageService.getItem('language');
if (!lang) { if (!language) {
lang = this.defaultLang; language = this.defaultLang;
} }
this.translate.setDefaultLang(this.defaultLang); this.translate.setDefaultLang(this.defaultLang);
this.changeLang(lang); this.changeLang(language);
fromEvent(window, 'resize').subscribe(e => { fromEvent(window, 'resize').subscribe(e => {
this.sizeChange.next(WindowSize.generate()); this.sizeChange.next(WindowSize.generate());
}) });
} }
changeLang(lang: string) { changeLang(lang: string): void {
if (lang !== this.lang) { if (lang !== this.lang) {
this.translate.use(lang); this.translate.use(lang);
this.langChange.next(lang); this.langChange.next(lang);
} }
} }
getLang() { getLang(): string {
return this.lang; return this.lang;
} }
getLangs() { getLangs(): string[] {
return [ return [
'pl', 'pl',
'en', 'en',

View File

@ -5,12 +5,13 @@ export class BrowserStorageService {
private storage: Storage; private storage: Storage;
private namespace: string; private namespace: string;
constructor() { constructor() {
this.storage = localStorage; this.storage = localStorage;
this.namespace = 'default'; this.namespace = 'default';
} }
setNamespace(namespace: string) { setNamespace(namespace: string): void {
this.namespace = namespace; this.namespace = namespace;
} }
@ -18,7 +19,7 @@ export class BrowserStorageService {
return namespace ?? this.namespace; return namespace ?? this.namespace;
} }
setItem(key: string, value: any, namespace: string | null = null) { setItem(key: string, value: any, namespace: string | null = null): void {
namespace = this.getNamespace(namespace); namespace = this.getNamespace(namespace);
const path = `${namespace}.${key}`; const path = `${namespace}.${key}`;
this.storage.setItem(path, JSON.stringify(value)); this.storage.setItem(path, JSON.stringify(value));

View File

@ -21,11 +21,11 @@ export class ThemeService {
this.setTheme(userTheme); this.setTheme(userTheme);
} }
getTheme() { getTheme(): string {
return this.theme; return this.theme;
} }
setTheme(theme: string) { setTheme(theme: string): void {
if (theme !== this.theme) { if (theme !== this.theme) {
this.themeChange.next(theme); this.themeChange.next(theme);
document.getElementById('current-theme').setAttribute('href', `/${theme}.css`); document.getElementById('current-theme').setAttribute('href', `/${theme}.css`);
@ -37,5 +37,5 @@ export class ThemeService {
'light', 'light',
'dark', 'dark',
]; ];
}; }
} }