Обновление ПО Gitflic с 2.х.х до 3.х.х версии


Общие сведения

Начиная с версии 3.0.0 , у ПО GitFlic изменена схема работы с lsf и файлами релизов. В связи с этим, необходимо будет использовать дополнительный инструмент cli.jar для того что бы, старые данные хранящиеся на файловой системе в версиях 2.х.х, могли корректно взаимодействовать с новым механизом работы. В случае если вы не используете cli.jar перед обновлением, файлы релизов и lfs, могут некоректно отображаться в веб интерфейсе ПО GitFlic и работа с ними будет невозможна.

* Начиная с версии 3.0.0 вместе со сборкой поставляется cli.jar и gitflic-cli.sh для запуска.
* Приложению cli.jar необходим доступ к базам данных Postgresql и Redis с которыми работает ПО GitFlic.
* Приложению cli.jar необходим доступ к статическим файлам с которыми работает ПО GitFlic.
* Необходимо использовать скрипт gitflic-cli.sh для запуска cli.jar.
* Необходимо использовать файл application.properties, который вы используете для запуска ПО GitFlic.

Случаи когда НЕОБХОДИМО запустить gitflic-cli.sh <путь до application.properties>:
- Если вы переходите на версию 3.x.x. Например, вы работаете с версией 2.16.1 и у вас появилась необходимость обновить GitFlic до версии 3.0.0 (и выше)

Случаи когда запускать gitflic-cli.sh НЕ НУЖНО:
- Вы впервые разворачиваете GitFlic версии 3.0.0+
- Вы ранее уже запускали gitflic-cli.sh и успешно выполнили обновление, повторно запускать его не требуется.

Пошаговая инструкция по запуску:

1. Запускаем скрипт gitflic-cli.sh <путь до application.properties>. Например, gitflic-cli.sh /user/admin/gitflic/default-config/application.properties

2. Дожидаемся запуска

```
2024-02-22 14:36:32.630  INFO 7 --- [           main] o.s.i.channel.PublishSubscribeChannel    : Channel 'application.errorChannel' has 1 subscriber(s).
2024-02-22 14:36:32.631  INFO 7 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : started bean '_org.springframework.integration.errorLogger'
shell:>
```

3. Вводим команду fix releases,для исправления работы с файлами релизов, после чего в консоли будет следующий лог

Лог в начале: 

```
2024-02-14 14:37:50.291  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : --- Подсчет количества релизов --- 
2024-02-14 14:37:50.457  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Всего релизов 24
2024-02-14 14:37:50.458  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : ----------------------------------------- 

```

Лог после выполнения: 

```
2024-02-14 14:37:51.004  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Мигрировано: 24/24 100,00% релизов
2024-02-14 14:37:51.004  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Задача выполнена
```

4. Вводим команду fix lfs,для исправления работы с файлами lfs, после чего в консоли будет следующий лог

Лог в начале:

```
2024-02-14 14:49:25.372  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : --- Подсчет количества проектов с лфс --- 
2024-02-14 14:49:25.610  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Всего проектов с лфс: 12
``` 

Лог после выполнения: 

```
2024-02-14 14:49:25.624  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Починено:  12/12 100,00% проектов с lfs
2024-02-14 14:49:25.625  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Задача выполнена
```

5. После успешного выполнения можно выйти из приложения комбинацией клавиш ctrl+c

Обновление ПО Gitflic с 2.х.х до 3.х.х версии запущеного в докер контейнере


Пошаговая инструкция по запуску:

1. Остановите контейнер с ПО GitFlic.
2. Если базы данных были созданы в контейнерах, убедитесь что контейнеры с postgres и redis запущены и доступны.
3. Распакуйте архив с ПО GitFlic и перейдите в корень распакованной директории
4. Проверьте файл docker/ENV, на соответствие вашим настройкам приложения GitFlic. Или используйте файл ENV , используемый для запуска ПО GitFlic
5. Выполните команду на создание контейнера

docker compose --env-file docker/ENV --file cli/docker/docker-compose.yaml create

–env-file - Путь до файла с переменными окружения ПО GitFlic
–file - Путь до yaml файла с настройками cli для docker-compose

6. Выполните команду на вход в созданный контейнер

docker run -ti --env-file docker/ENV --network docker_git_net --entrypoint=bash docker-fixcli

–env-file - Путь до файла с переменными окружения ПО GitFlic, тот же что и в п.6
–network - Сеть docker в которой находятся контейнеры с postges и redis, если таковая использлвалась
–entrypoint=bash - Точка входа в контейнер. Оставить без изменений
docker-fixcli - Имя контейнера, созданного в п.5

7. После входа в контейнер, выполните команду на запуск приложения и дождитесь окончания загрузки приложения

./gitflic-cli.sh ./application.properties

8. Вводим команду fix releases,для исправления работы с файлами релизов, после чего в консоли будет следующий лог

Лог в начале: 

```
2024-02-14 14:37:50.291  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : --- Подсчет количества релизов --- 
2024-02-14 14:37:50.457  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Всего релизов 24
2024-02-14 14:37:50.458  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : ----------------------------------------- 

```

Лог после выполнения: 

```
2024-02-14 14:37:51.004  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Мигрировано: 24/24 100,00% релизов
2024-02-14 14:37:51.004  INFO 70237 --- [           main] c.gitflic.cli.service.ReleaseFixService  : Задача выполнена
```

9. Вводим команду fix lfs,для исправления работы с файлами lfs, после чего в консоли будет следующий лог

Лог в начале:

```
2024-02-14 14:49:25.372  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : --- Подсчет количества проектов с лфс --- 
2024-02-14 14:49:25.610  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Всего проектов с лфс: 12
``` 

Лог после выполнения: 

```
2024-02-14 14:49:25.624  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Починено:  12/12 100,00% проектов с lfs
2024-02-14 14:49:25.625  INFO 70237 --- [           main] com.gitflic.cli.service.LfsFixService    : Задача выполнена
```

10. Выполните обновление ПО GitFlic, согласно инструкции

После обновления успешного, созданные в п.5 и п.6 образы и контейнеры можно удалить.