ackama / silverstripe-cwp-template
Ackama Silverstripe CWP 模板
Requires
- php: >=7.4.0
- cwp/agency-extensions: ^2.4
- cwp/cwp-recipe-cms: ^2.7
- cwp/cwp-recipe-core: ^2.7
- cwp/cwp-recipe-search: ^2.7
- cwp/watea-theme: ^3
- dnadesign/silverstripe-elemental: ^4.5
- dnadesign/silverstripe-elemental-userforms: ^3.0
- dynamic/silverstripe-elemental-blocks: ^3.0
- phptek/sentry: ^3.0
- silverstripe/recipe-blog: ^1.7
- silverstripe/totp-authenticator: ^4.1
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3
This package is auto-updated.
Last update: 2024-03-27 06:33:22 UTC
README
元 README
完成本节后,您可以删除此部分
项目准备
CWP 账户/环境设置需要很长时间。请确保在删除注释之前已经请求。
CWP 需要为每位开发者创建个人账户。还需要 Release Manager 角色。列出具有电子邮件、姓名和角色的人员名单。将此列表与您的请求一起附送给客户。有了这些信息,他们将能够创建请求,并立即向 Ackama 提供开始使用账户所需的权限
请阅读我们的SilverStripe CWP 项目管理维基页面,获取有关管理 CWP 项目的更多信息。
请参阅我们的Ackama README 模板维基页面,以更好地自定义此 README。
目的
填写此项目的目的
项目设置
从此存储库创建您的项目
- 设置项目后,请删除此标题,以避免混淆 *
执行以下操作以根据此存储库创建新项目,更新到 SilverStripe 堆栈的最新版本
$ composer create-project --no-install ackama/silverstripe-cwp-template your-cwp-project
$ cd your-cwp-project
克隆此存储库并在其中工作不会按预期工作。
平台要求
提供的 Docker 环境将运行这些版本,您可以直接通过 ./bin/
中的脚本使用这些实用程序在容器内工作。如果需要或需要匹配宿主环境的版本,它们在此处有文档记录,并在存储库中作为 dotfiles
- PHP: 7.4
- COMPOSER: 1
- NODE: 14
- NPM: 6
重命名资源
- 设置项目后,请删除此标题,以避免混淆 *
已设置命名空间和前缀的默认值,以便在初始化项目后容易替换。请按照以下方式进行替换
- 将所有文件中的
silverstripe-template-project
替换为您的项目名称。 - 将所有文件中的
SilverstripeTemplateProject
替换为您的项目命名空间。
存储库设置
- 设置项目后,请删除此标题,以避免混淆 *
在克隆项目后,您必须将此提交到存储库。您可以安全地提交所有创建的文件。可用的管道使用 main
作为开发分支,使用 deployment
作为生产。 deployment
在初始设置后完全由管道管理。
别忘了给你的团队适当的访问权限!
git init . git add . git remote add origin git@github.com:ackama/your-cwp-project.git git commit -m "Project Initialisation" git branch -M main git push origin main git branch -C deployment git push origin deployment git branch -D deployment
管道设置
项目已经包含 CI/CD 脚本和定义,用于 GitHub Actions,用于运行自动化测试和自动化部署。您需要设置以下管道变量
# Private Key to be used to push and interact with your repository. # Must have write permissions SSH_PRIVATE_KEY # CWP setup CWP_DASH_USER CWP_STACK_ID CWP_DASH_TOKEN
Heroku 设置
如果您计划在 Heroku 中启用预发布环境,您还需要在您的管道和 Heroku 环境中设置一些值
管道
HEROKU_APP_ID HEROKU_API_KEY
Heroku
# Use dev or uat for SS_ENVIRONMENT_TYPE # Setting this to prod will cause a DNS error SS_ENVIRONMENT_TYPE # Because heroku workers run behind proxies, SilverStripe needs to be aware of # their IPs, otherwise requests will error. You can use * as the value if you # are not worried security at initial stage SS_TRUSTED_PROXY_IPS # Use your heroku URL SS_BASE_URL # Standard Database configuration SS_DATABASE_SERVER SS_DATABASE_USERNAME SS_DATABASE_PASSWORD SS_DATABASE_NAME
还可以在本地执行 CI。有关详细信息,请参阅运行测试
其他配置
- 替换您的 Sentry DSN,或者如果不使用,请删除文件:
./app/_config/sentry.yml
- 根据您的项目配置
app/_config/email.yml
。
操作
根据需要编辑
CI 管道需要处于活动状态并配置
本项目遵循以下分支约定:main 主要开发分支 deployment 部署分支,该分支会被打上标签,并且打上标签的版本会被部署
环境 | URL | 托管平台 | Git 分支 |
---|---|---|---|
预发布 | 待办事项 | Heroku | 部署(已打标签) |
用户验收测试(UAT) | 待办事项 | 客户网站项目(CWP) | 部署(已打标签) |
生产环境 | 待办事项 | 客户网站项目(CWP) | 部署(已打标签) |
SSH 访问
CWP 不提供 SSH 访问。服务器上将没有 SSH 访问。
密钥
密钥以加密形式存储在 CI 的配置中
项目资源
资源 | URL |
---|---|
仓库 | https://github.com/ackama/silverstripe-cwp-template |
待办事项 URL | [ 占位符 ] |
Invision | [ 占位符 ] |
相关人员
角色 | 姓名 |
---|---|
开发者 | - |
设计师 | - |
项目经理 | - |
产品负责人 | - |
依赖关系
- docker
- docker-compose
运行此应用
克隆项目:git clone git@github.com:ackama/your-cwp-project.git
一旦项目被克隆,执行以下命令
docker-compose up
将设置您的运行环境。
使用您的开发环境
- 网站将在
https://
上可用。您可能需要覆盖浏览器对 localhost 不安全证书的处理,因为 docker 机器使用的是自签名证书- Chrome & Opera:浏览到 chrome://flags/#allow-insecure-localhost 并启用高亮选项。
- Firefox:您将有机会接受打开 localhost URL 的风险
- 使用
bin/console
登录到您的本地开发环境 - 如果您想访问主机上的依赖项,请运行
composer install --no-scripts
,npm ci
和composer vendor-expose
。这些目录不会被共享到容器中以避免降低性能。 - 在单独的视图中运行
npm run watch
以实时构建您的资源。 - 每次您在 silverstripe 应用或主题中做出更改时,请运行
sake dev/build flush=1
- MailDev 可在 https://:1080 上访问
在您的环境中运行
为了启动开发,需要运行依赖项和构建过程,理想情况下是在您的 docker 机器内部(bin/console
)。运行这些命令后,即可构建
composer install --no-scripts
composer vendor-expose
npm ci
sake dev/build flush=1
npm run watch
构建您的项目
您的项目构建过程已配置为自动运行两步过程。
- 首先,项目会进行测试,其资产会在 CI 管道中构建和打包。
- 其次,CWP 会部署 silverstripe 项目。
尽管实时打包器或打包器应该产生相同的结果,但如果您需要构建项目以进行调试,运行以下命令
composer install --no-scripts
npm ci
npm run package
在您的环境中进行测试
由于 CWP 的性质,本地使用 composer 应该以稍微不同的方式进行。理想情况下,您会以这种方式使用 composer 以获取项目的有效副本,因为这是 CWP 部署的方式,可能会跳过项目或依赖项中的步骤。
composer install --no-scripts
composer vendor-expose
sake dev/build
使用 composer install
可能 会导致测试时出现差异。但是,您的构建将在 CI 管道中使用上述方法进行测试和构建,包括合并前和合并后。
Solr 搜索
Solr 搜索功能可用于您的本地环境。您可以在 https://:8983/solr 上访问 Solr 控制台
您的开发环境仅在dev
模式下且已设置环境变量SS_SOLR_ENABLED
时启用Solr搜索,否则假定没有配置。您的docker-compose文件已经包含了这些默认配置。如果您想配置Solr,请检查所需的ENV值和app/_config.php
文件。
默认情况下,引擎已激活并运行。当您想要执行配置任务和索引任务时,需要手动执行。否则,Solr的使用将失败。您可以通过访问控制台并执行以下命令来完成此操作:
sake dev/tasks/Solr_Configure flush=1
sake dev/tasks/Solr_Reindex flush=1
从其他环境加载工作副本
- 获取网站的silverstripe打包版本。您可以从CWP仪表板下载快照。转到
项目 > 快照 > 创建快照
,创建一个快照或选择一个可用的快照,并将其下载到项目的根目录 - 运行
sspak load [快照文件名]
将数据库和上传的资产加载到您的安装中 - 随后运行
sake dev/build "flush=1"
运行测试
以下是如何在本地运行测试
docker-compose exec app -T ci/run-tests
CWP之外部署
如果您要将应用程序部署到CWP以外的环境(如Heroku),请相应地配置您的环境
- 如果您的应用程序工作进程在
test
模式下位于代理后面,您需要让SilverStripe知道代理的IP,以便它按预期行为。在您的环境中,将SS_TRUSTED_PROXY_IPS
的值设置为*
或已知IP的逗号分隔列表。 - 请记住,
dev
模式默认不会强制执行SSL保护。
有关环境管理的更多信息,请参阅