【问题标题】:Create GitHub actions that use powershell scripts创建使用 PowerShell 脚本的 GitHub 操作
【发布时间】:2020-03-29 17:51:17
【问题描述】:

我想创建一个 GitHub 操作,用于在 Windows 中设置环境,运行一些 Powershell 命令。尽管这可以作为一个步骤轻松完成,但似乎没有办法为此创建完整的 GitHub 操作。如果我使用这个:

name: 'Rakudo Star fix for windows'
description: 'Updates zef for RakudoStar'
author: 'JJ'
runs:
  using: 'node12'
  main: 'upgrade.ps1'

除了 JS 脚本之外似乎没有其他方法可以运行任何东西,甚至无法声明环境。我知道在工作步骤中留待以后,但无论如何它看起来像一个黑客。我在这里有什么遗漏吗?

【问题讨论】:

  • 我刚刚在这里发布了您的问题的答案:stackoverflow.com/questions/59184730/…
  • 我只是浏览了文档,我的理解是,main 应该是JavaScript,因为你说它应该通过Node 执行,对吧?因此,为了能够在那里使用 Powershell 脚本,您需要在 using 字段中这样说。所以,using: 'pshell.exe' 或类似的东西。
  • @raiph using 字段是用于执行main 中指定的代码的应用程序。但是 Github Actions 只支持使用node12docker。从这个 GHActions 可以看出,我只是为了举例而运行。 github.com/kaypeter87/GitHubActions-PSTest/commit/…
  • 谢谢@PeterKay。因此,也许您可​​以编辑您的答案以明确只有这两个选项,即运行 JS 或 docker,而后者不会在大多数 Windows 环境中运行,因此 JJ 的后续问题和您的答案是唯一的方法转发给有JJ情景的人。那么也许 JJ 会在下面接受您的回答,以明确表示这个问题与您对 JJ 的后续问题的其他回答一样可以接受。 (或者,您可以什么都不做,因为任何阅读本文的人现在都可能会得到图片。)无论哪种方式,感谢您的回复。 :)
  • @raiph 感谢您的出色主持!为了清楚起见,我继续更新了下面的答案。

标签: powershell github-actions


【解决方案1】:

您也可以使用 .ps1 脚本的入口点直接运行 docker

FROM ubuntu:18.04

LABEL "com.github.actions.name"="test"
LABEL "com.github.actions.description"="test."

RUN apt-get update \
    && apt-get install wget -y \
    && wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb \
    && dpkg -i packages-microsoft-prod.deb \
    && apt-get update \
    && apt-get install -y powershell

ADD test.ps1 /test.ps1
ENTRYPOINT ["pwsh", "/test.ps1"]

更新:

using 字段是用于执行main 中指定的代码的应用程序。但是 Github Actions 只支持使用node12docker。从这个GHActions 可以看出,我只是为了举例而跑。

Docker 无法在大多数 Windows 环境中运行,您必须使用 Windows Server 2019 作为基础环境。

【讨论】:

  • Docker 环境不在 Windows 中运行。
  • 从技术上讲,您可以使用进程隔离。不过,这仅适用于 Windows 10/Server 2019。
  • 但是 Windows Server 2019 是否可用作 GitHub Actions 中的基础环境?
  • 是的,可以使用windows-latest分配,您也可以在这里查看可用的软件/操作系统:help.github.com/en/actions/…和这里:help.github.com/en/actions/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 2023-02-02
  • 2020-12-26
  • 1970-01-01
  • 2022-11-15
  • 2020-03-29
  • 2021-12-04
相关资源
最近更新 更多