Merged develop and fixed conflicts
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -38,5 +38,5 @@ testem.log
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
|
||||
mock-api/**/node_modules
|
||||
mock-api/**/api.json
|
||||
|
||||
@@ -2,6 +2,7 @@ import { DigiNgNavigationBreadcrumbsModule } from '@af/digi-ng/_navigation/navig
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { NgModule } from '@angular/core';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { RouterModule } from '@angular/router';
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { AppComponent } from './app.component';
|
||||
import { NavigationModule } from './components/navigation/navigation.module';
|
||||
@@ -14,6 +15,7 @@ import { SkipToContentModule } from './components/skip-to-content/skip-to-conten
|
||||
BrowserModule,
|
||||
HttpClientModule,
|
||||
AppRoutingModule,
|
||||
RouterModule,
|
||||
SkipToContentModule,
|
||||
NavigationModule,
|
||||
SidebarModule,
|
||||
|
||||
1843
mock-api/dafa-web/package-lock.json
generated
1843
mock-api/dafa-web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -10,12 +10,12 @@ function generateAgencies(amount = 10) {
|
||||
|
||||
for (let i = 1; i <= amount; ++i) {
|
||||
agencies.push({
|
||||
id: faker.random.uuid(),
|
||||
id: faker.datatype.uuid(),
|
||||
name: faker.company.companyName(),
|
||||
kaNumber: faker.random.number({ min: 100000, max: 999999 }),
|
||||
kaNumber: faker.datatype.number({ min: 100000, max: 999999 }),
|
||||
address: {
|
||||
street: faker.address.streetName(),
|
||||
houseNumber: faker.random.number(100),
|
||||
houseNumber: faker.datatype.number(100),
|
||||
postalCode: faker.address.zipCode(),
|
||||
city: faker.address.city(),
|
||||
kommun: KOMMUN[Math.floor(Math.random() * KOMMUN.length)].kommun,
|
||||
|
||||
@@ -12,13 +12,13 @@ function generateParticipants(amount = 10) {
|
||||
|
||||
for (let i = 1; i <= amount; ++i) {
|
||||
const participant = {
|
||||
id: faker.random.uuid(),
|
||||
id: faker.datatype.uuid(),
|
||||
firstName: faker.name.firstName(),
|
||||
lastName: faker.name.lastName(),
|
||||
status: STATUSES[Math.floor(Math.random() * STATUSES.length)],
|
||||
service: SERVICES[Math.floor(Math.random() * SERVICES.length)].name,
|
||||
nextStep: STEPS[Math.floor(Math.random() * STEPS.length)],
|
||||
errandNumber: faker.random.number({ min: 100000, max: 999999 }),
|
||||
errandNumber: faker.datatype.number({ min: 100000, max: 999999 }),
|
||||
startDate: faker.date.recent(),
|
||||
endDate: faker.date.future(),
|
||||
handleBefore: faker.date.soon(),
|
||||
|
||||
@@ -19,8 +19,8 @@ function generateStaff(amount = 10) {
|
||||
|
||||
for (let i = 1; i <= amount; ++i) {
|
||||
const person = {
|
||||
id: faker.random.uuid(),
|
||||
staffId: faker.random.number(),
|
||||
id: faker.datatype.uuid(),
|
||||
staffId: faker.datatype.number(),
|
||||
firstName: faker.name.firstName(),
|
||||
lastName: faker.name.lastName(),
|
||||
kommun: KOMMUN[Math.floor(Math.random() * KOMMUN.length)].kommun,
|
||||
@@ -28,17 +28,17 @@ function generateStaff(amount = 10) {
|
||||
service: SERVICES[Math.floor(Math.random() * SERVICES.length)].name,
|
||||
languages: [
|
||||
LANGUAGES.find(language => language.name === 'Svenska'),
|
||||
...chooseRandom(LANGUAGES, faker.random.number(3)),
|
||||
...chooseRandom(LANGUAGES, faker.datatype.number(3)),
|
||||
],
|
||||
ssn: `${faker.date.between('1950', '2000').toISOString().split('T')[0].replaceAll('-', '')}-${faker.random.number(
|
||||
ssn: `${faker.date.between('1950', '2000').toISOString().split('T')[0].replace(/-/g, '')}-${faker.datatype.number(
|
||||
{
|
||||
min: 1000,
|
||||
max: 9999,
|
||||
}
|
||||
)}`,
|
||||
phone: `07${faker.random.number(9)}-${faker.random.number({ min: 1000000, max: 9999999 })}`,
|
||||
phone: `07${faker.datatype.number(9)}-${faker.datatype.number({ min: 1000000, max: 9999999 })}`,
|
||||
email: faker.internet.email(),
|
||||
authorisations: chooseRandom(AUTHORISATIONS, faker.random.number(3)),
|
||||
authorisations: chooseRandom(AUTHORISATIONS, faker.datatype.number(3)),
|
||||
outOfOffice: STATUSES[Math.floor(Math.random() * STATUSES.length)]
|
||||
? [
|
||||
{
|
||||
@@ -47,7 +47,7 @@ function generateStaff(amount = 10) {
|
||||
},
|
||||
]
|
||||
: [],
|
||||
agencies: chooseRandom(AGENCIES, faker.random.number(3)),
|
||||
agencies: chooseRandom(AGENCIES, faker.datatype.number(3)),
|
||||
};
|
||||
|
||||
staff.push({ ...person, fullName: `${person.firstName} ${person.lastName}` });
|
||||
|
||||
@@ -64,13 +64,13 @@ http {
|
||||
add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate";
|
||||
}
|
||||
|
||||
underscores_in_headers on;
|
||||
$RESOLVER
|
||||
# underscores_in_headers on;
|
||||
# $RESOLVER
|
||||
|
||||
# JWT TOKEN
|
||||
location /token/jwt/rest/idp/v0/dafa {
|
||||
proxy_pass $JWT_URL;
|
||||
}
|
||||
# # JWT TOKEN
|
||||
# location /token/jwt/rest/idp/v0/dafa {
|
||||
# proxy_pass $JWT_URL;
|
||||
# }
|
||||
|
||||
|
||||
error_page 404 /404.html;
|
||||
86
nginx/nginx.conf
Normal file
86
nginx/nginx.conf
Normal file
@@ -0,0 +1,86 @@
|
||||
# For more information on configuration, see:
|
||||
# * Official English Documentation: http://nginx.org/en/docs/
|
||||
# * Official Russian Documentation: http://nginx.org/ru/docs/
|
||||
|
||||
|
||||
worker_processes auto;
|
||||
error_log /var/opt/rh/rh-nginx112/log/nginx/error.log;
|
||||
pid /var/opt/rh/rh-nginx112/run/nginx/nginx.pid;
|
||||
|
||||
# Load dynamic modules. See /opt/rh/rh-nginx112/root/usr/share/doc/README.dynamic.
|
||||
include /opt/rh/rh-nginx112/root/usr/share/nginx/modules/*.conf;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
access_log /var/opt/rh/rh-nginx112/log/nginx/access.log main;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
types_hash_max_size 2048;
|
||||
|
||||
gzip on;
|
||||
gzip_types application/xml application/json text/css text/javascript application/javascript;
|
||||
gzip_vary on;
|
||||
gzip_comp_level 6;
|
||||
gzip_min_length 500;
|
||||
|
||||
include /etc/opt/rh/rh-nginx112/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Load modular configuration files from the /etc/nginx/conf.d directory.
|
||||
# See http://nginx.org/en/docs/ngx_core_module.html#include
|
||||
# for more information.
|
||||
include /opt/app-root/etc/nginx.d/*.conf;
|
||||
|
||||
server {
|
||||
listen 8080 default_server;
|
||||
listen [::]:8080 default_server;
|
||||
server_name _;
|
||||
root /opt/app-root/src;
|
||||
|
||||
# Load configuration files for the default server block.
|
||||
include /opt/app-root/etc/nginx.default.d/*.conf;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
expires -1;
|
||||
}
|
||||
|
||||
location ~* \.(?:jpg|jpeg|gif|png|ico|woff2)$ {
|
||||
expires 1M;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
|
||||
location ~* \.(?:js|json|css)$ {
|
||||
add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate";
|
||||
}
|
||||
|
||||
# underscores_in_headers on;
|
||||
# $RESOLVER
|
||||
|
||||
# # JWT TOKEN
|
||||
# location /token/jwt/rest/idp/v0/dafa {
|
||||
# proxy_pass $JWT_URL;
|
||||
# }
|
||||
|
||||
|
||||
error_page 404 /404.html;
|
||||
location = /40x.html {
|
||||
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
60
openshift/dev/Jenkinsfile
vendored
60
openshift/dev/Jenkinsfile
vendored
@@ -1,10 +1,11 @@
|
||||
def cicdproject = "${CICD_NAMESPACE}"
|
||||
def appname = "${APP_NAME}"
|
||||
def devproject = "${DEV_NAMESPACE}"
|
||||
def i1project = "${I1_NAMESPACE}"
|
||||
def u1project = "${U1_NAMESPACE}"
|
||||
def t1project = "${T1_NAMESPACE}"
|
||||
def jenkinsslave = "nodejs12-agent"
|
||||
def utv_project = "${UTV_NAMESPACE}"
|
||||
def test_project = "${TEST_NAMESPACE}"
|
||||
def auto_project = "${AUTO_NAMESPACE}"
|
||||
def sys_project = "${SYS_NAMESPACE}"
|
||||
def jenkinsslave = "nodejs15-agent"
|
||||
def dist_path = "dist/apps/dafa-web"
|
||||
|
||||
pipeline {
|
||||
|
||||
@@ -89,19 +90,18 @@ pipeline {
|
||||
}
|
||||
|
||||
stage("Build application") {
|
||||
environment {
|
||||
NGINX_PATH = "${dist_path}/."
|
||||
}
|
||||
steps {
|
||||
echo '### Building application... ###'
|
||||
|
||||
sh '''
|
||||
npm run build -- --output-path=dist
|
||||
cp -r nginx/* dist/.
|
||||
'''
|
||||
npm run build:dafa
|
||||
|
||||
// Used when testing Openshift, so that we dont need to wait for build. Also put a # before npm ci above
|
||||
// sh '''
|
||||
// mkdir dist
|
||||
// echo hello > dist/index.html
|
||||
// '''
|
||||
cp nginx/nginx.conf ${NGINX_PATH}
|
||||
#cp -r nginx/* ${NGINX_PATH}
|
||||
'''
|
||||
|
||||
echo '### Application built! ###'
|
||||
}
|
||||
@@ -111,8 +111,8 @@ pipeline {
|
||||
echo '### Creating image... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(devproject) {
|
||||
openshift.selector("bc", "${ appname }").startBuild("--from-dir=./dist", "--wait=true")
|
||||
openshift.withProject(utv_project) {
|
||||
openshift.selector("bc", "${ appname }").startBuild("--from-dir=${dist_path}", "--wait=true")
|
||||
openshift.tag("${ appname }:latest", "${ appname }:${BUILD_TAG}")
|
||||
}
|
||||
}
|
||||
@@ -121,51 +121,51 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy u1') {
|
||||
stage('Deploy to "auto"') {
|
||||
steps {
|
||||
echo '### Deploying to U1... ###'
|
||||
echo '### Deploying to "auto"... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(u1project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${devproject}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.withProject(auto_project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${utv_project}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.raw("annotate dc ${ appname } version=${BUILD_TAG} --overwrite=true")
|
||||
openshift.selector("dc", "${ appname }").rollout().status();
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '### Deployed to U1! ###'
|
||||
echo '### Deployed to "auto"! ###'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy i1') {
|
||||
stage('Deploy to "test"') {
|
||||
steps {
|
||||
echo '### Deploying to I1... ###'
|
||||
echo '### Deploying to "test"... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(i1project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${devproject}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.withProject(test_project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${utv_project}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.raw("annotate dc ${ appname } version=${BUILD_TAG} --overwrite=true")
|
||||
openshift.selector("dc", "${ appname }").rollout().status();
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '### Deployed to I1! ###'
|
||||
echo '### Deployed to "test"! ###'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy t1') {
|
||||
stage('Deploy "sys"') {
|
||||
steps {
|
||||
echo '### Deploying to T1... ###'
|
||||
echo '### Deploying to "sys"... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(t1project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${devproject}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.withProject(sys_project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${utv_project}/${ appname }:${BUILD_TAG} --record=true --source=docker")
|
||||
openshift.raw("annotate dc ${ appname } version=${BUILD_TAG} --overwrite=true")
|
||||
openshift.selector("dc", "${ appname }").rollout().status();
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '### Deployed to T1! ###'
|
||||
echo '### Deployed to "sys"! ###'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
39
openshift/prod/Jenkinsfile
vendored
39
openshift/prod/Jenkinsfile
vendored
@@ -1,9 +1,10 @@
|
||||
def cicdproject = "${CI_CD_NAMESPACE}"
|
||||
def cicdproject = "${CICD_NAMESPACE}"
|
||||
def appname = "${APP_NAME}"
|
||||
def devproject = "${DEV_NAMESPACE}"
|
||||
def t2project = "${T2_NAMESPACE}"
|
||||
def prodproject = "${PROD_NAMESPACE}"
|
||||
def jenkinsslave = "nodejs12-agent"
|
||||
def utv_project = "${UTV_NAMESPACE}"
|
||||
def acc_project = "${ACC_NAMESPACE}"
|
||||
def prod_project = "${PROD_NAMESPACE}"
|
||||
def jenkinsslave = "nodejs15-agent"
|
||||
def dist_path = "dist/apps/dafa-web"
|
||||
|
||||
pipeline {
|
||||
|
||||
@@ -88,11 +89,17 @@ pipeline {
|
||||
}
|
||||
|
||||
stage("Build application") {
|
||||
environment {
|
||||
NGINX_PATH = "${dist_path}/."
|
||||
}
|
||||
steps {
|
||||
echo '### Building application... ###'
|
||||
sh '''
|
||||
npm run build:prod -- --output-path=dist
|
||||
cp -r nginx/* dist/.
|
||||
npm run build:dafa -- --prod
|
||||
|
||||
cp nginx/nginx.conf ${NGINX_PATH}
|
||||
#cp -r nginx/* ${NGINX_PATH}
|
||||
|
||||
ls -la dist
|
||||
'''
|
||||
echo '### Application built! ###'
|
||||
@@ -104,8 +111,8 @@ pipeline {
|
||||
echo '### Creating image... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(devproject) {
|
||||
openshift.selector("bc", "${ appname }").startBuild("--from-dir=./dist", "--wait=true")
|
||||
openshift.withProject(utv_project) {
|
||||
openshift.selector("bc", "${ appname }").startBuild("--from-dir=${dist_path}", "--wait=true")
|
||||
openshift.tag("${ appname }:latest", "${ appname }:${BUILD_TAG}")
|
||||
}
|
||||
}
|
||||
@@ -115,19 +122,19 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy T2') {
|
||||
stage('Deploy to "acc"') {
|
||||
steps {
|
||||
echo '### Deploying to T2... ###'
|
||||
echo '### Deploying to "acc"... ###'
|
||||
script {
|
||||
openshift.withCluster() {
|
||||
openshift.withProject(t2project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${devproject}/${ appname }:${BUILD_TAG} --record=true --source=docker ")
|
||||
openshift.withProject(acc_project) {
|
||||
openshift.raw("set image dc/${ appname } ${ appname }=docker-registry.default.svc:5000/${utv_project}/${ appname }:${BUILD_TAG} --record=true --source=docker ")
|
||||
openshift.raw("annotate dc ${ appname } version=${BUILD_TAG} --overwrite=true")
|
||||
openshift.selector("dc", "${ appname }").rollout().status();
|
||||
}
|
||||
}
|
||||
}
|
||||
echo '### Deployed to T2! ###'
|
||||
echo '### Deployed to "acc"! ###'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,7 +152,7 @@ pipeline {
|
||||
openshift.withProject(cicdproject) {
|
||||
def registry = "nexus.arbetsformedlingen.se:5555"
|
||||
withCredentials([usernamePassword(credentialsId: "${openshift.project()}-nexus-secret", usernameVariable: "REG_USER", passwordVariable: "REG_PWD")]) {
|
||||
sh "skopeo copy docker://docker-registry.default.svc:5000/${devproject}/${appname}:latest docker://${registry}/app-af-nexus/${appname}:${BUILD_TAG} --src-creds jenkins:\$(oc whoami -t) --dest-creds \"$REG_USER:$REG_PWD\" --src-tls-verify=false --dest-tls-verify=false --format v2s2"
|
||||
sh "skopeo copy docker://docker-registry.default.svc:5000/${utv_project}/${appname}:latest docker://${registry}/app-af-nexus/${appname}:${BUILD_TAG} --src-creds jenkins:\$(oc whoami -t) --dest-creds \"$REG_USER:$REG_PWD\" --src-tls-verify=false --dest-tls-verify=false --format v2s2"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -166,7 +173,7 @@ pipeline {
|
||||
}
|
||||
|
||||
openshift.withCluster( env.API, env.TOKEN ) {
|
||||
openshift.withProject(prodproject) {
|
||||
openshift.withProject(prod_project) {
|
||||
// Wait for approval
|
||||
timeout(time:1440, unit:'MINUTES') {
|
||||
input message: "Go Live with ${ appname } in Production?", ok: "Confirm"
|
||||
|
||||
35295
package-lock.json
generated
35295
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -41,7 +41,7 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@af/auth": "^11.1.0",
|
||||
"@af/digi-ng": "^12.1.0",
|
||||
"@af/digi-ng": "^14.0.0",
|
||||
"@angular/animations": "^11.2.0",
|
||||
"@angular/common": "^11.2.0",
|
||||
"@angular/compiler": "^11.2.0",
|
||||
@@ -50,7 +50,7 @@
|
||||
"@angular/platform-browser": "^11.2.0",
|
||||
"@angular/platform-browser-dynamic": "^11.2.0",
|
||||
"@angular/router": "^11.2.0",
|
||||
"@digi/core": "^6.0.2",
|
||||
"@digi/core": "^9.0.0",
|
||||
"@digi/styles": "^6.0.2",
|
||||
"@nrwl/angular": "11.5.1",
|
||||
"rxjs": "~6.6.3",
|
||||
|
||||
Reference in New Issue
Block a user