From 18752f0884143b3911a5ac9d8f0481712686d183 Mon Sep 17 00:00:00 2001 From: Yanis Hessini <hessini.yanis@gmail.com> Date: Thu, 2 Feb 2023 16:27:52 +0100 Subject: [PATCH] CI CD avec Arise --- .gitignore | 3 ++- .gitlab-ci.yml | 34 ++++++++++++++++++++++++++++++++++ docker-compose.yml | 25 ++++++++++++++++++++----- dockerfile_adminer | 1 + dockerfile_nginx | 1 + www/data/memo.json | 2 +- www/test.php | 24 ++++++++++++++++++++++++ 7 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 dockerfile_adminer create mode 100644 dockerfile_nginx create mode 100644 www/test.php diff --git a/.gitignore b/.gitignore index 0794bd9..45d5ad9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ log/access.log -log/error.log \ No newline at end of file +log/error.log +composer/ \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2a8ba28 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,34 @@ +image: debian:latest + +stages: + - validate + - build + - deploy + +validate_job: + stage: validate + script: + - echo "Testing with PHP Unit" + +build_job: + stage: build + script: + - echo "Building with Docker" + - docker-compose build + - docker-compose push + - echo "Docker images pushed to Docker Hub" + +deploy_job: + stage: deploy + before_script: + - apt update + - apt install sshpass + script: + - echo "Deploying to OVH Server" + - sshpass -p 'fipa' ssh root@141.94.166.114 + - cd nosql-memo + - git pull + - docker-compose pull + - docker-compose up -d + + diff --git a/docker-compose.yml b/docker-compose.yml index 5c25480..16d5f73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,9 @@ version: '3.9' services: nginx-memo: - image: nginx:stable-alpine + build: + dockerfile: dockerfile_nginx + image: itsjanis/nginx-memo:latest container_name: nginx-memo volumes: - "./www:/usr/share/nginx/html:ro" @@ -17,6 +19,7 @@ services: php: build: dockerfile: dockerfile_php + image: itsjanis/php-memo:latest depends_on: - redis-memo - postgresql-memo @@ -30,11 +33,13 @@ services: postgresql-memo: build: dockerfile: dockerfile_postgres + image: itsjanis/postgresql-memo:latest restart: unless-stopped container_name: postgresql-memo environment: POSTGRES_USER: admin POSTGRES_PASSWORD: password + POSTGRES_DB: memo ports: - published: 5432 target: 5432 @@ -46,12 +51,12 @@ services: redis-memo: build: - dockerfile: dockerfile_redis - + dockerfile: dockerfile_redis + image: itsjanis/redis-memo:latest restart: unless-stopped container_name: redis-memo ports: - - published: 6379 + - published: 6380 target: 6379 volumes: - ./www/data/redis_data/taches.redis:/redisdata/data/taches.redis @@ -63,7 +68,9 @@ services: adminer-memo: - image: adminer + build: + dockerfile: dockerfile_adminer + image: itsjanis/adminer-memo:latest restart: unless-stopped container_name: adminer-memo ports: @@ -71,6 +78,14 @@ services: target: 8080 networks: - databases + + # composer-memo: + # image: composer:1.9.3 + # environment: + # - COMPOSER_CACHE_DIR=/app/var/cache/composer + # volumes: + # - ./composer:/app + # # restart: never volumes: postgres_data: diff --git a/dockerfile_adminer b/dockerfile_adminer new file mode 100644 index 0000000..63adb13 --- /dev/null +++ b/dockerfile_adminer @@ -0,0 +1 @@ +FROM adminer \ No newline at end of file diff --git a/dockerfile_nginx b/dockerfile_nginx new file mode 100644 index 0000000..e05ebda --- /dev/null +++ b/dockerfile_nginx @@ -0,0 +1 @@ +FROM nginx:stable-alpine \ No newline at end of file diff --git a/www/data/memo.json b/www/data/memo.json index 1609ee2..a8c4296 100644 --- a/www/data/memo.json +++ b/www/data/memo.json @@ -1 +1 @@ -{"5defb94651ea3":{"texte":"finir le tp de prog web","accomplie":true,"dateAjout":"2019-12-10T15:27:02.000Z"},"5defb9a88e9a3":{"texte":"finir le tp d'animation ","accomplie":false,"dateAjout":"2019-12-10T15:28:40.000Z"},"5defbc36499e1":{"texte":"finir le tp de design","accomplie":true,"dateAjout":"2019-12-10T15:39:34.000Z"},"5defbc4b20c23":{"texte":"finir le tp de bdd","accomplie":false,"dateAjout":"2019-12-10T15:39:55.000Z"},"5defbc7418ff8":{"texte":"finir le tp de vid\u00e9o ","accomplie":true,"dateAjout":"2019-12-10T15:40:36.000Z"},"63763c41d6d4f":{"texte":"pr\u00e9parer la pr\u00e9sentation d'anglais","accomplie":true,"dateAjout":"2022-11-17 13:50:57"},"63764775e6206":{"texte":"finir projet nosql","accomplie":false,"dateAjout":"2022-11-17 14:38:45"},"637648750c469":{"texte":"finir projet web services","accomplie":false,"dateAjout":"2022-11-17 14:43:01"},"637648842e03f":{"texte":"appr\u00e9cier la puissance de docker","accomplie":false,"dateAjout":"2022-11-17 14:43:16"},"637652f339886":{"texte":"finir le projet nosql","accomplie":false,"dateAjout":"2022-11-17 15:27:47"},"6376543653b77":{"texte":"finir la pr\u00e9sentation en anglais","accomplie":true,"dateAjout":"2022-11-17 15:33:10"},"6376587328a8d":{"texte":"test","accomplie":false,"dateAjout":"2022-11-17 15:51:15"},"6376543154534":{"accomplie":false},"6376542bcaa53":{"accomplie":false},"6379276f2048f":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 18:58:55"},"63792c429807b":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 19:19:30"},"6379310f77d68":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 19:39:59"}} \ No newline at end of file +{"5defb94651ea3":{"texte":"finir le tp de prog web","accomplie":true,"dateAjout":"2019-12-10T15:27:02.000Z"},"5defb9a88e9a3":{"texte":"finir le tp d'animation ","accomplie":false,"dateAjout":"2019-12-10T15:28:40.000Z"},"5defbc36499e1":{"texte":"finir le tp de design","accomplie":true,"dateAjout":"2019-12-10T15:39:34.000Z"},"5defbc4b20c23":{"texte":"finir le tp de bdd","accomplie":false,"dateAjout":"2019-12-10T15:39:55.000Z"},"5defbc7418ff8":{"texte":"finir le tp de vid\u00e9o ","accomplie":true,"dateAjout":"2019-12-10T15:40:36.000Z"},"63763c41d6d4f":{"texte":"pr\u00e9parer la pr\u00e9sentation d'anglais","accomplie":true,"dateAjout":"2022-11-17 13:50:57"},"63764775e6206":{"texte":"finir projet nosql","accomplie":false,"dateAjout":"2022-11-17 14:38:45"},"637648750c469":{"texte":"finir projet web services","accomplie":false,"dateAjout":"2022-11-17 14:43:01"},"637648842e03f":{"texte":"appr\u00e9cier la puissance de docker","accomplie":false,"dateAjout":"2022-11-17 14:43:16"},"637652f339886":{"texte":"finir le projet nosql","accomplie":false,"dateAjout":"2022-11-17 15:27:47"},"6376543653b77":{"texte":"finir la pr\u00e9sentation en anglais","accomplie":true,"dateAjout":"2022-11-17 15:33:10"},"6376587328a8d":{"texte":"test","accomplie":false,"dateAjout":"2022-11-17 15:51:15"},"6376543154534":{"accomplie":false},"6376542bcaa53":{"accomplie":true},"6379276f2048f":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 18:58:55"},"63792c429807b":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 19:19:30"},"6379310f77d68":{"texte":"test","accomplie":false,"dateAjout":"2022-11-19 19:39:59"},"63caa478534b2":{"accomplie":true}} \ No newline at end of file diff --git a/www/test.php b/www/test.php new file mode 100644 index 0000000..bdaabcc --- /dev/null +++ b/www/test.php @@ -0,0 +1,24 @@ +<?php declare(strict_types=1); +// Path: nosql-memo\www\test.php + +use PHPUnit\Framework\TestCase; +// test de la connexion à la base de données PostgreSQL + +final class databases { + public function testPostgres(): void { + $config = "pgsql:host=postgresql-memo;port=5432;dbname=postgres"; + $username = "admin"; + $password = "password"; + + $db_connection = new PDO($config, $username, $password); + + $this->assertInstanceOf(PDO::class, $db_connection); + } + + public function testRedis(): void { + $redis = new Redis(); + $redis->connect('redis-memo', 6379); + + $this->assertInstanceOf(Redis::class, $redis); + } +} \ No newline at end of file -- GitLab