【问题标题】:Trouble deploying static site using Gitlab CI使用 Gitlab CI 部署静态站点时遇到问题
【发布时间】:2016-11-25 09:30:38
【问题描述】:
我目前正在开发一个包含 Angular SPA 前端存储库和 nodeJS 后端存储库的项目。
我一直在研究如何在编译/缩小我的项目后使用 Gitlab-CI 将我的应用程序部署到 RHEL/centOS。
问题是,我不知道如何使用例如。 YUI Compressor 用于在 gitlab-ci.yml 文件中进行压缩。
我也很难使用例如 SSH 将我的文件部署到我的网络服务器上的公用文件夹或触发 pm2 以重新加载应用程序。
我很想用这种方法实现一个基本的单元测试,但我仍然无法掌握它是如何完成的。
我很高兴听到你的任何建议,可以扩展我的知识。
谢谢!
【问题讨论】:
标签:
continuous-integration
gitlab
gitlab-ci
【解决方案1】:
假设你使用 yuicompressor 作为 jar,那么在 .gitlab-ci.yml 中写这个怎么样:
build:
script:
- yuicompressor.sh
确保您的路径中有一个 shell 脚本,其中 chmod +x 位设置执行此操作:
#!/bin/sh
java -jar /path/to/your/yuicompressor-x.y.z.jar
该文件必须在您的运行器 vm 上,名为 yuicompressor.sh。将跑步者资源的路径硬编码到 .gitlab-ci.yml 中对我来说似乎并不好。
请注意,您可能需要与 java 应用程序不同的参数。
我将跑步者需要的所有可执行工具(主要是脚本)放入文件夹 /glrunner/tools,并在启动时将 /glrunner/tools 放入跑步者的 PATH 中。
如果您因为使用 Dockerized 运行程序而遇到问题,请使用 Linux VM 上的 shell 运行程序在 docker 外部运行一切,然后再转移到容器。这是人们犯的第一个新手错误。
一旦你使用容器并且你有一个 Dockerfile 来启动你的工具,也许你不需要像我最初建议的那样考虑静态的“工具/脚本”文件夹,但这是一个很好的开始方式,先学 Gitlab CI Runners,再学 Docker。