diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 57ef037..998081e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,10 +31,16 @@ jobs: - name: Move files run: | mkdir -p output/HydroponicsExpanded - mv About/ Assemblies/ Defs/ Languages/ Textures/ output/HydroponicsExpanded + mv About/About.xml About/Preview.png About/PublishedFileId.txt Assemblies/ Defs/ Languages/ Textures/ output/HydroponicsExpanded + + - name: Get Version + id: get_version + uses: mikefarah/yq@master + with: + cmd: cat ./About/About.xml | xq '.ModMetaData.modVersion' - name: Upload Mod Artifacts uses: actions/upload-artifact@v2 with: - name: HydroponicsExpanded + name: HydroponicsExpanded-${{ steps.get_version.outputs.result }} path: output/ \ No newline at end of file diff --git a/build.py b/build.py deleted file mode 100644 index fd89197..0000000 --- a/build.py +++ /dev/null @@ -1,85 +0,0 @@ -import glob -import logging -import shutil -import sys -from pathlib import Path -from shutil import rmtree -from typing import List - -logger = logging.getLogger(__name__) -logging.basicConfig(level=logging.DEBUG) - -PROJECT_DIRECTORY: Path = Path(__file__).parent - - -def main(output_directory: Path) -> None: - # Check that output directory exists properly. - if not output_directory.exists(): - # If the parent doesn't exist, we aren't going to create the folder. - if not output_directory.parent.exists(): - raise RuntimeError("Cannot create more than one directory. Please check the output") - - output_directory.mkdir(parents=False, exist_ok=False) - - output_mod_directory: Path = output_directory / "HydroponicsExpanded" - - # Folders that we need to be removed from the output directory if they contain any files. - pertinents_folders: List[str] = ["Defs", "Assemblies", "About", "Textures", "Languages"] - if output_mod_directory.exists(): - logger.debug('Checking for folders to clear in destination.') - - for folder in pertinents_folders: - destination_folder_path: Path = output_mod_directory / folder - - # Ignore folders that don't exist. - if not destination_folder_path.exists(): - continue - - has_children: bool = any(destination_folder_path.iterdir()) - logger.debug('Clearing "{}" folder.'.format(folder)) - if has_children: - rmtree(destination_folder_path) - # destination_folder_path.rmdir() - else: - output_mod_directory.mkdir(parents=False) - - patterns: List[str] = [ - "About/", - "About/PublishedFileId.txt", - "About/About.xml", - "About/Preview.png", - "Assemblies/", - "Assemblies/HydroponicsExpanded.dll", - "Defs/**", - "Languages/**", - "Textures/**" - ] - - for pattern in patterns: - paths: List[Path] = list(map(Path, glob.glob(str(PROJECT_DIRECTORY / pattern), recursive=True))) - - for source_path in paths: - relative_path: Path = source_path.relative_to(PROJECT_DIRECTORY) - destination_path: Path = output_mod_directory / relative_path - - logger.debug("Copying from {} to {}".format(source_path, destination_path)) - if source_path.is_dir(): - destination_path.mkdir(exist_ok=True) - elif source_path.is_file(): - shutil.copyfile(source_path, destination_path) - - -if __name__ == "__main__": - try: - output_directory: Path = PROJECT_DIRECTORY / "build" - if len(sys.argv) > 1: - output_directory = Path(sys.argv[1]) - else: - logger.warning('Output directory automatically chosen.') - - logger.debug('Project Directory: {}'.format(PROJECT_DIRECTORY)) - logger.debug('Output Directory: {}'.format(output_directory)) - - main(output_directory) - except BaseException as e: - logger.error("Build script failed", exc_info=e)