在 gitlab-ci 中使用 运行 python 脚本时使用正确目录的问题
Issues with using proper directory when running python script in gitlab-ci
我有一个 python 脚本,我正在尝试 运行 作为 jekyll 站点的 gitlab 页面部署的一部分。我的站点有带有各种标签的博文,python 脚本为标签页生成 .md 文件。当我在 IDE 中手动 运行 它时,该脚本工作得很好,但是我希望它成为 gitlab ci 部署过程的一部分
这是我的 gitlab-ci.yml 设置的样子:
run:
image: python:latest
script:
- python tag_generator.py
artifacts:
paths:
- public
only:
- master
pages:
image: ruby:2.3
stage: deploy
script:
- bundle install
- bundle exec jekyll build -d public
artifacts:
paths:
- public
only:
- master
然而,它实际上并没有创建它应该创建的文件,这里是作业的输出 "run":
...
Cloning repository...
Cloning into '/builds/username/projectname'...
Checking out 4c8a47fe as master...
Skipping Git submodules setup
$ python tag_generator.py
Tags generated, count 23
Uploading artifacts...
WARNING: public: no matching files
ERROR: No files to upload
Job succeeded
脚本在执行后会读出 "tags generated, count ___",因此它是 运行ning,但是它应该创建的文件没有 created/uploaded 到正确的目录中。根项目文件夹中有一个 /tag 目录,这是它们应该去的地方。
我意识到问题一定与 public 文件夹有关,但是当我没有
artifacts:
paths:
- public
还是没有在/tag目录下创建文件,所以不管我有没有-public都不行,不知道是什么问题。
我想通了!
项目的 "build" 没有在 repo 中创建,gitlab 将 repo 克隆到另一个地方,所以我不得不更改 python 作业的工件路径,以便它在克隆的 "build" 位置,如下所示:
run:
image: python:latest
stage: test
before_script:
- python -V # Print out python version for debugging
- pip install virtualenv
script:
- python tag_generator.py
artifacts:
paths:
- /builds/username/projectname/tag
only:
- master
我有一个 python 脚本,我正在尝试 运行 作为 jekyll 站点的 gitlab 页面部署的一部分。我的站点有带有各种标签的博文,python 脚本为标签页生成 .md 文件。当我在 IDE 中手动 运行 它时,该脚本工作得很好,但是我希望它成为 gitlab ci 部署过程的一部分
这是我的 gitlab-ci.yml 设置的样子:
run:
image: python:latest
script:
- python tag_generator.py
artifacts:
paths:
- public
only:
- master
pages:
image: ruby:2.3
stage: deploy
script:
- bundle install
- bundle exec jekyll build -d public
artifacts:
paths:
- public
only:
- master
然而,它实际上并没有创建它应该创建的文件,这里是作业的输出 "run":
...
Cloning repository...
Cloning into '/builds/username/projectname'...
Checking out 4c8a47fe as master...
Skipping Git submodules setup
$ python tag_generator.py
Tags generated, count 23
Uploading artifacts...
WARNING: public: no matching files
ERROR: No files to upload
Job succeeded
脚本在执行后会读出 "tags generated, count ___",因此它是 运行ning,但是它应该创建的文件没有 created/uploaded 到正确的目录中。根项目文件夹中有一个 /tag 目录,这是它们应该去的地方。
我意识到问题一定与 public 文件夹有关,但是当我没有
artifacts:
paths:
- public
还是没有在/tag目录下创建文件,所以不管我有没有-public都不行,不知道是什么问题。
我想通了!
项目的 "build" 没有在 repo 中创建,gitlab 将 repo 克隆到另一个地方,所以我不得不更改 python 作业的工件路径,以便它在克隆的 "build" 位置,如下所示:
run:
image: python:latest
stage: test
before_script:
- python -V # Print out python version for debugging
- pip install virtualenv
script:
- python tag_generator.py
artifacts:
paths:
- /builds/username/projectname/tag
only:
- master