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目录