标签: github-actions

GitHub Action 来构建资产并将其附加到每个新版本?

我想设计一个 GitHub 操作,每当发布新版本时都会上传一些构建工件作为资产。但是,我找不到任何有关如何执行此操作的示例。请注意,我在 GitHub 网站中创建发布。这也会创建一个相应的标签。

此答案不适用,因为它从标签创建版本。我已经在 GitHub 网站上创建了一个版本。

github-actions

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

需要在github操作工作流程中将反斜杠转换为正斜杠

在我的 actions yml 文件中,我设置了一个环境变量,指向我的 ctest 输入图像文件的根目录(我运行 ctest 来测试图像编解码器解压缩器,这些是输入图像)。

env:
  DATA_ROOT: ${{github.workspace}}/data
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,这给了我类似的东西c:\Foo\Bar/data,我想将其转换为 c:/Foo/Bar/data

我可以在 PowerShell 中进行转换:

$temp = ${DATA_ROOT}
$pattern = '[\\]'
$temp = $temp -replace $pattern, '/'
Run Code Online (Sandbox Code Playgroud)

但我该如何重置${DATA_ROOT}为 equal $temp

我希望后续步骤使用新的 ${DATA_ROOT} 。

windows powershell path cmake github-actions

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

如何从 GitHub Actions 中的重定向输出中删除所有无关输出?

我有一个使用 Terraform 进行部署的 GitHub Actions 工作流程。

当 Terraform 完成后,我想获取 Terraform 输出并将其发送到工作流程中的下一个作业,以便可以提取和使用各个部分。具体来说,我的 Terraform 部署一个 Azure Function,然后输出函数应用名称。然后,它被用来告诉下一个作业在哪里部署函数代码。

但是,当我像这样重定向输出时terraform output

      - name: save tf output
        run: terraform output -json > tfoutput.json
        shell: bash
        working-directory: terraform
Run Code Online (Sandbox Code Playgroud)

然后将其放入工作工件中

      - name: Upload output file
        uses: actions/upload-artifact@v2
        with:
          name: terraform-output
          path: terraform/tfoutput.json
Run Code Online (Sandbox Code Playgroud)

内容结果文件如下所示:

[command]/home/runner/work/_temp/fb419afc-033e-4058-b5f3-c44b90cb0bd0/terraform-bin output -json
{
  "functionappname": {
    "sensitive": false,
    "type": "string",
    "value": "telemetry-function"
  }
}
::debug::Terraform exited with code 0.
::debug::stdout: {%0A  "functionappname": {%0A    "sensitive": false,%0A    "type": "string",%0A    "value": "telemetry-function"%0A  }%0A}%0A
::debug::stderr: 
::debug::exitcode: …
Run Code Online (Sandbox Code Playgroud)

terraform github-actions

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

如何使用 GitHub 操作自动请求某人进行评论?

我想使用 GitHub 操作/执行一些配置,自动请求 GitHub 组织中的团队进行审核(例如core)。我知道您可以创建拉取请求模板,自动请求某个审阅者进行审阅,但如何在不创建模板的情况下执行此操作?总之,我希望 GitHub 中有一个团队core自动请求对每个打开的 PR 进行审核。我该怎么做呢?

yaml github github-actions

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

在工作流步骤中获取服务容器名称

我的一般问题是:如何在 Github 工作流程中获取正在运行的服务名称?

\n

我有一个 Keycloak 容器设置为服务,我想通过在 Keycloak 容器内执行脚本来导入领域,这是我的工作流程的片段:

\n
name: Test Workflow\n\non:\n  push:\n    branches-ignore:\n      - main\n\njobs:\n  test:\n    name: Test\n    runs-on: ubuntu-latest\n\n    services:\n      keycloak:\n        image: quay.io/keycloak/keycloak:12.0.4\n        env:\n            KEYCLOAK_USER: "admin"\n            KEYCLOAK_PASSWORD: "admin"\n            JAVA_OPTS_APPEND: "-Dkeycloak.profile.feature.upload_scripts=enabled"\n        ports:\n            - "8091:8080"\n        volumes:\n            - "/workspace/src/main/resources/keycloak:/src/main/resources/keycloak/"\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n\n      - name: Setup Java\n        uses: actions/setup-java@v1\n        with:\n          java-version: 14\n\n      - name: List running containers\n        run: docker ps -a\n\n      - name: Setup Keycloak realm\n        run: |\n            docker exec -it keycloak sh -c \n            "/opt/jboss/keycloak/bin/kcadm.sh config credentials …
Run Code Online (Sandbox Code Playgroud)

docker github-actions

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

GitHub 操作无法发布到 Azure

我正在尝试使用 GitHub actions 和 Azure 构建和部署 ASP.NET Web 应用程序。

我已经使用 VS2017 成功创建了一个小型应用程序 (.NET 4.8) 并将其发布到 Azure。

现在,我正在尝试设置自动部署,并使用设置部署时从 Azure 获得的基本 GitHub 操作工作流。

运行该操作时,我遇到此错误:

D:\a\pathtomyproject\myprojectname.csproj : error MSB4057: The target "pipelinePreDeployCopyAllFilesToOneFolder" does not exist in the project.

这是完整的动作:

name: Build and deploy ASP app to Azure Web App 

