我非常喜欢斯卡宾项目。它建立在固体组件上,如作曲家和Symfony公司因此,作为PHP,这是我选择的语言,它使我可以轻松地配置和扩展需要的地方。我可以阅读并理解其中发生的每一点,这非常有帮助。
现在使用Sculpin罗卡里奥网站上,我急于让它更舒适,就像让它自动部署一样。要求很简单。让代码在Github中实时公开,然后在合并到主分支时自动部署,而不需要任何额外的工具或服务器。我对其他项目也有同样的要求,所以这也会让那些人受益。
我将部署到一个S3存储桶中,我从中为页面提供服务,但您也可以使用几乎所有其他东西来完成它。S3的优点是它简单且相对便宜,适用于中小型静态站点,通常甚至无法破解作为AWS客户的免费层。也没有系统管理需要你做,它只是运行。
现在我在这里使用的是特拉维斯CI。它是免费的,并且在这方面工作得非常好。
在主目录中创建一个名为“.travis.yml”的文件。这是我在洛克的作品:
语言:php电话: - '7.0'安装:-编写器安装script:vendor/sculpin/sulpin/bin/sulpin--env=prod-generate部署:#如何部署到S3:https://docs.travis-ci.com/user/deployment/s3(网址:https://docs.travis-ci.com/user/deployment/s3)/提供者:s3#为了安全地存储这些内容,下面介绍了如何加密:https://docs.travis-ci.com/user/encryption-keys/访问密钥id:安全:“FnJ--snip”secret_access密钥:安全:“Bw4--snic”桶:“rokka-io-site”地区:“eu-central-1”skip_cleanup:真本地目录:output_prod日期:分支:主
现在,第一个块告诉travis使用PHP,您想在PHP7下运行它,然后运行一个composer安装(这样您就有了所有要构建的组件),脚本行执行站点的实际生成。
到目前为止还不错,但现在你的文件都在travis的虚拟机上,你想把它们放到其他地方。Travis CI支持已经有很多部署方式。如果你没有办法,你可以提供你的自定义脚本.
提供者行告诉Travis我想使用什么,在本例中是S3。访问密钥和密码有点奇怪。你为什么想让自己的公司公开?事实证明,您可以对它们进行加密,并将其存储在公共文件中,只有Travis才能再次解密它们。Bucket是您的S3 Bucket(duh),区域当然是您想要存储它的区域。这里我的区域是eu-central-1,您可能需要选择另一个或只是不指定它以获得良好的默认值。
接下来的三行更有趣。跳过清理意味着Travis不会再次尝试清除部署的目录(从而破坏构建的站点)。本地目录是Travis将部署的,这里是构建的站点。使用on子句,您可以告诉Travis何时进行部署,这里它只在主分支上显示。
因此,这不是运行测试,而是运行站点的构建。这有一个附加的副作用,即如果构建站点失败,Travis将通知您,并且不会覆盖您当前的页面。
使用此设置,部署现在只需合并到主分支即可。你可以花更多的时间在你的页面上,而不是花更少的时间在它周围的事情上。