我已阅读有关创建和添加自定义工作流徽章的方法,该徽章将显示工作流是通过还是失败。但这里有一个问题。是否可以在徽章上输出一些百分比数据以及如何输出这些数据?
我正在打电话.\build.ps1,它似乎挂了:
https://github.com/nblockchain/ZXing.Net.Xamarin/runs/232358091
我需要什么特别的东西吗?在 AzureDevOps 中,这是开箱即用的。
我最近开始使用 GitHub 操作,所以我想做的是在推送完成后在 firebase 中托管我的 React 项目。我在这个 CI/CD 过程中使用了 GitHub 操作。这是我现在拥有的 main.yml。
name: Build and Deploy
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
working-directory: ./my-app
run: npm install
- name: Build
working-directory: ./my-app
run: npm run build
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: …Run Code Online (Sandbox Code Playgroud) 我目前的工作流程:
name: Node CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
run: |
npm install yarn -g
yarn
yarn test
env:
CI: true
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
我已经NPM_TOKEN在 repo secrets 区域设置了我的。
该令牌也在 Netlify 上使用,并且 netlify 构建过程有效。
当此工作流运行时,我的任何私有包都会收到 404。
我究竟做错了什么?
在我的单元测试中,我aws-sdk用来测试需要一些凭据的 SES,我们在使用 GitHub Actions 访问机密时遇到了问题。
一开始,我试图将值设置为~/.aws/credentials使用 github 工作流中的 run 命令:
# .github/workflows/nodejs.yml
steps:
...
- name: Unit Test
run: |
mkdir -p ~/.aws
touch ~/.aws/credentials
echo "[default]
aws_access_key_id = ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key = ${{ secrets.AWS_SECRET_KEY_ID }}
region = ${AWS_DEFAULT_REGION}
[github]
role_arn = arn:aws:iam::{accountID}:role/{role}
source_profile = default" > ~/.aws/credentials
npm test
env:
AWS_DEFAULT_REGION: us-east-1
CI: true
Run Code Online (Sandbox Code Playgroud)
原来我的测试文件:
# .github/workflows/nodejs.yml
steps:
...
- name: Unit Test
run: |
mkdir -p ~/.aws
touch ~/.aws/credentials
echo "[default]
aws_access_key_id = …Run Code Online (Sandbox Code Playgroud) 我正在使用 ZAP Dockerfile 映像 [2] 来扫描应用程序中的漏洞。以下是我的 Github 操作。
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: run zap
uses: docker://owasp/zap2docker-stable
with:
args: zap-baseline.py -t https://www.example.com
Run Code Online (Sandbox Code Playgroud)
所以基本上这个图像有一个名为 /home/zap/ 的文件夹,它试图将一个文件写入这个位置。我不明白的是,为什么 Github 的操作会抛出一个IOError: [Errno 13] Permission denied:for 持久化在 docker 容器内。容器正在使用zap用户。有没有其他人在 Github Actions 中遇到过类似的文件写入权限问题?
[2] - https://github.com/zaproxy/zaproxy/blob/develop/docker/Dockerfile-stable
我有一个 github 操作定义,用于构建 + 测试我的节点项目。
我已将其设置为以这种方式触发:
on:
push:
tags:
- '*'
Run Code Online (Sandbox Code Playgroud)
它有效,但问题是,有时构建失败,我不想在每次失败时发布新版本 + 标签。所以我想我会使用以下方法删除标签:
git push --delete origin v1.0.0
Run Code Online (Sandbox Code Playgroud)
然后简单地再次推动。
这项工作和管道被触发。但是,由于超时时间太短(实际上是从远程接收数据)而导致测试失败 超时为 5000 毫秒,我尝试使用此方法将其更改为 15000 毫秒,大约 8 次提交,即使我没有5000任何地方我的应用程序,它仍然抛出相同的超时错误。
我决定用相同的文件创建一个新版本,由于超时时间足够,错误消失了,这让我意识到它仍在使用旧版本的文件。
我的问题是:
谢谢你。
由于各种原因,我们一直在使用 yarn 来管理我们的包,所以我们不能依赖 package-lock.json 来使用 npm 和 github 操作。
我们无法让 Yarn 作为 github 操作的一部分进行身份验证。我们已经将我们的 repo npmrc 配置为:
@COMPANY:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)
我们将这个动作用于纱线。
这是我们只是尝试安装模块的基本设置——仅此而已。
name: CI
on: [push]
jobs:
build:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: borales/actions-yarn@v2.1.0
with:
auth-token: ${{ secrets.GITHUB_TOKEN }}
registry-url: "https://npm.pkg.github.com"
scope: tlabs
cmd: version
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_REGISTRY_URL: https://npm.pkg.github.com
- name: Create NPMRC
run: |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc
- name: Install
run: |
yarn install --verbose
Run Code Online (Sandbox Code Playgroud)
默认情况下,此操作将尝试运行安装以绕过我在“版本”中提供的基本命令,因此它仅显示纱线版本,仅此而已。
运行 yarn …
github yarnpkg github-actions github-package-registry github-ci
我有一个 GitHub 操作可以评估某些内容,然后使用结果创建状态检查。
setup是评估linting结果也是结果(对所有信息进行不同的状态检查)。这样做是因为默认状态检查只是日志,但如果我创建第二个,我可以使用 Markdown 对其进行格式化。
我遇到的问题是,当对同一提交执行操作时(因为通过更改标题、审阅者等修改了拉取请求),该操作将再次执行,这是有意的,但会创建第二次setup检查,但不会消失。这将累积我所做的修改。
linting相反,旧的状态检查将被新的状态检查取代,所以我对此没有任何问题。
setup一旦完成,有没有办法隐藏支票?或者完全隐藏它?我更愿意在它运行时显示它,但是一旦它完成,它应该隐藏自己以保持 PR 干净。
我想通过GitHub API使用 GitHub Actions 一次删除多个 PR/问题评论。
有没有办法做到这一点而不像下图那样多次显示删除消息?
例如,我认为可能有一种方法可以删除多个问题/拉取请求审查评论,其中一个请求显示一条消息,例如<user> deleted n comments from <users whose comments have been deleted>?
目前,我正在循环中使用以下 curl 命令删除消息:
echo "$ids" | while read -r id; do
curl -X "DELETE" -s -H "authorization: token $GITHUB_TOKEN" -H "User-Agent: Actions-<username>/<reponame>" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/<username>/<reponame>/issues/<issue number>/comments/$id"
done
Run Code Online (Sandbox Code Playgroud)
如果是拉取请求,我使用pullswith 而不是issues。
我还认为有一个速率限制可以防止在如此短的时间内删除那么多命令。
[背景]
我想创建一个可以一次清除多条消息的命令。/clear 5例如,如果有人输入,则将删除最新的 5 条消息。
continuous-integration github github-api github-actions building-github-actions
github-actions ×10
github ×8
yarnpkg ×2
firebase ×1
git ×1
git-tag ×1
github-api ×1
github-ci ×1
node.js ×1
npm ×1
octokit ×1
octokit-js ×1
powershell ×1
pull-request ×1