标签: github-actions

使用 GitHub 操作创建版本失败并显示 HTTP 403

我得到了这个工作流程:

\n
name: Build and Release\n\non:\n  push:\n    tags:\n      - "v*.*.*"\n\npermissions:\n  contents: write\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n\n      - name: Install PHP\n        uses: shivammathur/setup-php@v2\n        with:\n          php-version: \'8.2\'\n          extensions: mbstring, zip\n\n      - name: Install PHP dependencies\n        run: composer install --no-interaction --prefer-dist\n\n      - name: Use Node.js 16.13.0\n        uses: actions/setup-node@v2\n        with:\n          node-version: 16.13.0\n\n      - name: Install required npm version\n        run: npm -g install npm@8.5.5\n\n      - name: Install npm dependencies\n        run: npm ci\n\n      - name: Build assets\n        run: npm run …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github continuous-deployment github-actions

6
推荐指数
1
解决办法
1991
查看次数

如何让 GitHub Actions 安全地访问从分叉创建的 PR 的 Secrets?

我有一个运行端到端测试的公共存储库。这些测试需要存储在 GitHub 中的机密。

相应的工作流程yaml文件有如下pull_request条目:

on:
  pull_request:
  ....
Run Code Online (Sandbox Code Playgroud)

问题:如果我(所有者)自己创建拉取请求,工作流程将正确运行并访问机密。如果有人从分叉创建 PR,GitHub 会要求我批准运行,但是一旦我批准,工作流程将看不到这些秘密的值,并且测试将失败。

如果我更改pull_requestpull_request_target,它将正确访问秘密。然而,这样,在运行工作流程之前它不会征求我的批准(因此秘密很容易泄露)。

pull_request_target:
  branches:
    - main
Run Code Online (Sandbox Code Playgroud)

问题:当从分叉上运行 PR 时,如何使 GitHub 操作访问机密,同时仍需要批准运行?

continuous-integration github github-actions github-secret cicd

6
推荐指数
1
解决办法
706
查看次数

如何使用GitHub Actions对构建工件进行版本控制?

我的用例是我希望每个构建/运行的工件都有一个唯一的版本号。在使用诸如CircleCI,Travis等当前工具的情况下,有可用的内部版本号,基本上它是一个总会增加的计数器。因此,我可以创建类似的版本字符串0.1.0-27。即使对于相同的提交,此计数器也会每次增加。

如何使用GitHub Actions做类似的事情?Github操作仅提供GITHUB_SHA和GITHUB_REF。

versioning automation github continuous-delivery github-actions

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

如何在github操作中使用计算属性

我正在尝试在新的github action yaml格式(新)中重建ci-cd,问题是我似乎无法在一个步骤中将计算值用作参数。

我尝试了以下

      - name: Download Cache
        uses: ./.github/actions/cache
        with:
          entrypoint: restore_cache
          args: --bucket=gs://[bucket secret] --key=node-modules-cache-$(checksum package.json)-node-12.7.0
Run Code Online (Sandbox Code Playgroud)

但是,“ $(checksum package.json)”作为参数的一部分无效。请不要与命令校验和存在(容器中确实存在)无关。

我正在尝试在Google Cloud build中复制这种设置

  - name: gcr.io/$PROJECT_ID/restore_cache
    id: restore_cache_node
    args:
      - '--bucket=gs://${_CACHE_BUCKET}'
      - '--key=node-modules-cache-$(checksum package.json)-node-${_NODE_VERSION}'
Run Code Online (Sandbox Code Playgroud)

我希望能够以与其他ci-cd解决方案类似的方式使用计算参数。

有没有办法做到这一点,我很想念?也许能够在docker容器中使用'run:'来运行一些命令。

bash yaml github-actions

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

GitHub Actions: how to build a pull request as if it were merged?

我对GitHub Actions感到非常兴奋。

我现在使用Travis-CI和AppVeyor,它们具有“ PR”(拉请求)构建,可以构建代码,就像合并了拉请求一样。

