Changing pipeline and changin make package for town06 and town07

This commit is contained in:
Manish 2019-07-09 19:48:01 +02:00 committed by Néstor Subirón
parent 7ba7587c78
commit 621120ad80
4 changed files with 49 additions and 16 deletions

4
Jenkinsfile vendored
View File

@ -52,13 +52,11 @@ pipeline {
stage('Package') {
steps {
sh 'make package'
sh 'make export-maps ARGS="--map=/Game/Carla/Maps/Town06 --file=Town06"'
sh 'make export-maps ARGS="--map=/Game/Carla/Maps/Town07 --file=Town07"'
sh 'make package ARGS="--packages=Town06,Town07 --clean-intermediate"'
}
post {
always {
archiveArtifacts 'Dist/*.tar.gz'
archiveArtifacts 'ExportedMaps/*.tar.gz'
}
}
}

View File

@ -205,11 +205,25 @@ bool UPrepareAssetsForCookingCommandlet::SaveWorld(
return bPackageSaved;
}
FString UPrepareAssetsForCookingCommandlet::GetFirstPackagePath(const FString &PackageName) const
{
// Get all Package names
TArray<FString> PackageList;
IFileManager::Get().FindFilesRecursive(PackageList, *(FPaths::ProjectContentDir()),
*(PackageName + TEXT(".Package.json")), true, false, false);
if (PackageList.Num() == 0)
{
UE_LOG(LogTemp, Error, TEXT("Package json file not found."));
return {};
}
return IFileManager::Get().ConvertToAbsolutePathForExternalAppForRead(*PackageList[0]);
}
FAssetsPaths UPrepareAssetsForCookingCommandlet::GetAssetsPathFromPackage(const FString &PackageName) const
{
FString PackageConfigPath = FPaths::ProjectContentDir() + PackageName + TEXT("/Config/");
FString PackageJsonFilePath = PackageConfigPath + PackageName + TEXT(".Package.json");
FString PackageJsonFilePath = GetFirstPackagePath(PackageName);
FAssetsPaths AssetsPaths;
@ -282,6 +296,11 @@ bool UPrepareAssetsForCookingCommandlet::SavePackage(const FString &PackagePath,
FString PackageFileName = FPackageName::LongPackageNameToFilename(PackagePath,
FPackageName::GetMapPackageExtension());
if (FPaths::FileExists(*PackageFileName))
{
// Will not save package if it already exists
return false;
}
return UPackage::SavePackage(Package, World, EObjectFlags::RF_Public | EObjectFlags::RF_Standalone,
*PackageFileName, GError, nullptr, true, true, SAVE_NoError);
}
@ -335,11 +354,21 @@ int32 UPrepareAssetsForCookingCommandlet::Main(const FString &Params)
DestroySpawnedActorsInWorld(SpawnedActors);
MapObjectLibrary->ClearLoaded();
}
else
{
if (MapPathData.Len() >= 0)
{
MapPathData.RemoveFromEnd(TEXT("+"));
}
}
// Save Map Path File for further use
FString SaveDirectory = FPaths::ProjectContentDir() + PackageName + TEXT("/Config");
FString SaveDirectory = FPaths::ProjectContentDir();
FString FileName = FString("MapPaths.txt");
SaveStringTextToFile(SaveDirectory, FileName, MapPathData, true);
FileName = FString("PackagePath.txt");
FString PackageJsonFilePath = GetFirstPackagePath(PackageName);
SaveStringTextToFile(SaveDirectory, FileName, PackageJsonFilePath, true);
return 0;
}
#endif

View File

@ -131,4 +131,8 @@ private:
/// Content folder
bool SavePackage(const FString &PackagePath, UPackage *Package) const;
/// Gets the first .Package.json file found in Unreal Content Directory with
/// @a PackageName
FString GetFirstPackagePath(const FString &PackageName) const;
};

View File

@ -186,15 +186,15 @@ for PACKAGE_NAME in "${PACKAGES[@]}" ; do if [[ ${PACKAGE_NAME} != "Carla" ]] ;
BUILD_FOLDER=${CARLA_DIST_FOLDER}/${PACKAGE_NAME}_${REPOSITORY_TAG}
DESTINATION=${BUILD_FOLDER}.tar.gz
PACKAGE_PATH=${CARLAUE4_ROOT_FOLDER}/Content/${PACKAGE_NAME}
# PACKAGE_PATH=${CARLAUE4_ROOT_FOLDER}/Content/${PACKAGE_NAME}
if [ ! -d "${PACKAGE_PATH}" ] ; then
# if [ ! -d "${PACKAGE_PATH}" ] ; then
ERROR_MSG="Package \"${PACKAGE_NAME}\" not found! Make sure you have "
ERROR_MSG+="imported the package already and the package name is correct."
fatal_error "${ERROR_MSG}"
# ERROR_MSG="Package \"${PACKAGE_NAME}\" not found! Make sure you have "
# ERROR_MSG+="imported the package already and the package name is correct."
# fatal_error "${ERROR_MSG}"
fi
# fi
mkdir -p ${BUILD_FOLDER}
@ -206,8 +206,10 @@ for PACKAGE_NAME in "${PACKAGES[@]}" ; do if [[ ${PACKAGE_NAME} != "Carla" ]] ;
${UE4_ROOT}/Engine/Binaries/Linux/UE4Editor "${CARLAUE4_ROOT_FOLDER}/CarlaUE4.uproject" \
-run=PrepareAssetsForCooking -PackageName=${PACKAGE_NAME}
PACKAGE_FILE=${PACKAGE_PATH}/Config/${PACKAGE_NAME}.Package.json
MAP_LIST_FILE=${PACKAGE_PATH}/Config/MapPaths.txt
PACKAGE_PATH_FILE=${CARLAUE4_ROOT_FOLDER}/Content/PackagePath.txt
MAP_LIST_FILE=${CARLAUE4_ROOT_FOLDER}/Content/MapPaths.txt
PACKAGE_FILE=$(<${PACKAGE_PATH_FILE})
MAPS_TO_COOK=$(<${MAP_LIST_FILE})
# Cook maps