共生体/silverstripe-build

为使用silverstripe-base安装过程的项目的Phing构建助手。

安装次数: 23,377

依赖项: 2

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 8

开放问题: 3

类型:silverstripe模块


README

  • Phing
  • php命令行
  • PEAR(需支持silverstripe的phpunit版本)

安装

  • 编辑scripts/build.xml并修改name属性为
  • 将scripts/build.properties.sample复制到scripts/build.properties
  • 编辑build.properties并更改数据库配置和rewrite.base设置。
  • 运行phing -f scripts/build.xml以确认一切安装正常
  • 如果需要额外的模块,将它们添加到scripts/dependent-modules文件中,然后运行phing -f scripts/build.xml update_modules
  • 运行phing -f scripts/build.xml test以确认一切按预期工作

Phing目标

常用目标

  • build
  • test
  • package

对开发有帮助

  • pak - 在mysite/build/site.sspak生成.sspak文件。对于CI很有用。
  • phpstan - 如果通过Composer安装,运行PHPStan + PHPStan for SilverStripe。用于PHP代码的静态分析。
    • 定义要扫描的文件夹,将以下内容放置在build.xml文件中的<project>标签下方。
      • <property name="phpstan.dir" value="mysite/src mysite/tests" />

Composer脚本

如果您的主题使用基于yarn的依赖项,您可以在Composer调用时触发以下后安装脚本,以确保正确安装node_modules

    "scripts": {
		"post-update-cmd": [		
	            "Symbiote\\Build\\ThemeBuilder::run"
		],
		"post-install-cmd": [
	            "Symbiote\\Build\\ThemeBuilder::run"
		]
	},

可选脚本

有三个脚本可能可选用于您的项目,可以使用以下命令执行。

sh build/scripts/cache

这将清除所有项目的缓存文件(所有项目),基本上等同于对网站上所有内容执行?flush的强制操作。

sh ~/path/to/permissions

这需要您更新"{user}",因此需要将其复制到您选择的位置,并将适当的所有者和权限应用于缓存和存储库。

sh build/scripts/recursive-status

这将递归地在您的存储库中每个模块目录上触发"git status",主要是为了检查可能已在未包含在存储库代码库中的模块中进行的更改。

sh build/scripts/recursive-status assume-unchanged-listing

当您修补文件(在recursive-status期间显示为已修改)时,可以使用git update-index --assume-unchanged {file_name},并使用此脚本作为参数。这不仅会列出已假定为未更改的文件,还会强制文件反映上游。这确保您没有意外做出的本地更改,但它也会删除任何放置的修补程序。因此,您可以运行此操作然后执行phing以确保修补程序保持位置。

从包中排除文件

创建一个{root}/.pkgignore文件,其中包含要从构建包文件中排除的路径集

vendor/un-used/module/
themes/mytheme/node_modules/
mysite/cypress/