问题:我们为 CI 使用 github 操作工作流,并且我们有许多 github 存储库。我需要能够一次更改每个存储库可重复的所有内容。
是否可以在 github 操作工作流 yml 文件中使用位于不同存储库中的 mb 的某个片段。
我正在尝试在私人存储库(svg 图像)中获取徽章的状态,我是从未经身份验证的位置执行此操作,并且收到了预期的 404 错误消息。
有谁知道我应该如何将 access_token 信息添加到 GET 方法中才能实际获取其状态?
从 URL 调用徽章,如:
https://github.com/xx/yy/workflows/zz/badge.svg?event=push&access_token=hhhh
Run Code Online (Sandbox Code Playgroud)
返回 404。
此外,在请求的标头中设置令牌:
headers: {'Authorization': 'token hhhh', ... }
Run Code Online (Sandbox Code Playgroud)
返回 404。
谢谢!
我的代码中有一些秘密,在了解 GitHub Actions 后,我决定将它们保存在存储库秘密菜单中,以便以后在我的管道中使用。
但是,现在我需要访问这些秘密来开发新功能,而我不能。每次我尝试查看值时,它都会要求我更新机密。没有选择只是“看到”它们。
我不想更新任何东西,我只想看到它们的值。
如何在项目中查看我的机密的未加密值?
我目前有两个几乎相同的 GitHub 操作工作流文件,只有一个配置为对分支上master的push/pull_requests 做出反应,另一个配置为production.
登台工作流程如下所示:
env:
GCLOUD_PROJECT: my-project-stg
VERCEL_TARGET: staging
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
Run Code Online (Sandbox Code Playgroud)
生产工作流程开始如下:
env:
GCLOUD_PROJECT: my-project-prd
VERCEL_TARGET: production
on:
push:
branches: [ production ]
pull_request:
branches: [ production ]
Run Code Online (Sandbox Code Playgroud)
其余的工作流文件是相同的,所以这显然不是很 DRY。
我想有 1 个单一的工作流文件,并以某种方式根据分支名称在两组变量之间切换。有没有办法实现这一点,或者我可能从错误的角度来解决这个问题?
如果可以在共享基本定义上扩展两个工作流文件,我猜也可以解决这个问题。
我的项目中有几个 Dockerfile。一种是用于构建basic图像,其中包含一些业务级别的抽象。其他人正在根据basic图像构建服务。
所以在我的服务的 Dockerfiles 中,我有类似的东西
FROM my-project/base
# Adding some custom logic around basic stuff
Run Code Online (Sandbox Code Playgroud)
我使用 GitHub Actions 作为我的 CI/CD 工具。起初我有一个步骤将 docker 安装到我的工人中,然后运行如下:
- name: Build base image
working-directory: business
run: docker build -t my-project/base .
- name: Build and push service
working-directory: service
run: |
docker build -t my-ecr-repo/service .
docker push my-ecr-repo/service
Run Code Online (Sandbox Code Playgroud)
但是后来我找到了 docker/build-push-action 并决定在我的管道中使用它:
- name: Build business-layer container
uses: docker/build-push-action@v2
with:
load: true
tags: my-project/base
context: business
file: business/Dockerfile
- name: Build …Run Code Online (Sandbox Code Playgroud) 我正在尝试在运行私有 docker 映像的 github-actions 中设置作业。我将使用容器选项在该 docker 镜像中进行构建。链接。
我正在使用以下代码:
jobs:
container1:
runs-on: ubuntu-latest
container: saeed/privateimage:1
steps:
- uses: actions/checkout@v2
- run: |
echo "Runs inside a container"
Run Code Online (Sandbox Code Playgroud)
但是我无法提供我的 docker hub 凭证,所以它失败了。
如何进行身份验证以提取该私有映像?
谢谢。
Coveralls python 包装器 ( python-coveralls ) 最近收到了一个重大更新 (2.2.0 -> 3.0.0),我的 github-actions 工作流不再运行。
这是我的工作流程的相关部分:
test:
runs-on: ubuntu-latest
steps:
{... non-relevant steps...}
- name: Run test suite
run: tox -e $(echo py${{ matrix.python-version }}-mg${{ matrix.PYMONGO }} | tr -d . | sed -e 's/pypypy/pypy/') -- -a "--cov=my_project"
- name: Send coverage to Coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: coveralls
Run Code Online (Sandbox Code Playgroud)
这曾经适用于以前版本的python-coveralls,所以tox命令不是问题
这是我收到的错误:
Submitting coverage to coveralls.io...
Could not submit coverage: 422 Client Error: Unprocessable Entity for url: https://coveralls.io/api/v1/jobs
resubmitting with …Run Code Online (Sandbox Code Playgroud) 我的 GitHub 存储库中有以下文件夹结构。
docker
serverless
dotnet
2.1
Dockerfile
3.1
Dockerfile
python
3.8
Dockerfile
Run Code Online (Sandbox Code Playgroud)
现在我已经使用 github-actions 自动构建并推送到 ECR。
是否可以使用 github-actions 遍历每个文件夹并触发构建?
我想如果更改被推送到
Dockerfile图像应始终使用 2.1 标记并推送到 ECR和
Dockerfile,则应始终标记为 3.1 并推送到 ECR。关于如何使用 github-actions 实现这一目标的任何想法?
我看到了很多用途:
jobs:
myjob:
steps:
- name: checkout
uses: "actions/checkout@something"
- ...
Run Code Online (Sandbox Code Playgroud)
但我找不到这条线的目的是什么:
uses : "actions/checkout@something"
Run Code Online (Sandbox Code Playgroud)
它与此相似吗?
run: git checkout something
Run Code Online (Sandbox Code Playgroud) 我的目标是创建一个 GitHub 操作,当 release.yml 文件更改时,它将更新现有版本或在检查该版本是否为新版本后创建新版本,并根据先前的提交进行检查。最终想将此添加到我想添加操作和 release.yml 的其他项目中。
我目前遇到的问题是很难围绕如何去检测 release.yml 文件中的版本更改。
对于添加新版本的非常基本的用例,创建 action.yml 并添加的简单方法
version_1_0: # id of input
description: '1.0'
required: true
default: 'The most important changes are downgrading the artifact to java7 (from 8) and switching to gmavenplus plugin to compile groovy.
Besides that, there is a lot of restructuring inside of the pom.xml file
# Misc
* Polishing (f2ec0bb, 9e2ae89 and 8654493)
_Reviewed by_: @user'
Run Code Online (Sandbox Code Playgroud)
稍后在 index.js 文件中
const version = core.getInput('version_1_0');
core.setOutput("ver", version);
Run Code Online (Sandbox Code Playgroud)
给出稍后可以在 GitHub 操作文件中获取和清理的输出,然后转发到发布步骤以用于创建发布
push: …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×6
docker ×3
python ×2
.net ×1
automation ×1
autorelease ×1
badge ×1
coveralls ×1
github-api ×1
javascript ×1
release ×1
workflow ×1
yaml ×1