行动:
- 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避免在输出中暴露多行值的正确方法是什么?
在我的工作流程中,我使用以下步骤运行自定义操作:
- 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 存储库上,我在拉取请求后运行了 2 个工作流程:
在我的测试工作流程中,我有一些我不想向其他人公开的秘密。因此,出于安全原因,我想在运行测试之前手动检查拉取请求。
GitHub 允许我为公共分叉的工作流程配置所需的批准。此配置是针对每个存储库的,我想按工作流程配置它。换句话说 - 要求是 CLA 助手将在每个拉取请求上运行,但只有在维护人员单击“批准并运行”按钮后才会运行测试。
有人知道如何让 CLA 助手为每个 PR 运行,但只有在单击“批准”按钮后才进行测试吗?
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实际上不存在。
如何将作业名称传递到输入参数中?
我有 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) 我想知道在使用 ArgoCD 成功部署任何微服务后,如何运行应用程序 E2E(UI 或 API)测试。
当前设置:我使用 github-actions 设置了 CI 管道。完成任何微服务的 CI 构建后,它会更新位于 github 存储库之一的 helm 值中的 docker 镜像版本。然后 ArgoCD 会轮询此存储库是否有任何更改,如果存在更改,则将其部署在 Kubernetes 集群中。
意图:我想在 argocd 同步 Helm 图表中定义的任何微服务部署对象后运行应用程序 E2E(UI 和 API)测试。但我不确定 github 操作中的触发点应该是什么。E2E 测试 github 操作工作流程如何知道 argocd 已毫无问题地部署了微服务,并且服务已准备好供自动化测试使用。
是否可以env在 github 工作流程中的全局部分中使用变量?就像下面的代码片段一样
env:
isqa: ""
local_tag: "${{env.isqa}}latest"
project: "important"
aws_taskdef: "project-${project}-something"
Run Code Online (Sandbox Code Playgroud) 我使用预安装的 Bazel 在 GitHub Actions 上构建代码。Bazel 能够在文件系统上缓存步骤,以跳过后续构建的工作。
但是如何将此缓存保存在 GitHub Actions 中以便在后续工作流程运行中使用?
我创建了一个 Github Actions 工作流程,生成.msi我不想稍后执行的文件,以测试应用程序是否按预期工作。
工作流程实现如下
\nbuild-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"\nRun Code Online (Sandbox Code Playgroud)\n基本上,此工作流程创建.exe文件(Create binary from branch步骤),然后使用 powershell 中的脚本生成.msi文件(Generate msi步骤),最后尝试安装.msi文件(Install msi步骤)。
很奇怪的是,我的代码在我的笔记本电脑中通过了所有 UT/IT,但在 github CI 中却遇到了错误。您介意帮忙学习一些在 github CI 中调试的方法吗?或者让代码像github一样在本地运行?
这是一个关于时间序列数据库 Apache-IoTDB 的项目。该错误看起来像是普通代码中的一个微不足道的逻辑错误。希望它可以帮助诊断错误。非常感谢 !
github-actions ×10
github ×2
apache-iotdb ×1
argocd ×1
bazel ×1
docker ×1
dockerfile ×1
iotdb ×1
laravel ×1
linode ×1
pull-request ×1
ssh ×1
windows ×1