我想设计一个 GitHub 操作,每当发布新版本时都会上传一些构建工件作为资产。但是,我找不到任何有关如何执行此操作的示例。请注意,我在 GitHub 网站中创建发布。这也会创建一个相应的标签。
此答案不适用,因为它从标签创建版本。我已经在 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} 。
我有一个使用 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) 我想使用 GitHub 操作/执行一些配置,自动请求 GitHub 组织中的团队进行审核(例如core)。我知道您可以创建拉取请求模板,自动请求某个审阅者进行审阅,但如何在不创建模板的情况下执行此操作?总之,我希望 GitHub 中有一个团队core自动请求对每个打开的 PR 进行审核。我该怎么做呢?
我的一般问题是:如何在 Github 工作流程中获取正在运行的服务名称?
\n我有一个 Keycloak 容器设置为服务,我想通过在 Keycloak 容器内执行脚本来导入领域,这是我的工作流程的片段:
\nname: 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) 我正在尝试使用 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) 我有一个 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
我正在尝试在启用 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) 我目前正在开发一个小型 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) 如果 GitHub 存储库添加了 GitHub 操作,并且该操作失败,GitHub 会发送一封自动电子邮件来指示该失败。我如何更改该电子邮件的收件人?
\n背景
\n我的 GitHub 个人资料将我的个人电子邮件地址设置为主要电子邮件地址,并将我的工作电子邮件地址添加为辅助电子邮件地址。在我工作的 GitHub 帐户中,我创建了一个新的 GitHub 存储库,其中包含一个 GitHub 操作,每当对 GitHub 存储库进行推送时就会执行该操作。GitHub 设置是这样的,当发生推送并且操作失败时,GitHub 会发送一封自动电子邮件来指示失败。问题是,当我从 Git 用户(使用我的工作电子邮件地址)推送并且 GitHub 操作失败时,该电子邮件将发送到我的个人电子邮件地址,而不是我的工作电子邮件地址电子邮件地址。如果可能的话,我和我的工作都希望将所有与工作相关的电子邮件排除在我的个人电子邮件之外。
\n我不确定这封电子邮件是因为我创建了存储库、因为我创建了操作还是因为我发起了推送而发送给我的。
\n我意识到我可以额外收件人,但这不是我现在想要的。
\n可能的解决方案
\n理想情况下,我想将这些电子邮件的收件人更改为我想要的任何收件人。那可能吗?如果是这样,我将如何处理?
\n作为后备方案,有没有办法简单地将这些电子邮件的收件人更改为我的工作电子邮件地址,而不是我的个人电子邮件地址电子邮件地址?
\n到目前为止我尝试过的
\n谢谢。
\ngithub-actions ×10
docker ×2
github ×2
asp.net ×1
azure ×1
cmake ×1
credentials ×1
email ×1
git ×1
javascript ×1
monorepo ×1
path ×1
powershell ×1
terraform ×1
testing ×1
windows ×1
yaml ×1