github 操作——编译结果在哪里?

Posted

技术标签:

【中文标题】github 操作——编译结果在哪里?【英文标题】:github actions – where are the compilation results? 【发布时间】:2020-10-08 14:55:40 【问题描述】:

我已经定义了一个小的 github action 工作流,它应该从 scss 编译一个 kss-styleguide。

该工作流程的步骤基本上会触发构建生成的 css 和相应的 kss-styleguide。

当我在我的开发机器上本地运行构建过程时,构建的样式指南将写入位于我项目根目录中的样式指南文件夹。

但是在 github 上,尽管所有内容都被标记为绿色,但我不知道生成的文件将写入什么或写入何处。

如果我不知道生成的样式指南在哪里,我该如何部署它?

这是我用于此工作流程的 yaml 文件:

名称:Node.js CI 在: 推: 分支:[ mk-node-ci ] 拉取请求: 分支:[ mk-node-ci ] 工作: 建造: 名称:构建风格指南 运行:ubuntu-latest 战略: 矩阵: 节点版本:[14.x] 脚步: - 使用:actions/checkout@v2 - 名称:使用 Node.js $ matrix.node-version 使用:操作/设置节点@v1 和: 节点版本:$ matrix.node-version - 用途:borales/actions-yarn@v2.0.0 和: cmd:安装 环境: NODE_ENV:开发 - 名称:“构建 CSS 文件” 用途:borales/actions-yarn@v2.0.0 和: cmd:“构建:css” - 名称:“构建样式指南文件” 用途:borales/actions-yarn@v2.0.0 和: cmd: "build:styleguide"

【问题讨论】:

请发布您操作的构建步骤的日志。与本地运行时的日志有区别吗? 【参考方案1】:

2020.10.14 19:25 GMT 更新

GitHub 操作在单独的“干净”Runner Machine 上执行。

actions/checkout@v2 是将您的存储库复制到该机器的操作 - 通常用于执行测试等。

为了将生成的结果(如修改后的文件)从运行器机器返回到原始存储库,我们可以使用:

(1) upload-artifact 操作。 (2) git 推送。

例如,这是我的脚本,用于修改源目录中的文件并将它们放入输出目录(我将其作为操作(bash 脚本)运行:- run: wrap.sh)。脚本wrap.sh

echo "Copy directory structure from 'in' to 'out':";
find ./in -type d | while read i;
do
    if [ ! -d "$i/in/out" ]; then
        mkdir "$i/in/out"
        echo "$i/in/out";
    fi
done
echo "Wrap files:";
find ./in -type f -name "*" | while read i;
do
    echo "$i/in/out";
    cat ./tpl/header.html "$i" ./tpl/footer.html >"$i/in/out"
    git add "$i/in/out"
done
git config user.name "chang-zhao"
git commit . -m "Wrapping"
git push origin main

git add "$i/in/out" 正在向 git 添加一个具有该名称的新文件。提交工作需要git config user.name "..."git commit . -m "Wrapping" 是将新文件放入存储库的提交(“Wrapping”是我为此类提交起的名称)。

这样,在运行器服务器上生成的文件会被推送到原始存储库。

【讨论】:

以上是关于github 操作——编译结果在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在使用 github 操作进行构建期间执行诗歌安装时,使用预编译的 numpy 包而不是构建它

Stack Overflow 在哪里存储 GitHub 个人资料链接?

在拉取请求完成时隐藏 Github 操作

我从哪里获得公钥来验证 GitHub 的访问令牌?

如何快速地编译并且运行Github中的Android项目

GitHub 在可怕的权限错误中从哪里读取用户名/帐户?