如何制作(在哪里可以找到)GitLab CI运行GitLab页面的脚本



我想使用带有纯HTML/CSS(实际上是SCSS)的GitLab repos部署一个静态页面。据我所知,静态页面至少需要.gitlab-ci.yml/public文件夹。文件.gitlab-ci.yml的最低要求如下:(来自官方文档的示例)

pages:
stage: deploy
script:
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
only:
- master

我的问题在script
(我认为下面的脚本将创建一个隐藏的文件夹名称.public,并复制其中的所有文件,然后将其从.public移动到公用文件夹。如果我错了,请纠正我。)

script:
- mkdir .public
- cp -r * .public
- mv .public public

对我来说,它类似于Linux的shell脚本。GitLab文档中也证实了它是由Runner运行的。但问题是,我怎么知道GitLab中安装了多少shell脚本?有可能做一个吗?

我想做两个文件夹:srcpublic。GitLab CI将运行脚本并从src编译SCSS,然后将其移动到public

顺便说一下,我正在使用gitlab.com

所以需要考虑一些事情。gitlab中的每个作业都在一个容器中运行。通常,您可以指定要使用的。页面是一种特殊情况,因此您不必关心容器的图像。

pages作业将填充您的公用文件夹。但是您可以更改gitlab-ci.yml文件并添加步骤。

这将使用节点构建一个应用程序:

build_stuff:
stage: build
image: node:11
before_script:
- npm install
script:
- npm run build
artifacts:
paths:
- build
pages:
stage: deploy
script:
- mkdir .public
- cp -r build/ .public
- mv .public public
artifacts:
paths:
- public
only:
- master

格式化关闭

需要注意的事项。第一步是运行构建步骤,为输出文件夹生成所有资产。然后,它存储工件块中声明的任何内容,在本例中是构建文件夹,并将其传递给下一个作业。根据构建应用程序所需的内容,相应地调整此步骤。

我在第二步中唯一修改的是将构建文件夹的内容而不是整个repo复制到.public文件夹中。根据您的需要进行调整。

至于shell脚本,除了您带到存储库中的脚本之外,没有其他脚本。默认的运行程序支持Bash,因此您可以像在终端中一样执行Bash命令。

如果您在repo中创建文件foo.sh并执行bash foo.sh,它将执行脚本(如果它是可执行的)。在推它之前记得用chmod。

Gitlab中没有"安装shell脚本"。Gitlab支持几个shell,您的示例中的脚本部分只是纯bash命令。由于您很可能使用默认的docker runner,因此您可以从脚本部分执行bash命令,以repo中的其他语言运行脚本,在docker容器上安装包,甚至准备和运行自己的docker映像。

最新更新