Pho*_*nix 7 workflow github github-actions
我看到了很多用途:
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
Run Code Online (Sandbox Code Playgroud)
但我找不到这条线的目的是什么:
uses : "actions/checkout@something"
Run Code Online (Sandbox Code Playgroud)
它与此相似吗?
run: git checkout something
Run Code Online (Sandbox Code Playgroud)
小智 11
理解术语让事情变得更清晰
旁注:当使用 git fetch 时,会在本地以“origin/name_of_branch”的形式创建自定义分支,可以在本地查看此分支上的更改。这些更改是文件的更新版本,而不是在 GitHub 上检查提交时看到的该文件中的特定更改。
回到问题何时执行动作
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
Run Code Online (Sandbox Code Playgroud)
默认执行的步骤是:
正在克隆触发工作流的当前存储库。
取决于定义的事件,例如推送或拉取请求:
git fetch --depth 1 $GITHUB_REF
Run Code Online (Sandbox Code Playgroud)
此处解释了命令中引用的环境变量。可以添加其他选项来实现特定的流程或场景,例如检查不同的分支。这可以在官方仓库自述文件中找到。
对于这一行:uses : "actions/checkout@something",它将使用带有 ref的actions/checkoutgithub 操作(源代码在这里)something。此 ref 仅指 github 操作版本(与您的 repo 无关)
该uses语句引用了此步骤中使用的 github 操作。从github上的文档为jobs.<job_id>.steps[*].uses:
选择要作为作业步骤的一部分运行的操作。操作是可重用的代码单元。您可以使用在与工作流相同的存储库、公共存储库或已发布的 Docker 容器映像中定义的操作。
此操作会在 $GITHUB_WORKSPACE 下检出您的存储库,以便您的工作流可以访问它。
默认情况下,它只检查一次提交。我的理解是它正在做类似的事情:
git fetch --depth 1 origin $GITHUB_REF
Run Code Online (Sandbox Code Playgroud)
此操作还会在 git config 中保留一个身份验证令牌。这样,您的工作流可以运行经过身份验证的 git 命令
默认情况下,克隆当前的存储库({{ github.repository }}),但你也可以用这个动作来克隆不同的存储库,并指定其它附加参数,如token,branch,path等...
带有附加输入参数的示例:通过设置fetch-depth为0(默认为1)来查看所有 git 历史记录,请参阅用法文档:
git fetch --depth 1 origin $GITHUB_REF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |