标签: github-actions

如何屏蔽 GitHub 操作中的多行值?

行动:

- id: sets-a-secret
  run: |
    local_secret=$(doppler secrets get GAR_JSON_KEY --plain)
    echo "::add-mask::$local_secret"
    echo "::set-output name=my-secret::$local_secret"
  env:
    DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

local_secret等于:

{
  "type": "service_account",
  "project_id": "contrawork"
}
Run Code Online (Sandbox Code Playgroud)

在 GitHub 日志中,仅隐藏该值的第一行:

##[debug]/usr/bin/bash -e /var/actions-runner/_runners/1/_work/_temp/10dcce73-cb22-43d9-853d-6c9674f6895e.sh
::add-mask::***
  "type": "service_account",
  "project_id": "contrawork"
}
::set-output name=my-secret::***
##[debug]steps['sets-a-secret']['outputs']['my-secret']='***'
  "type": "service_account",
  "project_id": "contrawork"
}
##[debug]Finishing: Run local_secret=$(doppler secrets get GAR_JSON_KEY --plain)
Run Code Online (Sandbox Code Playgroud)

add-mask避免在输出中暴露多行值的正确方法是什么?

github-actions

5
推荐指数
1
解决办法
1606
查看次数

如何将机密作为环境变量传递到 Docker Github Action 中?

在我的工作流程中,我使用以下步骤运行自定义操作:

- name: Run action
  uses: ./backend
  env:
    MY_SECRET: ${{ secrets.MY_SECRET }}
Run Code Online (Sandbox Code Playgroud)

这是action.yml

name: "Backend"
on: [pull_request]
runs:
  using: 'docker'
  image: "Dockerfile"
Run Code Online (Sandbox Code Playgroud)

由于某种原因,MY_SECRET我的Dockerfile. 我尝试在 shell 脚本文件和命令中访问它RUN

RUN echo "MY_SECRET: $MY_SECRET"
Run Code Online (Sandbox Code Playgroud)

但它总是空的。

我尝试了存储库级别和组织级别的机密,但环境变量始终为空。

知道为什么吗?

github docker dockerfile github-actions

5
推荐指数
1
解决办法
3349
查看次数

要求所有外部协作者批准特定工作流程

在我的 GitHub 存储库上,我在拉取请求后运行了 2 个工作流程:

  1. 测试工作流程
  2. CLA 助理工作流程

在我的测试工作流程中,我有一些我不想向其他人公开的秘密。因此,出于安全原因,我想在运行测试之前手动检查拉取请求。

GitHub 允许我为公共分叉的工作流程配置所需的批准。此配置是针对每个存储库的,我想按工作流程配置它。换句话说 - 要求是 CLA 助手将在每个拉取请求上运行,但只有在维护人员单击“批准并运行”按钮后才会运行测试。

有人知道如何让 CLA 助手为每个 PR 运行,但只有在单击“批准”按钮后才进行测试吗?

github-actions

5
推荐指数
0
解决办法
473
查看次数

如何将作业名称传递到 github 操作的输入中?

jobs:
  my-name:
    name: "My Name"
    ...
    steps:
      - name: Slack Notification
        uses: my-action
        with:
          slack-msg: ${{ jobs.${{ env.GITHUB_JOB }}.name }}
Run Code Online (Sandbox Code Playgroud)

我希望 slack-msg 的计算结果为“我的名字”。我在多个作业中使用 my-action,并且我总是想传递作业名称,但我不知道该怎么做。当我尝试上述操作时,该作业实际上没有运行,我不知道如何解决原因:github 工作流程日志my-name实际上不存在。

如何将作业名称传递到输入参数中?

github github-actions

5
推荐指数
1
解决办法
2003
查看次数

GitHub Actions:ssh:握手失败:ssh:溢出读取版本字符串

我有 DO 服务器和 Linode 服务器,并将它们连接到 GitHub Actions 管道。我在读取 json 配置文件后测试我的 ssh 连接,DO 服务器似乎工作正常,但 Linode 不工作并收到上述错误,有人知道原因是什么吗?我的 ssh 私钥和公钥均已添加。我的deploy-application.yaml 文件如下。感谢您的任何帮助!

