Шаблон репозитория для трека «Сервер сбора метрик и алертинга».
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- В корне репозитория выполните команду
go mod init <name>
(где<name>
— адрес вашего репозитория на GitHub без префиксаhttps://
) для создания модуля.
Чтобы иметь возможность получать обновления автотестов и других частей шаблона, выполните команду:
git remote add -m main template https://github.com/Yandex-Practicum/go-musthave-metrics-tpl.git
Для обновления кода автотестов выполните команду:
git fetch template && git checkout template/main .github
Затем добавьте полученные изменения в свой репозиторий.
Для успешного запуска автотестов называйте ветки iter<number>
, где <number>
— порядковый номер инкремента. Например, в ветке с названием iter4
запустятся автотесты для инкрементов с первого по четвёртый.
При мёрже ветки с инкрементом в основную ветку main
будут запускаться все автотесты.
Подробнее про локальный и автоматический запуск читайте в README автотестов.
- Скомпилируйте ваши сервер и агент в папках
cmd/server
иcmd/agent
командамиgo build -o server *.go
иgo build -o agent *.go
соответственно. - Скачайте бинарный файл с автотестами для вашей ОС — например,
metricstest-darwin-arm64
для MacOS на процессоре Apple Silicon. - Разместите бинарный файл так, чтобы он был доступен для запуска из командной строки, — пропишите путь в переменную
$PATH
. - Ознакомьтесь с параметрами запуска автотестов в файле
.github/workflows/metricstest.yml
вашего репозитория. Автотесты для разных инкрементов требуют различных аргументов для запуска.
Пример запуска теста для первого инкремента:
metricstest -test.v -test.run=^TestIteration1$ -agent-binary-path=cmd/agent/agent
Если у вас возникают трудности с локальным запуском автотестов на компьютере Mac на базе процессора Apple Silicon (M1 и старше), убедитесь, что:
- Вы запускаете бинарный файл с суффиксом
darwin-arm64
. - У файла выставлен флаг на исполнение командой
chmod +x <filename>
. - Вы разрешили выполнение неподписанного бинарного файл в разделе «Безопасность» настроек системы.
- Зайдите в раздел «Безопасность» настроек системы и найдите раздел, в котором написано: «Использование <имя файла> было заблокировано, так как он не от идентифицированного разработчика». Этот раздел появляется только после попытки запустить неподписанный бинарный файл.
- Нажмите на кнопку «Разрешить» (Allow anyway), чтобы внести бинарный файл в список разрешённых к запуску.
- Введите пароль или приложите палец к Touch ID для подтверждения разрешения.
Операция выполняется однократно для каждого бинарного файла, который вы хотите запустить. Данную политику безопасности невозможно отключить на компьютерах Mac с процессором Apple Silicon.
./metricstest-darwin-arm64 -test.v -test.run=^TestIteration1$ -binary-path=/Users/ribakakin/Desktop/web/go-practicum/go-yandex-metrics-tpl/cmd/memory/memory
./autotests/metricstest-darwin-arm64 -test.v -test.run=^TestIteration2[AB]*$ \
-source-path=/Users/ribakakin/Desktop/web/go-practicum/go-yandex-metrics-tpl \
-agent-binary-path=/Users/ribakakin/Desktop/web/go-practicum/go-yandex-metrics-tpl/cmd/agent/agent
lsof -i:8080
kill -9 <pid>
kill -9 $(lsof -t -i:8080)
go build -o cmd/agent cmd/agent/main.go
mv cmd/agent/main cmd/agent/agent
go build -o cmd/memory cmd/memory/main.go
mv cmd/memory/main cmd/memory/memory
Добавление миграции
migrate create -ext sql -dir internal/server/config/db/migrations -seq create_users_table