У меня есть скрипт для проектов TypeScript, который гарантирует, что мой код компилируется до того, как я отправлю его sh на удаленный компьютер:
simple_git_push_typescript(){
(
set -e
top_level="$(git rev-parse --show-toplevel)"
if [[ "$cm_ignore_tsc" != 'yes' ]]; then
if [[ -f "$top_level/tsconfig.json" ]]; then
(cd "$top_level" && tsc) || { echo 'Could not compile with tsc. Did not push. Use "cm_ignore_tsc=yes" to override.'; exit 1; }
fi
fi
git add -A
if [[ "$cm_force_commit" == 'yes' ]]; then
git commit --allow-empty -am "${1-tmp}"
else
git commit -am "${1-tmp}" || echo 'Could not create new commit.';
fi
git push
)
}
Этот скрипт работает очень хорошо, когда я перешел на код pu sh в мою ветвь функций в конце дня или непосредственно перед запросом на удаление - это помогает предотвратить ненужные коммиты, но также облегчает его.
С Go я просто хочу проверить, что все компилируется до Я делаю sh проект go на удаленном компьютере.
simple_git_push_go(){
(
set -e
top_level="$(git rev-parse --show-toplevel)"
(cd "$top_level" && go build -o '/dev/null' .) # ?
# ...
)
}
- это Go сборка лучшего выбора для проверки на компиляцию всего моего проекта, или более общий c способ найти все go пакеты и скомпилировать каждый пакет? Я предполагаю, что для проектов, в которых есть несколько пакетов, которые не связаны друг с другом, вам придется проходить через каждый пакет и компилировать их отдельно?