Afr*_*Afr 2 git continuous-integration github git-checkout github-actions
我创建了一个新的Rust项目,并决定,我将给Github Actions一个尝试在每个请求请求上运行自动化构建和测试的方法:
name: Rust
on: [pull_request]
Run Code Online (Sandbox Code Playgroud)
我花了一段时间注意到默认情况下,Github Actions根本不签出我的代码,而GITHUB_WORKSPACE只是空的。因此,我尝试手动克隆存储库。做这样的事情:
name: Rust
on: [pull_request]
Run Code Online (Sandbox Code Playgroud)
但这只是检查默认分支上的内容。因此,我调查了检查$GITHUB_SHA结果是否是我的存储库未知的。对于$GITHUB_REF空的情况也是如此。
在这一点上,我对所做的事情一无所知。我最初的假设是,实际上配置为运行的作业on: [pull request]应具有该代码,但无法检出并准备该代码。
我还调查了提供的Checkout操作:
此操作将您的存储库签出到
$GITHUB_WORKSPACE,以便您的工作流可以访问存储库的内容。默认情况下,这等效于运行
git fetch和git checkout $GITHUB_SHA,因此您将始终以触发该工作流程的版本获得您的回购内容。请参阅此处以了解$GITHUB_SHA各种事件的含义。
但是正如我之前所说,$GITHUB_WORKSPACE完全是空的,a git fetch只会告诉您没有git存储库。
这是一个示例失败:
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
fatal: reference is not a tree: d76745134ae45905e4a0ab8d27c92f1e2544bdc1
##[error]Process completed with exit code 128.
Run Code Online (Sandbox Code Playgroud)
什么是$GITHUB_SHA如果它是未知的我的仓库?我会完全误解Github动作吗?如何使用Github Actions检出最新提交,即在请求请求时?
您应该使用处理结帐的正式措施。该github-actions做的事情'的方式需要一些时间来适应,因为它是一个项目管理套件,不仅仅迎合CI / CD的需求。
因此,某些事情注定会有些奇怪或麻烦,这主要是因为有关这方面的文档还不是很成熟-但是,嘿,这是一个beta版本,这是有原因的。
此操作的基本用法是:
steps您要检查当前提交的部分@master,但是命名当前最新版本会更安全一些-在这种情况下@v1jobs:
build:
runs-on: ubuntu-latest
steps:
# may or may not have a name, it's quite self-descriptive
- uses: actions/checkout@v1
# run steps that rely on the code in the commit that was pushed
- name: test code
steps: ...
- name: build package
steps: ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |