Skip to content
Snippets Groups Projects
Commit c88a751b authored by Gauthier DE MONTEYNARD's avatar Gauthier DE MONTEYNARD
Browse files

update gitlab ci

parent dd056fd1
No related branches found
No related tags found
1 merge request!1Developp
Pipeline #45396 failed
......@@ -2,25 +2,24 @@ variables:
APP: 'app'
MAVEN_IMAGE: 'maven:3.9.0-amazoncorretto-19'
KANIKO_IMAGE: "gcr.io/kaniko-project/executor:debug"
PROJECT_NAME: 'takima-store'
PROJECT_NAME: 'toDoList'
include: "/generic-config-template.yml"
workflow:
rules:
- if: $CI_COMMIT_BRANCH
variables:
DEPLOYMENT_ENV: Dev
- if: $CI_COMMIT_TAG
variables:
DEPLOYMENT_ENV: Production
#workflow:
# rules:
# - if: $CI_COMMIT_BRANCH
# variables:
# DEPLOYMENT_ENV: Dev
# - if: $CI_COMMIT_TAG
# variables:
# DEPLOYMENT_ENV: Production
stages:
- build
- test
- package
- deploy
# - package
backend:build:
image: $MAVEN_IMAGE
......@@ -51,49 +50,15 @@ backend:test:
backend:package:
extends: .common_package_config
dependencies:
- backend:build
script:
- /kaniko/executor
--context $CI_PROJECT_DIR/
--dockerfile $CI_PROJECT_DIR/Dockerfile
--destination $CI_REGISTRY_IMAGE/app:$CI_COMMIT_REF_NAME
--destination $CI_REGISTRY_IMAGE/app:latest
--cache=true
assets:package:
extends: .common_package_config
script:
- /kaniko/executor
--context $CI_PROJECT_DIR/assets-server/
--dockerfile $CI_PROJECT_DIR/assets-server/Dockerfile
--destination $CI_REGISTRY_IMAGE/assets-server:$CI_COMMIT_REF_NAME
--destination $CI_REGISTRY_IMAGE/assets-server:latest
--cache=true
deploy:
stage: deploy
variables:
TAG: '$CI_COMMIT_REF_NAME'
environment: $DEPLOYMENT_ENV
before_script:
- 'which ssh-agent || ( apk update && apk add openssh-client )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan $HOST >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
# Copying compose files over the server (we don't need the whole Git repo)
- scp -P 22 -r docker-compose.yml flyway rocky@$HOST:~/$PROJECT_NAME
- echo \nTAG=$TAG >> $ENV
- scp -P 22 $ENV rocky@$HOST:~/$PROJECT_NAME/.env
# Deployment
- ssh rocky@$HOST "cd $PROJECT_NAME && docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY"
- ssh rocky@$HOST "cd $PROJECT_NAME && docker compose pull && docker compose down -v && docker compose up -d --force-recreate --no-build"
#backend:package:
# extends: .common_package_config
# dependencies:
# - backend:build
# script:
# - /kaniko/executor
# --context $CI_PROJECT_DIR/
# --dockerfile $CI_PROJECT_DIR/Dockerfile
# --destination $CI_REGISTRY_IMAGE/app:$CI_COMMIT_REF_NAME
# --destination $CI_REGISTRY_IMAGE/app:latest
# --cache=true
version: "3.9"
services:
# app:
# image: registry.master3.takima.io/gdemonteynard/takima-store/app:${TAG:-latest}
# env_file:
# - .env
# networks:
# - db
# depends_on:
# db:
# condition: service_healthy
# restart: on-failure
# ports:
# - "8080:8080"
db:
image: postgres:15.2-alpine
restart: unless-stopped
networks:
- db
environment:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD:-ilovethierion}
- POSTGRES_USER=${DATABASE_USERNAME:-ilovethierion}
- POSTGRES_DB=${DATABASE_NAME:-entrainement_db}
- POSTGRES_PASSWORD=ilovethierion
- POSTGRES_USER=ilovethierion
- POSTGRES_DB=entrainement_db
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
......@@ -34,6 +22,20 @@ services:
retries: 3
ports:
- "5432:5432"
flyway:
image: flyway/flyway:9-alpine
command: -connectRetries=60 -baselineVersion="0.0" baseline migrate info
volumes:
- ./flyway/sql:/flyway/sql:ro
environment:
- FLYWAY_URL=${JDBC_URL}
- FLYWAY_USER=${DATABASE_USERNAME}
- FLYWAY_PASSWORD=${DATABASE_PASSWORD}
depends_on:
- db
networks:
- db
networks:
db:
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
......
package com.takima.entrainement;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
......
......@@ -70,10 +70,9 @@ public class ToDoApi {
@PutMapping("/{todoId}")
public ResponseEntity<EntityModel<ToDo>> update(@RequestBody ToDo todo, @PathVariable long todoId) {
// ToDo todoToUpdate = todoService.findById(todoId)
// .orElseThrow(() -> new NoSuchElementException(String.format("no todo with id %d", todoId)));
if (todoService.findById(todoId).isEmpty()) {
throw new NoSuchElementException(String.format("no todo with id %d", todoId));
}
todo.setId(todoId);
ToDo todoToUpdate = todoService.update(todo);
......@@ -93,7 +92,8 @@ class ToDoResourceAssembler implements RepresentationModelAssembler<ToDo, Entity
public EntityModel<ToDo> toModel(ToDo todo) {
return EntityModel.of(todo,
linkTo(methodOn(ToDoApi.class).getOne(todo.getId())).withSelfRel());
linkTo(methodOn(ToDoApi.class).getOne(todo.getId())).withSelfRel(),
linkTo(methodOn(ToDoApi.class).getAll("", Sort.unsorted(), 20, 0)).withRel("todos"));
}
}
package com.takima.entrainement.toDo.services;
import com.takima.entrainement.core.pagination.PageSearch;
import com.takima.entrainement.toDo.models.ToDo;
import org.springframework.data.domain.Page;
......
......@@ -8,7 +8,6 @@ import com.takima.entrainement.toDo.services.ToDoService;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment