From ab5d38f8e7eb8fd9c4e3e15e20534e1f3d1f7fd3 Mon Sep 17 00:00:00 2001 From: Mark Zaslavskiy Date: Tue, 12 Sep 2023 17:45:06 +0300 Subject: [PATCH] Initial commit --- .github/workflows/1_helloworld.yml | 31 +++++++++ .github/workflows/2_usecase.yml | 40 ++++++++++++ .github/workflows/3_data_model.yml | 51 +++++++++++++++ .../workflows/4_prototype_store_and_view.yml | 26 ++++++++ .github/workflows/5_prototype_analysis.yml | 64 +++++++++++++++++++ .github/workflows/6_report.yml | 29 +++++++++ .github/workflows/7_app_is_ready.yml | 26 ++++++++ README.md | 18 ++++++ 8 files changed, 285 insertions(+) create mode 100644 .github/workflows/1_helloworld.yml create mode 100644 .github/workflows/2_usecase.yml create mode 100644 .github/workflows/3_data_model.yml create mode 100644 .github/workflows/4_prototype_store_and_view.yml create mode 100644 .github/workflows/5_prototype_analysis.yml create mode 100644 .github/workflows/6_report.yml create mode 100644 .github/workflows/7_app_is_ready.yml create mode 100644 README.md diff --git a/.github/workflows/1_helloworld.yml b/.github/workflows/1_helloworld.yml new file mode 100644 index 0000000..2142d00 --- /dev/null +++ b/.github/workflows/1_helloworld.yml @@ -0,0 +1,31 @@ +name: "1. Установка и настройка выбранной БД + ЯП" + +on: + push: + branches: + - main + +jobs: + check_hello_world_dir_not_empty: + name: "Проверка наличия каталога ./hello_world/" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + name: Check out current commit + + - name: check + run: | + dir="./hello_world/" + if [ -d "${dir}" ]; then + if [ "$(ls -A ${dir})" ]; then + echo "::notice::Предварительная проверка пройдена - каталог ${dir} создан и не пуст" + exit 0 + else + echo "::error::Предварительная проверка не пройдена - каталог ${dir} пуст" + exit 1 + fi + + else + echo "::error::Предварительная проверка не пройдена - каталог не найден ${dir}" + exit 1 + fi diff --git a/.github/workflows/2_usecase.yml b/.github/workflows/2_usecase.yml new file mode 100644 index 0000000..0b08960 --- /dev/null +++ b/.github/workflows/2_usecase.yml @@ -0,0 +1,40 @@ +name: "2. Usecase" + +on: + push: + branches: + - main + gollum: + +jobs: + check_mockup_uc_wiki: + name: "Проверка наличия вики-страницы \"Макет и сценарий использования\" и разделов \"Макет UI\" \"Сценарий использования\" в ней" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + name: Check wiki + with: + repository: ${{github.repository}}.wiki + - name: check + run: | + page="Макет-и-сценарий-использования.md" + mockup_header="Макет UI" + uc_header="Сценарий использования" + + if ! [[ -f "${page}" ]]; then + echo "::error::Предварительная проверка не пройдена - не найдена вики-страница \"Макет и сценарий использования\"" + exit 1 + fi + + if ! cat "${page}" | grep -q "${mockup_header}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${mockup_header}" + exit 1 + fi + + + if ! cat "${page}" | grep -q "${uc_header}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${uc_header}" + exit 1 + fi + + echo "::notice::Предварительная проверка пройдена - вики-страница найдена, нужные заголовки присутствуют" diff --git a/.github/workflows/3_data_model.yml b/.github/workflows/3_data_model.yml new file mode 100644 index 0000000..5373833 --- /dev/null +++ b/.github/workflows/3_data_model.yml @@ -0,0 +1,51 @@ +name: "3. Модель данных" + +on: + push: + branches: + - main + gollum: + +jobs: + check_data_model: + name: "Проверка наличия вики-страницы \"Модель данных\" и разделов \"Нереляционная модель\", \"Реляционная модель\", \"Сравнение моделей\", \"Вывод\" в ней" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + name: Check wiki + with: + repository: ${{github.repository}}.wiki + - name: check + run: | + page="Модель-данных.md" + nosql_model="Нереляционная модель" + sql_model="Сценарий использования" + comparison="Сравнение моделей" + conclusion="Вывод" + + if ! [[ -f "${page}" ]]; then + echo "::error::Предварительная проверка не пройдена - не найдена вики-страница \"Модель данных\"" + exit 1 + fi + + if ! cat "${page}" | grep -q "${nosql_model}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${nosql_model}" + exit 1 + fi + + + if ! cat "${page}" | grep -q "${sql_model}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${sql_model}" + exit 1 + fi + + if ! cat "${page}" | grep -q "${comparison}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${comparison}" + exit 1 + fi + + if ! cat "${page}" | grep -q "${conclusion}"; then + echo "::error::Предварительная проверка не пройдена - не найден заголовок ${conclusion}" + exit 1 + fi + echo "::notice::Предварительная проверка пройдена - вики-страница найдена, нужные заголовки присутствуют " diff --git a/.github/workflows/4_prototype_store_and_view.yml b/.github/workflows/4_prototype_store_and_view.yml new file mode 100644 index 0000000..979bb30 --- /dev/null +++ b/.github/workflows/4_prototype_store_and_view.yml @@ -0,0 +1,26 @@ +name: "4. Прототип хранение и представление" + +on: + push: + branches: + - main + +jobs: + check_prototype_store_and_view: + name: "Проверка наличия тега 0.5" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + name: Check out current commit + with: + fetch-depth: 0 + + - name: check + run: | + TAG="0.5" + if [ $(git tag -l "${TAG}") ]; then + echo "::notice::Тег ${TAG} найден" + else + echo "::error::Тег ${TAG} не найден" + exit 1 + fi diff --git a/.github/workflows/5_prototype_analysis.yml b/.github/workflows/5_prototype_analysis.yml new file mode 100644 index 0000000..37bb5a8 --- /dev/null +++ b/.github/workflows/5_prototype_analysis.yml @@ -0,0 +1,64 @@ +name: "5. Прототип анализ" + +on: + push: + branches: + - main + +jobs: + check_tag_08_docker_compose: + name: "Проверка наличия тега 0.8 и работоспособности docker-compose" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + name: Check out current commit + with: + fetch-depth: 0 + + - name: Build docker-compose + run: | + docker-compose build --no-cache + + - name: Run docker-compose + run: | + docker-compose up -d + sleep 30 + + - name: Check containers are alive + run: | + echo "::notice:: docker ps --filter status=exited" + docker ps --filter status=exited + exited_count=`docker ps --filter status=exited | tail -n +2 | wc -l` + + echo "::notice:: docker ps --filter status=dead" + docker ps --filter status=dead + dead_count=`docker ps --filter status=dead | tail -n +2 | wc -l` + + echo "::notice:: docker ps --filter status=restarting" + docker ps --filter status=restarting + restarting_count=`docker ps --filter status=restarting | tail -n +2 | wc -l` + + echo "::notice:: docker ps --filter status=paused" + docker ps --filter status=paused + paused_count=`docker ps --filter status=paused | tail -n +2 | wc -l` + + echo "::notice:: docker ps --filter status=created" + docker ps --filter status=created + created_count=`docker ps --filter status=created | tail -n +2 | wc -l` + + if [[ "${exited_count}" != "0" ]] || [[ "${restarting_count}" != "0" ]] || [[ "${paused_count}" != "0" ]] || [[ "${created_count}" != "0" ]] || [[ "${created_count}" != "0" ]]; then + echo "::error::Часть контейнеров не находится в состоянии running (завершили или не начали свою работу корректно) " + exit 1 + fi + + + + - name: check_tag + run: | + TAG="0.8" + if [ $(git tag -l "${TAG}") ]; then + echo "::notice::Тег ${TAG} найден" + else + echo "::error::Тег ${TAG} не найден" + exit 1 + fi diff --git a/.github/workflows/6_report.yml b/.github/workflows/6_report.yml new file mode 100644 index 0000000..2fb2579 --- /dev/null +++ b/.github/workflows/6_report.yml @@ -0,0 +1,29 @@ +name: "6. Пояснительная записка" + +on: + push: + branches: + - main + +jobs: + check_reports: + name: "Проверка наличия пояснительной записки (report.doc / report.docx / report.odt + report.pdf в корне репо)" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + name: Check out current commit + + - name: check + run: | + + if ! ( [[ -f "./report.docx" ]] || [[ -f "./report.doc" ]] || [[ -f "./report.odt" ]] ) ; then + echo "::error::Предварительная проверка не пройдена - не найдены редактируемые версии пояснительной записки" + exit 1 + fi + + if ! [[ -f "./report.pdf" ]] ; then + echo "::error::Предварительная проверка не пройдена - не найдена pdf версия записки" + exit 1 + fi + + echo "::notice::Предварительная проверка пройдена - файлы записки найдены" diff --git a/.github/workflows/7_app_is_ready.yml b/.github/workflows/7_app_is_ready.yml new file mode 100644 index 0000000..9686c07 --- /dev/null +++ b/.github/workflows/7_app_is_ready.yml @@ -0,0 +1,26 @@ +name: "7. App is ready" + +on: + push: + branches: + - main + +jobs: + check_app_is_ready: + name: "Проверка наличия тега 1.0" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + name: Check out current commit + with: + fetch-depth: 0 + + - name: check + run: | + TAG="1.0" + if [ $(git tag -l "${TAG}") ]; then + echo "::notice::Тег ${TAG} найден" + else + echo "::error::Тег ${TAG} не найден" + exit 1 + fi diff --git a/README.md b/README.md new file mode 100644 index 0000000..369f8e7 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# nosql_template + + +## Предварительная проверка заданий + +![1. Установка и настройка выбранной БД + ЯП]( ./../../actions/workflows/1_helloworld.yml/badge.svg) + +![2. Usecase]( ./../../actions/workflows/2_usecase.yml/badge.svg) + +![3. Модель данных]( ./../../actions/workflows/3_data_model.yml/badge.svg) + +![4. Прототип хранение и представление]( ./../../actions/workflows/4_prototype_store_and_view.yml/badge.svg) + +![5. Прототип анализ]( ./../../actions/workflows/5_prototype_analysis.yml/badge.svg) + +![6. Пояснительная записка]( ./../../actions/workflows/6_report.yml/badge.svg) + +![7. App is ready]( ./../../actions/workflows/7_app_is_ready.yml/badge.svg)