3. Модель данных #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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::Предварительная проверка пройдена - вики-страница найдена, нужные заголовки присутствуют " |