当持续集成通过并正在构建工件时,如何在 GitLab 页面上生成 pelican 站点?

耆那教问

我使用 pelican 作为静态站点生成器来构建静态站点。我想将它托管在 GitLab 页面上,并让该站点通过 GitLab 与 Makefile 的持续集成生成。

该站点通过其 CI/CD 管道在本地和 GitLab 上成功构建。构建代码通过上传工件并且作业成功。内容文件在public文件夹中构建和生成

不知何故,在构建被传递并public根据需要将工件上传到文件夹中后,预计静态站点将托管在 GitLab 页面的用户页面上,例如username.gitlab.io/projectname.

尽管推荐的等待时间是 15 分钟到半小时,但即使在 15 多个小时之后这也不起作用。

还尝试了在自定义子域上托管。子域已验证,但未生成站点。

作为参考,下面提到了使用中的最少代码。

.gitlab-ci.yml

# default to using the latest Python docker image for builds
image: python:3.7.0

# our build job installs the Python requirements and Pelican
# plugins, then runs ``make publish`` to generate the output
build:
  stage: deploy
  script:
  - apt-get update -qq && apt-get install -y -qq python python-pip
  - python -v
  - pip install  -r requirements.txt
  - git clone --recursive https://github.com/getpelican/pelican-plugins ../plugins
  - pelican -s publishconf.py
  - make publish
# specify the artifacts to save
  artifacts:
    paths:
      - public/
  only:
  - master

发布配置文件

#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
import os

AUTHOR = 'Tanya Jain'
SITENAME = 'Tanya Jain'
SITEURL = '/public'
DESCRIPTION = ''
THEME = 'themes/stellarAdventurerTheme'

PATH = 'content'
OUTPUT_PATH = 'public'

鹈鹕配置文件

#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
import os

AUTHOR = 'Tanya Jain'
SITENAME = 'Tanya Jain'
SITEURL = '/public'
DESCRIPTION = ''
THEME = 'themes/stellarAdventurerTheme'

PATH = 'content'
OUTPUT_PATH = 'public'

生成文件

PY?=python3
PELICAN?=pelican
PELICANOPTS=

BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/public
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py

FTP_HOST=localhost
FTP_USER=anonymous
FTP_TARGET_DIR=/

SSH_HOST=localhost
SSH_PORT=22
SSH_USER=root
SSH_TARGET_DIR=/var/www

请帮助如何在 GitLab 页面上生成站点!

更新 1:

尝试了这些更改也不起作用。然而,我相信这些更改将在 pelican 设置中进行,而不是在 GitLab 的 YAML 中进行。

鹈鹕配置文件

SITEURL = ''

发布配置文件

SITEURL = 'http://subdomain.example.com'
耆那教问

非常感谢您的帮助!我已经解决了这个问题。错误是由于build在 .gitlab-ci.yml 中提到了 job并且还缺少 job pages使用pages作为作业是GitLab页的必要性进行部署,可以在提及的参考文献进一步阅读。因此,正确的脚本应该是:

image: python:3.7.0

pages:
    stage: deploy
    script:
    - apt-get update -qq && apt-get install -y -qq python python-pip
    - python -v
    - pip install  -r requirements.txt
    - git clone --recursive https://github.com/getpelican/pelican-plugins ../plugins
    - pelican -s publishconf.py
    - make publish
    artifacts:
        paths:
            - public/
    only:
    - master

参考:

  1. Stackoverflow:成功构建后,GitLab 页面部署步骤失败
  2. 探索 GitLab 页面(文档)
  3. 为 GitLab 页面创建和调整 GitLab CI/CD

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Pelican中翻译生成的语言?

如何在站点URL的所有页面上分页?

Github页面上静态站点的POSIX生成超时错误

如何在Pelican中将当前URL插入文章/页面

如何选择类别页面作为Pelican网站的主页?

在 Gitlab 站点上编辑/提交文件时出现路径错误

使用Gitlab CI部署静态站点时出现问题

如何在Github页面上调试404发布节点站点?

如何在文档库登录页面上专门显示站点名称?

如何在线从SharePoint的站点页面上载和下载aspx文件

Gitlab:缺少页面工件

单击页面上的按钮时,不显示离开站点确认对话框

如何绑定到同一站点的不同页面上的localStorage更改事件?

通过php站点中的页面处理$ _SESSION

NUXT构建与生成以及站点地图

如何配置维护或站点关闭页面

如何遍历站点中的所有页面?

如何在Markdown的Pelican中使用Pygments?

递归函数无法检查生成的站点索引(存储在我的数据库中的 desc、title、img 等)是否已在页面上

目标页面在不加载浏览器页面的情况下更改其URL。如何使用户脚本仅在该站点的选定页面上触发?

Heroku:如何将静态站点生成与Python / Flask集成

使用maven-site-plugin生成站点时构建失败

托管在 gitlab 页面上的网站要求登录

如何在GitLab的持续集成中添加Stack和GHC?

如何从模板获取Pelican版本号

Gitlab持续集成npm后台流程

Golang和Gitlab持续集成

在页面上显示另一个站点的框架

如何使用条件在页面上生成元素