ackama/silverstripe-cwp-template

此包已被弃用,不再维护。未建议替代包。

Ackama Silverstripe CWP 模板

安装: 6

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 17

分支: 0

开放问题: 9

语言:Shell

类型:silverstripe-recipe

0.4.0 2021-04-12 22:04 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-scriptsnpm cicomposer 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保护。

有关环境管理的更多信息,请参阅