name: Deploy Application
on:
  push:
    branches: [main]

jobs:
  laravel-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: Use Node.js 12.x
        uses: actions/setup-node@v1
        with:
          node-version: 12.x

      - name: Install composer dependencies
        run: composer install --prefer-dist

      - name: Install npm dependencies
        run: npm install

      - name: Run Mix
        run: npm run production

      - name: Prepare Laravel Application
        run: |
          cp .env.example .env
          php artisan …
Run Code Online (Sandbox Code Playgroud)

ssh continuous-integration linode laravel github-actions

5
推荐指数
0
解决办法
1151
查看次数

argocd部署后如何运行应用程序E2E测试?

我想知道在使用 ArgoCD 成功部署任何微服务后,如何运行应用程序 E2E(UI 或 API)测试。

当前设置:我使用 github-actions 设置了 CI 管道。完成任何微服务的 CI 构建后,它会更新位于 github 存储库之一的 helm 值中的 docker 镜像版本。然后 ArgoCD 会轮询此存储库是否有任何更改,如果存在更改,则将其部署在 Kubernetes 集群中。

意图:我想在 argocd 同步 Helm 图表中定义的任何微服务部署对象后运行应用程序 E2E(UI 和 API)测试。但我不确定 github 操作中的触发点应该是什么。E2E 测试 github 操作工作流程如何知道 argocd 已毫无问题地部署了微服务,并且服务已准备好供自动化测试使用。

automated-tests github-actions argocd

5
推荐指数
2
解决办法
7089
查看次数

github actions:在全局环境部分使用变量

是否可以env在 github 工作流程中的全局部分中使用变量?就像下面的代码片段一样

env:
  isqa: ""
  local_tag: "${{env.isqa}}latest"
  project: "important"
  aws_taskdef: "project-${project}-something"
Run Code Online (Sandbox Code Playgroud)

github-actions

5
推荐指数
1
解决办法
9108
查看次数

如何使用 GitHub Actions 维护 Bazel 缓存?

我使用预安装的 Bazel 在 GitHub Actions 上构建代码。Bazel 能够在文件系统上缓存步骤,以跳过后续构建的工作。

但是如何将此缓存保存在 GitHub Actions 中以便在后续工作流程运行中使用?

bazel github-actions

5
推荐指数
1
解决办法
2002
查看次数

如何在 Github Actions 上执行 MSI 文件(windows-latest runner)

语境

\n

我创建了一个 Github Actions 工作流程,生成.msi我不想稍后执行的文件,以测试应用程序是否按预期工作。

\n

工作流程实现如下

\n
build-windows:\n    runs-on: windows-latest\n    steps:\n      - uses: actions/checkout@v2.3.4\n      - name: Create binary from branch\n        run: |\n          choco install make\n          make build-windows\n      - name: Generate msi\n        shell: powershell\n        run: .\\.github\\scripts\\windows\\gen-win.ps1\n      - name: Install msi\n        run: |\n          echo "Start Msiexec"\n          msiexec /qn /i "file.msi" /L*vx!\n          echo "End Msiexec"\n
Run Code Online (Sandbox Code Playgroud)\n

基本上,此工作流程创建.exe文件(Create binary from branch步骤),然后使用 powershell 中的脚本生成.msi文件(Generate msi步骤),最后尝试安装.msi文件(Install msi步骤)。

\n
\n

问题 …

windows windows-installer github-actions powershell-cmdlet

5
推荐指数
1
解决办法
1320
查看次数

如何在github CI中调试?

很奇怪的是,我的代码在我的笔记本电脑中通过了所有 UT/IT,但在 github CI 中却遇到了错误。您介意帮忙学习一些在 github CI 中调试的方法吗?或者让代码像github一样在本地运行?

这是一个关于时间序列数据库 Apache-IoTDB 的项目。该错误看起来像是普通代码中的一个微不足道的逻辑错误。希望它可以帮助诊断错误。非常感谢 !

pull-request github-actions iotdb apache-iotdb

5
推荐指数
2
解决办法
1767
查看次数