@ -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