Skip to content

Initial commit

Initial commit #1

Workflow file for this run

name: "3. Модель данных"
on:
push:
branches:
- main
gollum:
jobs:
check_data_model:
name: "Проверка наличия вики-страницы \"Модель данных\" и разделов \"Нереляционная модель\", \"Реляционная модель\", \"Сравнение моделей\", \"Вывод\" в ней"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Check wiki
with:
repository: ${{github.repository}}.wiki
- name: check
run: |
page="Модель-данных.md"
nosql_model="Нереляционная модель"
sql_model="Реляционная модель"
comparison="Сравнение моделей"
conclusion="Вывод"
query_examples="Примеры запросов"
data_examples="Примеры данных"
redundancy="Избыточность данных"
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
image_count=`cat "${page}" | grep '](https\:\/\/github.com\/moevm\/[^/]\+\/assets[^\)]\+)' | wc -l`
if [[ ${image_count} -lt 2 ]]; then
echo "::error::Предварительная проверка не пройдена - не найдены изображения для схем моделей данных. Для реляционной и нереляционной модели необходимо разместить изображения схем моделей данных. Вставьте их через \![Название картинки](полная ссылка вида https://github.com/moevm/ВАШ РЕПО/assets/34864759/8f850ef1-fc3d-4adb-a7aa-81598cc7794c) . Если вы храните изображение макета где-то ВНЕ репозитория, то, пожалуйста, разместите файлы в репо - иначе потом очень сложно собирать материалы вашей проекта. "
exit 1
fi
query_examples_count=`cat "${page}" | grep "${query_examples}" | wc -l`
if [[ "${query_examples_count}" != "2" ]]; then
echo "::error::Предварительная проверка не пройдена - не найдены заголовоки ${query_examples} (соответствующие подразделы должны быть в разделах с нереляционной и реляционной моделями)."
exit 1
fi
data_examples_count=`cat "${page}" | grep "${data_examples}" | wc -l`
if [[ "${data_examples_count}" != "2" ]]; then
echo "::error::Предварительная проверка не пройдена - не найдены заголовоки ${data_examples} (соответствующие подразделы должны быть в разделах с нереляционной и реляционной моделями)."
exit 1
fi
redundancy_count=`cat "${page}" | grep "${redundancy}" | wc -l`
if [[ "${redundancy_count}" != "2" ]]; then
echo "::error::Предварительная проверка не пройдена - не найдены заголовоки ${redundancy} (соответствующие подразделы должны быть в разделах с нереляционной и реляционной моделями)."
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::Предварительная проверка пройдена - вики-страница найдена, нужные заголовки присутствуют "