on:
  push:
    branches:
      - develop
  workflow_dispatch:

jobs:
  build-and-deploy:
    runs-on: 'windows-latest'

    steps:
    - uses: actions/checkout@master

    - name: Setup MSBuild path
      uses: microsoft/setup-msbuild@v1.0.2
  
    - name: Setup NuGet
      uses: NuGet/setup-nuget@v1.0.5

    - name: Restore NuGet packages
      run: nuget …
Run Code Online (Sandbox Code Playgroud)

asp.net azure github-actions

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

Rails 和 Github 操作 - 凭证

我有一个 Rails 6 应用程序,使用 Rails 内置的凭据存储,并且我正在使用 Github Actions 在此应用程序上运行测试和 CI。

我的初始化程序代码使用在本地计算机上通过测试的凭据,因为它使用来自 的凭据config/credentials/test.yml.enc,但是操作无法访问此文件。我在网上看到了建议,将RAILS_MASTER_KEY凭证密钥文件中的密钥值设置为环境变量,但我已将RAILS_TEST_KEY( 和RAILS_MASTER_KEY) 设置为 的值,config/credentials/test.key但没有成功。如果密钥文件不存在,Rails 是否知道查找此环境变量,或者我是否需要执行某些操作将其指向此变量?

testing continuous-integration ruby-on-rails credentials github-actions

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

NX monorepo fatal:没有这样的参考:'main~1'

我正在尝试在启用 nx 云的 github actions 中构建我的 nx 应用程序。我总是收到fatal: No such ref: 'main~1'错误。

该命令nx affected --target=build --base=main~1 --head=HEAD --parallel --with-deps在我提交之前有效,但在我提交之后,该命令在本地或 ci 中不再有效。

根据文档,将基础设置为main~1应该仅将其与主分支的先前提交进行比较。

Github Actions 中的完整错误:

yarn run v1.22.10
$ nx affected --target=build --base=main~1 --head=HEAD --parallel --with-deps
fatal: Not a valid object name main~1
fatal: No such ref: 'main~1'
nx affected

Run task for affected projects

Run command using --base=[SHA1] (affected by the committed, uncommitted and
untracked changes):
  --base  Base of the current branch (usually …
Run Code Online (Sandbox Code Playgroud)

javascript git monorepo github-actions

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

docker run dynamodb-local 在 Github 上操作工作流程挂起

我目前正在开发一个小型 CICD 项目,每当我更新代码时,该项目都会使用 dynamodb-local 在 Github Actions 上运行一系列测试,如果测试成功则打包和部署。

我有以下工作流程:

name: backend_actions
on:
  workflow_dispatch:
  push:
    paths:
      - 'backend/*'
    branches:
      - master
jobs:
  test-locally:
    runs-on: ubuntu-latest
    outputs:
      test-result: ${{ steps.run-tests.outputs.result }}
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: '3.9'
      - uses: aws-actions/setup-sam@v1
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: Setup local DynamoDB
        run: docker run …
Run Code Online (Sandbox Code Playgroud)

docker github-actions

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

如何更改 GitHub Action 失败通知电子邮件的收件人?

如果 GitHub 存储库添加了 GitHub 操作,并且该操作失败,GitHub 会发送一封自动电子邮件来指示该失败。我如何更改该电子邮件的收件人?

\n

背景

\n

我的 GitHub 个人资料将我的个人电子邮件地址设置为主要电子邮件地址,并将我的工作电子邮件地址添加为辅助电子邮件地址。在我工作的 GitHub 帐户中,我创建了一个新的 GitHub 存储库,其中包含一个 GitHub 操作,每当对 GitHub 存储库进行推送时就会执行该操作。GitHub 设置是这样的,当发生推送并且操作失败时,GitHub 会发送一封自动电子邮件来指示失败。问题是,当我从 Git 用户(使用我的工作电子邮件地址)推送并且 GitHub 操作失败时,该电子邮件将发送到我的个人电子邮件地址,而不是我的工作电子邮件地址电子邮件地址。如果可能的话,我和我的工作都希望将所有与工作相关的电子邮件排除在我的个人电子邮件之外。

\n

我不确定这封电子邮件是因为我创建了存储库、因为我创建了操作还是因为我发起了推送而发送给我的。

\n

我意识到我可以额外收件人,但这不是我现在想要的。

\n
\n

可能的解决方案

\n
    \n
  • 理想情况下,我想将这些电子邮件的收件人更改为我想要的任何收件人。那可能吗?如果是这样,我将如何处理?

    \n
  • \n
  • 作为后备方案,有没有办法简单地将这些电子邮件的收件人更改为我的工作电子邮件地址,而不是我的个人电子邮件地址电子邮件地址?

    \n
  • \n
\n
\n

到目前为止我尝试过的

\n
    \n
  • 我已向 GitHub 支持询问此事,但尚未收到回复。
  • \n
  • 检查设置:在我的工作存储库中,我似乎没有权限检查此存储库的设置。但我在我的个人 GitHub 帐户中创建了一个类似的存储库,并且能够检查其设置。有一个 \xe2\x80\x98Notifications\xe2\x80\x99 部分和一个 \xe2\x80\x98Actions\xe2\x80\x99 部分。但两者都不允许我做我想做的事。
  • \n
\n

谢谢。

\n

email github github-actions

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