@ -0,0 +1,71 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: smartfit
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build_api_image
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
context: .
|
||||||
|
registry: hub.codefirst.iut.uca.fr
|
||||||
|
repo: hub.codefirst.iut.uca.fr/remi.arnal/smartfit_api
|
||||||
|
username:
|
||||||
|
from_secret: cf_username
|
||||||
|
password:
|
||||||
|
from_secret: cf_password
|
||||||
|
|
||||||
|
- name: sonarqube
|
||||||
|
image: sonarsource/sonar-scanner-cli
|
||||||
|
environment:
|
||||||
|
SONAR_TOKEN:
|
||||||
|
from_secret: sonar_token
|
||||||
|
commands:
|
||||||
|
- sonar-scanner -Dsonar.projectKey=SmartFit_API
|
||||||
|
-Dsonar.sources=./app/
|
||||||
|
-Dsonar.inclusions=**/*.php
|
||||||
|
-Dsonar.login=$${SONAR_TOKEN}
|
||||||
|
-Dsonar.language=php
|
||||||
|
-Dsonar.host.url=https://codefirst.iut.uca.fr/sonar
|
||||||
|
depends_on: [build_api_image]
|
||||||
|
|
||||||
|
- name: deploy_api_image
|
||||||
|
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
|
||||||
|
environment:
|
||||||
|
IMAGENAME: hub.codefirst.iut.uca.fr/remi.arnal/smartfit_api:latest
|
||||||
|
CONTAINERNAME: smartfit_api
|
||||||
|
COMMAND: create
|
||||||
|
OVERWRITE: true
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_SMDB_HOST: SmartFit-smartfit_db
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_SMDB_DATABASE:
|
||||||
|
from_secret: db_database
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_SMDB_USER:
|
||||||
|
from_secret: db_user
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_SMDB_PASSWORD:
|
||||||
|
from_secret: db_password
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_ROOT_PASSWORD:
|
||||||
|
from_secret: db_root_password
|
||||||
|
ADMINS: remiarnal,enzojolys,othmanebenjelloun
|
||||||
|
depends_on: [ build_api_image ]
|
||||||
|
|
||||||
|
- name: deploy_database_image
|
||||||
|
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
|
||||||
|
environment:
|
||||||
|
IMAGENAME: mariadb:11.1.2
|
||||||
|
CONTAINERNAME: smartfit_db
|
||||||
|
PRIVATE : true
|
||||||
|
COMMAND: create
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD:
|
||||||
|
from_secret: db_root_password
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE:
|
||||||
|
from_secret: db_database
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER:
|
||||||
|
from_secret: db_user
|
||||||
|
CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD:
|
||||||
|
from_secret: db_password
|
||||||
|
ADMINS: remiarnal,enzojolys,othmanebenjelloun
|
||||||
|
depends_on: [ deploy_api_image ]
|
@ -0,0 +1,13 @@
|
|||||||
|
FROM php:8.1-apache
|
||||||
|
RUN apt-get update && apt-get install -y git zip
|
||||||
|
RUN docker-php-ext-install pdo pdo_mysql
|
||||||
|
COPY . /var/www/html/
|
||||||
|
WORKDIR /var/www/html/
|
||||||
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||||
|
RUN composer update && composer install
|
||||||
|
RUN echo "file_uploads = On\nmemory_limit = 64M\nupload_max_filesize = 64M\npost_max_size = 64M\nmax_execution_time = 600\n" > /usr/local/etc/php/conf.d/uploads.ini
|
||||||
|
RUN a2enmod rewrite
|
||||||
|
RUN a2enmod actions
|
||||||
|
RUN service apache2 restart
|
||||||
|
RUN mkdir -p /home/hel/smartfit_hdd
|
||||||
|
RUN chmod -R 777 /home/hel/smartfit_hdd
|
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export SMDB_HOST=localhost
|
||||||
|
export SMDB_DATABASE=smartfit
|
||||||
|
export SMDB_USER=manager
|
||||||
|
export SMDB_PASSWORD=manager
|
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
namespace Config;
|
||||||
|
use Config\Connection;
|
||||||
|
use Config\DatabaseCon;
|
||||||
|
use PDOException;
|
||||||
|
|
||||||
|
class DatabaseInit {
|
||||||
|
private Connection $con;
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
if(getenv("IS_DB_INIT") === false) {
|
||||||
|
#try {
|
||||||
|
$this->con = (new DatabaseCon)->connect();
|
||||||
|
#} catch(PDOException $e) {
|
||||||
|
# throw new PDOException($e->getMessage(), $e->getCode(), $e);
|
||||||
|
$this->createUserTable();
|
||||||
|
$this->createFileTable();
|
||||||
|
putenv("IS_DB_INIT=true");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createUserTable() {
|
||||||
|
$query = 'CREATE TABLE IF NOT EXISTS user (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
email VARCHAR(100) UNIQUE,
|
||||||
|
hash VARCHAR(255),
|
||||||
|
username VARCHAR(20) DEFAULT \'Change Me!\',
|
||||||
|
creation_date DATE);';
|
||||||
|
|
||||||
|
$this->con->executeQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createFileTable() {
|
||||||
|
$query = 'CREATE TABLE IF NOT EXISTS file (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
user_id UUID REFERENCES `user`(`id`) ON DELETE CASCADE,
|
||||||
|
filename VARCHAR(100) DEFAULT CURDATE(),
|
||||||
|
category VARCHAR(50),
|
||||||
|
creation_date DATETIME,
|
||||||
|
import_date DATE);';
|
||||||
|
|
||||||
|
$this->con->executeQuery($query);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
CREATE TABLE user (
|
||||||
|
`id` UUID PRIMARY KEY,
|
||||||
|
email VARCHAR(100) UNIQUE,
|
||||||
|
hash VARCHAR(255),
|
||||||
|
username VARCHAR(20) DEFAULT 'Change Me!',
|
||||||
|
creation_date DATE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE file (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
`user_id` UUID REFERENCES `user`(`id`) ON DELETE CASCADE,
|
||||||
|
filename VARCHAR(100) DEFAULT CURDATE(),
|
||||||
|
import_date DATE,
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CREATE USER
|
||||||
|
INSERT INTO user VALUES (UUID(), MAIL, HASH, USERNAME, CURDATE());
|
||||||
|
|
||||||
|
-- DELETE USER
|
||||||
|
DELETE FROM user WHERE id=USER_ID;
|
||||||
|
|
||||||
|
-- GET FILE LIST
|
||||||
|
SELECT id, import_date, title FROM file WHERE user_id=USER_ID;
|
||||||
|
|
||||||
|
-- UPLOAD FILE
|
||||||
|
INSERT INTO file VALUES (UUID(), USER_ID, TITLE, CURDATE(), DATA);
|
||||||
|
|
||||||
|
-- DELETE FILE
|
||||||
|
DELETE FROM file WHERE id=ID and USER_ID=USER_ID;
|
||||||
|
|
||||||
|
-- UPDATE MAIL
|
||||||
|
UPDATE user SET mail=MAIL WHERE id=ID;
|
||||||
|
|
||||||
|
-- UPDATE USERNAME
|
||||||
|
UPDATE user SET username=USERNAME WHERE id=ID;
|
Loading…
Reference in new issue