File: /var/www/heifetz/heifetz-app/README.md
## Разворачивание
Для запуска проекта нужно создать папки в корне проекта и дать права на запись:
- sessions
- logs
- tmp
- uploads
```
mkdir sessions && mkdir logs && mkdir tmp && mkdir uploads
chmod 777 sessions
chmod 777 logs
chmod 777 tmp
chmod 777 uploads
```
### Установка PHP библиотек
Нужно что-то сделать с доступами в наш репозиторий с hello-bot
```
composer install
```
### Сборка фронта
```
yarn
yarn run build
```
Скопировать и настроить под себя окружение:
- .env.example -> .env
## Поднимаем проект в docker
```
// Linux
docker-compose up -d
// macOS
docker compose up -d
```
## БД
Из дампа необходимо развернуть базу
### Запуск миграций
Миграции можно запускать двумя способами:
- из docker контейнера `php migration.php`
- или из корня проекта `docker exec $(docker ps --filter name=php -q) php migration.php`
## Сборка блокировщика страниц
```
GOOS=linux GOARCH=amd64 go build -o daemons/locker docker/locker/files/locker.go
```
---
## Тестирование
### Общая настройка
Скопировать и настроить под себя codeception:
- codeception.yml.example -> codeception.yml
### При написании нового теста
```
git fetch
git checkout -f develop
git reset --hard origin/develop
```
### Unit
Скопировать и настроить под себя codeception:
- tests/unit.suite.yml.example -> tests/unit.suite.yml
Запуск: `codecept run unit`
### Acceptance
Установить Java:
`sudo apt install default-jre`
Скопировать и настроить под себя codeception:
- tests/acceptance.suite.yml.example -> tests/acceptance.suite.yml
### Тестирование в docker
Для надо поднять локальный Selenium:
Запустить Selenium Server:
```
// Linux
java -Dwebdriver.chrome.driver=./tests/drivers/linux/chromedriver89 -jar ./tests/selenium-server-standalone-3.141.59.jar
// macOS
java -Dwebdriver.chrome.driver=./tests/drivers/mac/chromedriver101 -jar ./tests/selenium-server-standalone-3.141.59.jar
```
Запустить тесты из контейнера:
`php vendor/codeception/codeception/codecept run acceptance`
Если нужно поднять окружение в докере, добавьте в корень auth.json вида, токен можно получить тут: https://gitlab.com/-/profile/personal_access_tokens
Не забудьте добавить права на чтение репозиториев и api, иначе не заработает.
```json
{
"gitlab-oauth": {
"gitlab.com": "YOUR_TOKEN"
}
}
```
Обновление сертификатов
```shell
sudo certbot --expand -d hrprofit.ru,atlant.hrprofit.ru,foach.hrprofit.ru,lider.hrprofit.ru,rm.hrprofit.ru,sip.hrprofit.ru,kroitoru.hrprofit.ru,bizbenjur.hrprofit.ru,kadrunion.hrprofit.ru,startaff.hrprofit.ru,vak.hrprofit.ru,sandbox.hrprofit.ru,smartaliance.hrprofit.ru
```