feat(CI): prevent PRs that cause DB errors to get on master (#1407)

This commit is contained in:
Francesco Borzì
2019-02-06 23:55:23 +01:00
committed by GitHub
parent 90e559ad8a
commit 7b61731958
6 changed files with 63 additions and 11 deletions

View File

@@ -44,3 +44,7 @@ install:
script:
# compile
- bash ./acore.sh "compiler" "all"
- git clone --depth=1 --branch=master --single-branch https://github.com/ac-data/ac-data.git /home/travis/build/azerothcore/azerothcore-wotlk/env/dist/data
- cp ./data/travis/worldserver.conf ./env/dist/etc/worldserver.conf
- ./env/dist/bin/worldserver --dry-run
- ./apps/ci-error-check.sh

18
apps/ci-error-check.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
DB_ERRORS_FILE="/home/travis/build/azerothcore/azerothcore-wotlk/env/dist/bin/DBErrors.log";
#DB_ERRORS_FILE="./env/dist/bin/DBErrors.log";
if [[ ! -f ${DB_ERRORS_FILE} ]]; then
echo "File ${DB_ERRORS_FILE} not found!";
exit 1
fi
if [[ -s ${DB_ERRORS_FILE} ]]; then
printf "The DBErrors.log file contains startup errors:\n\n";
cat ${DB_ERRORS_FILE};
printf "\nPlease solve the startup errors listed above!\n";
exit 1;
else
echo "No startup errors found in DBErrors.log, good job!";
fi

View File

@@ -0,0 +1,12 @@
################################################
# AzerothCore World Server configuration file #
################################################
[worldserver]
LoginDatabaseInfo = "127.0.0.1;3306;root;;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;root;;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;root;;acore_characters"
EnableLogDB = 1
DataDir = "/home/travis/build/azerothcore/azerothcore-wotlk/env/dist/data"
LogsDir = "/home/travis/build/azerothcore/azerothcore-wotlk/env/dist/bin"

View File

@@ -46,7 +46,12 @@ public:
std::list<std::string> GetKeysByString(std::string const& name);
bool isDryRun() { return this->dryRun; }
void setDryRun(bool mode) { this->dryRun = mode; }
private:
bool dryRun = false;
bool GetValueHelper(const char* name, ACE_TString &result);
bool LoadData(char const* file);

View File

@@ -1350,18 +1350,21 @@ void World::SetInitialWorldSettings()
///- Init highest guids before any table loading to prevent using not initialized guids in some code.
sObjectMgr->SetHighestGuids();
///- Check the existence of the map files for all races' startup areas.
if (!MapManager::ExistMapAndVMap(0, -6240.32f, 331.033f)
|| !MapManager::ExistMapAndVMap(0, -8949.95f, -132.493f)
|| !MapManager::ExistMapAndVMap(1, -618.518f, -4251.67f)
|| !MapManager::ExistMapAndVMap(0, 1676.35f, 1677.45f)
|| !MapManager::ExistMapAndVMap(1, 10311.3f, 832.463f)
|| !MapManager::ExistMapAndVMap(1, -2917.58f, -257.98f)
|| (m_int_configs[CONFIG_EXPANSION] && (
!MapManager::ExistMapAndVMap(530, 10349.6f, -6357.29f) ||
!MapManager::ExistMapAndVMap(530, -3961.64f, -13931.2f))))
if (!sConfigMgr->isDryRun())
{
exit(1);
///- Check the existence of the map files for all starting areas.
if (!MapManager::ExistMapAndVMap(0, -6240.32f, 331.033f)
|| !MapManager::ExistMapAndVMap(0, -8949.95f, -132.493f)
|| !MapManager::ExistMapAndVMap(1, -618.518f, -4251.67f)
|| !MapManager::ExistMapAndVMap(0, 1676.35f, 1677.45f)
|| !MapManager::ExistMapAndVMap(1, 10311.3f, 832.463f)
|| !MapManager::ExistMapAndVMap(1, -2917.58f, -257.98f)
|| (m_int_configs[CONFIG_EXPANSION] && (
!MapManager::ExistMapAndVMap(530, 10349.6f, -6357.29f) ||
!MapManager::ExistMapAndVMap(530, -3961.64f, -13931.2f))))
{
exit(1);
}
}
///- Initialize pool manager
@@ -1952,6 +1955,11 @@ void World::SetInitialWorldSettings()
sLog->outString("Enabling database logging...");
sLog->SetLogDB(true);
}
if (sConfigMgr->isDryRun()) {
sLog->outString("AzerothCore dry run completed, terminating.");
exit(0);
}
}
void World::DetectDBCLang()

View File

@@ -65,6 +65,11 @@ extern int main(int argc, char** argv)
int c = 1;
while (c < argc)
{
if (strcmp(argv[c], "--dry-run") == 0)
{
sConfigMgr->setDryRun(true);
}
if (!strcmp(argv[c], "-c"))
{
if (++c >= argc)