标签: github-actions

Github 操作和徽章显示百分比数据

我已阅读有关创建和添加自定义工作流徽章的方法,该徽章将显示工作流是通过还是失败。但这里有一个问题。是否可以在徽章上输出一些百分比数据以及如何输出这些数据?

github github-actions

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

如何使用 GithubActions 工作流调用 PowerShell 脚本?

我正在打电话.\build.ps1,它似乎挂了:

https://github.com/nblockchain/ZXing.Net.Xamarin/runs/232358091

我需要什么特别的东西吗?在 AzureDevOps 中,这是开箱即用的。

powershell github-actions

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

如何在 GitHub 操作中将工作目录添加到部署

我最近开始使用 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)

github firebase github-actions

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

如何在 Github Action 中使用 yarn 安装私有包?

我目前的工作流程:

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。

我究竟做错了什么?

github npm yarnpkg github-actions

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

AWS 凭证如何在 GitHub Actions 中工作?

在我的单元测试中,我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)

amazon-web-services node.js aws-sdk-nodejs github-actions

5
推荐指数
3
解决办法
5517
查看次数

Github Actions 无法写入文件,权限被拒绝(在 docker 容器内)

我正在使用 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 中遇到过类似的文件写入权限问题?

[1] - https://github.com/sshniro/actions-test-repo/commit/3fb6cfa2c883099f300dba5383fa61c708f2a48f/checks?check_suite_id=312860807

[2] - https://github.com/zaproxy/zaproxy/blob/develop/docker/Dockerfile-stable

github github-actions

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

在推送标签上触发 Github Action,删除标签并再次推送后会触发,但会使用旧版本的代码

我有一个 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任何地方我的应用程序,它仍然抛出相同的超时错误。

我决定用相同的文件创建一个新版本,由于超时时间足够,错误消失了,这让我意识到它仍在使用旧版本的文件。

我的问题是:

  • 这是错误还是功能?
  • 当我的管道失败并在标签上触发时,我有哪些选择?
  • 在使用标签跟踪版本/发布和触发管道时,是否有另一种管理标签的方法?例如,触发带有标签的提交而不是标签创建?如果是,我如何为提交分配标签?我还没有找到答案。

谢谢你。

git github git-tag github-actions

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

在 Github Action 中通过 Yarn 从 Github Package Registry 下载私有模块?发布有效,但安装遇到“401 Unauthorized”

由于各种原因,我们一直在使用 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

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

在拉取请求完成时隐藏 Github 操作

我有一个 GitHub 操作可以评估某些内容,然后使用结果创建状态检查。 setup是评估linting结果也是结果(对所有信息进行不同的状态检查)。这样做是因为默认状态检查只是日志,但如果我创建第二个,我可以使用 Markdown 对其进行格式化。

我遇到的问题是,当对同一提交执行操作时(因为通过更改标题、审阅者等修改了拉取请求),该操作将再次执行,这是有意的,但会创建第二次setup检查,但不会消失。这将累积我所做的修改。

linting相反,旧的状态检查将被新的状态检查取代,所以我对此没有任何问题。

在此处输入图片说明

setup一旦完成,有没有办法隐藏支票?或者完全隐藏它?我更愿意在它运行时显示它,但是一旦它完成,它应该隐藏自己以保持 PR 干净。

github pull-request octokit github-actions octokit-js

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

通过 GitHub API 删除多个问题/PR 评论

我想通过GitHub API使用 GitHub Actions 一次删除多个 PR/问题评论。

有没有办法做到这一点而不像下图那样多次显示删除消息?

删除消息 4 次

例如,我认为可能有一种方法可以删除多个问题/拉取请求审查评论,其中一个请求显示一条消息,例如<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

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