Skip to content

Commit

Permalink
Merge branch 'refs/heads/backend'
Browse files Browse the repository at this point in the history
# Conflicts:
#	backend/src/main/java/org/conferatus/timetable/backend/model/entity/StudyGroup.java
#	backend/src/main/java/org/conferatus/timetable/backend/model/entity/Subject.java
#	backend/src/main/java/org/conferatus/timetable/backend/model/entity/Teacher.java
  • Loading branch information
ttrubinov committed Jun 24, 2024
2 parents 2a7029c + 6633dd4 commit f6890b5
Show file tree
Hide file tree
Showing 104 changed files with 5,167 additions and 568 deletions.
97 changes: 58 additions & 39 deletions .github/workflows/github-actions.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,71 @@
# This is a basic workflow to help you get started with Actions

name: CI

on:
push:
branches: [ "master" ]
paths-ignore:
- '**.md'

pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:
name: CD
on: [push]

jobs:
backend:
backend_job:
runs-on: ubuntu-latest
# runs-on: self-hosted
name: building and ssh
environment: backend?
steps:
- uses: actions/checkout@v3
- name: directory tree
run: echo tree

- name: aboba
run: pwd

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'corretto'

- name: Update db url
run: sed -i 's/<cluster_link>/${{ secrets.CLUSTER_LINK }}/' backend/src/main/resources/application.properties

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Update db port
run: sed -i 's/<port>/${{ secrets.PORT }}/' backend/src/main/resources/application.properties

- name: Update db name
run: sed -i 's/<db>/${{ secrets.DB }}/' backend/src/main/resources/application.properties

- name: chmod gradlew
working-directory: ./backend
run: chmod +x ./gradlew
- name: Update db username
run: sed -i 's/<username>/${{ secrets.USERNAME }}/' backend/src/main/resources/application.properties

- name: build gradle project
working-directory: ./backend
run: ./gradlew build
- name: Update db password
run: sed -i 's/<password>/${{ secrets.PASSWORD }}/' backend/src/main/resources/application.properties

- name: Execute Gradle build
working-directory: ./backend
run: ./gradlew test
- name: build

- name: Generate Jacoco report
working-directory: ./backend
run: ./gradlew jacocoTestReport
run: |
cd ./backend;
ls -al;
docker ps;
docker build -t timetable_backend:latest .;
docker image ls;
docker save -o /tmp/timetable_backend.tar timetable_backend:latest;
ls -al;
echo "ABOBA";
ls /tmp -al;
- uses: actions/upload-artifact@v3
with:
name: Package
path: ./backend/build/libs
- name: Configure SSH
run: |
mkdir -p ~/.ssh/
echo "$SSH_KEY" > ~/.ssh/cloud.key
chmod 600 ~/.ssh/cloud.key
cat >>~/.ssh/config <<END
Host cloud
HostName $SSH_HOST
User $SSH_USER
IdentityFile ~/.ssh/cloud.key
StrictHostKeyChecking no
END
env:
SSH_USER: ${{ secrets.SSH_USER }}
SSH_KEY: ${{ secrets.KEYYA }}
SSH_HOST: ${{ secrets.SSH_HOST }}
# - uses: actions/checkout@v3
- name: deploy
env:
KEYYA: ${{ secrets.KEYYA }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_HOST: ${{ secrets.SSH_HOST }}
run: |
scp -oStrictHostKeyChecking=no /tmp/timetable_backend.tar cloud:/tmp;
scp -oStrictHostKeyChecking=no ./backend/update.sh cloud:/tmp;
ssh cloud 'cd /tmp; ls -l; sh ./update.sh;';
8 changes: 5 additions & 3 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
FROM gradle:latest AS build
FROM gradle:8.6 AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle bootJar --no-daemon

FROM openjdk:17-oracle
FROM amazoncorretto:17

EXPOSE 8080
EXPOSE 8090

RUN mkdir /app

COPY --from=build /home/gradle/src/build/libs/backend-0.0.1-timetable-backend.jar /app/backend-0.0.1-timetable-backend.jar

ENTRYPOINT ["java", "-jar", "/app/backend-0.0.1-timetable-backend.jar"]

#a
10 changes: 8 additions & 2 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,18 @@ dependencies {
implementation 'io.micrometer:micrometer-registry-prometheus'
implementation 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// testImplementation 'org.springframework:spring-webflux'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
// https://mvnrepository.com/artifact/org.mockito/mockito-core
testImplementation 'org.mockito:mockito-core:4.11.0'
implementation 'org.springframework.boot:spring-boot-starter-security'

implementation 'io.jenetics:jenetics:7.2.0'
// https://mvnrepository.com/artifact/io.jenetics/prngine
implementation 'io.jenetics:prngine:2.0.0'

implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'com.auth0:java-jwt:4.3.0'

}

test {
Expand Down
46 changes: 23 additions & 23 deletions backend/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ services:
dockerfile: Dockerfile
container_name: time-table-backend
ports:
- 8080:8080
- 8090:8090
restart: always
depends_on:
- database
# depends_on:
# - database


database:
Expand All @@ -22,23 +22,23 @@ services:
- POSTGRES_DB=db
ports:
- 5432:5432


prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
depends_on:
- app

grafana:
image: grafana/grafana
ports:
- 3000:3000
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
depends_on:
- prometheus
#
#
# prometheus:
# image: prom/prometheus
# ports:
# - 9090:9090
# volumes:
# - ./config/prometheus.yml:/etc/prometheus/prometheus.yml
# depends_on:
# - app
#
# grafana:
# image: grafana/grafana
# ports:
# - 3000:3000
# environment:
# - GF_SECURITY_ADMIN_USER=admin
# - GF_SECURITY_ADMIN_PASSWORD=admin
# depends_on:
# - prometheus
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ public static void main(String[] args) {
}

}

// a

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.conferatus.timetable.backend.algorithm.constraints;

record CalculateResult(double value, String message) {
CalculateResult(double value) {
this(value, "OK");
}

public static CalculateResult ok() {
return new CalculateResult(0);
}

public static CalculateResult ok(double value) {
return new CalculateResult(value);
}

public static CalculateResult problem(double value, String message) {
return new CalculateResult(value, message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.conferatus.timetable.backend.algorithm.constraints;

import java.util.Objects;

public class Penalty {
String name;
PenaltyFunction penaltyFunction;
boolean isHard;

public Penalty(String name, PenaltyFunction penaltyFunction, boolean isHard) {
this.name = name;
this.penaltyFunction = penaltyFunction;
this.isHard = isHard;
}

@Override
public String toString() {
return "Penalty{" + name + '}';
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Penalty penalty = (Penalty) o;
return Objects.equals(name, penalty.name);
}

@Override
public int hashCode() {
return Objects.hash(name);
}
}
Loading

0 comments on commit f6890b5

Please sign in to comment.