小编Bri*_*ham的帖子

如何使用 github-script 操作在 GitHub Action 中上传版本

现在,一些标准 GitHub 操作已存档并且不再受支持,我需要创建一个新版本并使用GitHub 脚本操作上传工件。

注意:我无法使用 GitHub 不支持的操作。

我已经完成了发布并正在工作,但是现在当尝试上传发布工件时,我找不到上传发布内容(这是一个 tarball)的方法。

用于上传发布资产的 API 端点的文档建议数据应该是调用输入的一部分,而不是引用文件。

如何将文件的内容获取到下面的数据参数中:

- name: Upload Assets
  uses: "actions/github-script@v6"
  with:
    script: |
        try {
          return await github.rest.repos.uploadReleaseAsset({
            owner: context.repo.owner,
            repo: context.repo.repo,
            name: "release.tar.xz",
            release_id: ${{ fromJSON(steps.deploy.outputs.result).data.id }}
            data: 
          })
        } catch (error) {
          core.setFailed(error.message);
        }
Run Code Online (Sandbox Code Playgroud)

github github-api github-actions

4
推荐指数
1
解决办法
1555
查看次数

在c中有效暂停执行的最佳方法

我在一个在Linux上运行的库中有一个状态机实现.程序的主循环只是等待,直到有足够的时间来要求下一次执行状态机.

在他们的时刻,我有一个类似于以下伪代码的循环:

while( 1 )
{
    while( StateTicks() > 0 )
        StateMachine();

    Pause( 10ms );
}
Run Code Online (Sandbox Code Playgroud)

StateTicks可能每隔50ms返回一次.我使Pause()越短,我在程序中使用的CPU时间就越多.

有没有更好的方法来测试一段时间的传递,可能是基于信号?我宁愿停止执行,直到StateTicks()> 0而不是完全调用Pause().

在状态机实现的底层,StateTicks使用clock_gettime(PFT_CLOCK ...),效果很好.我很想保持这种计时,因为如果一个StateMachine()调用花费的时间超过状态机,那么这个实现就会赶上.

暂停使用nanosleep来实现合理准确的暂停时间.

也许这已经是最好的方式,但它似乎并不特别优雅.

c linux state-machine

2
推荐指数
1
解决办法
620
查看次数

标签 统计

c ×1

github ×1

github-actions ×1

github-api ×1

linux ×1

state-machine ×1