ner*_*lip 0 git github google-cloud-build
我正在尝试将 GoogleCloud Build
与 GitHub结合使用来创建 CI/CD 管道。但是我正在为 GCB 苦苦挣扎...
下面是一个非常简单的管道:
npm install
--> 它有效npm test
--> 它有效npm run css:ALL
(rm
一些文件+做一些缩小的东西)-->似乎工作git
命令 -->不起作用错误:
Step #3: fatal: not a git repository (or any parent up to mount point /)
Step #3: Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Run Code Online (Sandbox Code Playgroud)
云构建.yaml
steps:
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
# run test
- name: 'gcr.io/cloud-builders/npm'
args: ['test']
# build css files
- name: 'gcr.io/cloud-builders/npm'
args: ['run', 'css:ALL']
# git stuff
- name: 'gcr.io/cloud-builders/git'
args: ['add', '-A']
- name: 'gcr.io/cloud-builders/git'
args: ['commit', '-m', '"some message"']
Run Code Online (Sandbox Code Playgroud)
你有什么线索吗?
我的目标只是git add
构建所有东西并将push
它们放回我的branch
. 谢谢
Cloud Build 是一款很棒的产品!!有一些无聊的事情...... .git 文件夹没有与源代码一起复制。
如果您手动运行云构建,只需.gcloudignore
在存储库的根目录中添加一个空文件。多亏了它,该.git
目录不会被忽略并与您的代码一起上传。
但是这个技巧不适用于触发器。为此,我使用此步骤
steps:
- name: 'gcr.io/cloud-builders/git'
entrypoint: /bin/bash
args:
- -c
- |
# Cloud Build doesn't recover the .git file. Thus checkout the repo for this
git clone --branch $BRANCH_NAME https://github.com/path/to/yourRepo.git /tmp/repo ;
# Copy only the .git file
mv /tmp/repo/.git .
Run Code Online (Sandbox Code Playgroud)
然后您可以使用 git,并使用有效且现有的.git
目录