我想使用GitHub Actions进行持续集成,但是GitHub Actions似乎仅支持构建推送的提交,而不是合并的结果。如何达到我想要的效果?

github-actions

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

Github动作:缓存回购加快Maven构建

每次触发我的构建工作流程时,都会下载Maven依赖项。

Travis CI提供了一种缓存Maven存储库的方法。Github操作是否提供允许缓存Maven存储库的类似功能?

maven-3 github-actions

5
推荐指数
4
解决办法
340
查看次数

如何在 GitHub Actions CI/CD 中构建 Flutter

我正在尝试使用 GitHub Actions 来构建我的 Flutter 应用程序,但我不知道要选择哪个容器映像。

是否有可用于 Flutter 的可信容器映像?

我需要进行哪些调整才能在构建步骤中使用 Flutter SDK?

Run flutter pub get


/__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: 1: /__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: flutter: not found
##[error]Process completed with exit code 127.
Run Code Online (Sandbox Code Playgroud)

我修改了dart.yml由 GitHub Actions 生成的文件,如下所示:

name: Dart CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  google/dart:latest

    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: flutter pub get
    - name: Run tests
      run: flutter test
Run Code Online (Sandbox Code Playgroud)

flutter github-actions

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

Github Actions,如何在工作步骤之间共享计算值?

Github Actions是否有DRY方式在多个作业步骤中计算和共享值?

在下面的工作流程yml文件中,回显$ {GITHUB_REF} | cut -d'/'-f3`-$ {GITHUB_SHA}会分多个步骤重复。

name: Test, Build and Deploy
on:
  push:
    branches:
      - master
jobs:
  build_and_push:
    name: Build and Push
    runs-on: ubuntu-latest
    steps:
      - name: Docker Build
        uses: "actions/docker/cli@master"
        with:
          args: build . --file Dockerfile -t cflynnus/blog:`echo ${GITHUB_REF} | cut -d'/' -f3`-${GITHUB_SHA}
      - name: Docker Tag Latest
        uses: "actions/docker/cli@master"
        with:
          args: tag cflynnus/blog:`echo ${GITHUB_REF} | cut -d'/' -f3`-${GITHUB_SHA} cflynnus/blog:latest
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

通过存储库调度事件触发时,如何在工作流中指定 event_type

我正在尝试设置要通过 Github Actions 的“存储库调度事件”触发的工作流,如此此处指定的那样。作为 API 请求的输入,它指定我需要包含一个事件类型,作为自定义 webhook 事件名称。

但是,我也希望能够在我的工作流程中使用此事件类型,以便我可以有多个由该repository_dispatch选项触发的工作流程,每个工作流程由其自己的事件类型触发。

如关于如何使用 webhook 事件触发器的部分所述,我尝试使用 types 字段,在声明我的工作流应何时触发时(请参阅代码)。然而,这只会导致没有被触发。如果我省略类型字段,工作流会触发。

这是我的工作流程

name: External trigger

on:
  repository_dispatch
    types: external_test

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - name: Say hi
        run: echo "Hi!"
Run Code Online (Sandbox Code Playgroud)

这是 API 请求负载:

{
    "event_type": "external_test"
}
Run Code Online (Sandbox Code Playgroud)

github-api github-actions

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

仅使用GitHub Actions在特定分支上运行作业

我是GitHub Actions的新手,有2个工作-一个运行我的测试,另一个将我的项目部署到服务器上。

显然,我希望测试可以在每个分支上运行,但是部署应该仅在将某些内容推入主程序时进行。

我正在努力寻找一种在特定分支上运行作业的方法。我知道有可能只在特定分支上运行整个工作流程,但这意味着我将拥有一个“测试”工作流程和一个“部署”工作流程。

这听起来像是一个解决方案,但是它们将并行运行。在理想情况下,测试将首先运行,并且只有在测试成功的情况下,部署工作才能开始。使用2个单独的工作流时不是这种情况。

我将如何实现这一目标?是否可以在特定分支上运行作业

github github-actions

5
推荐指数
7
解决办法
406
查看次数