标签: github-actions

找不到 Cypress 测试运行结果

我通过创建了一个新的 Vue 项目npm init vue@latest并选择了 Cypress。

目前还没有测试,我有一个占位符/cypress/e2e/example.cy.ts测试

describe("My First Test", () => {
  it("visits the app root url", () => {
    cy.visit("/");
  });
});
Run Code Online (Sandbox Code Playgroud)

我正在使用 Cypress v11.0.1,并且有一个脚本可以在我的 Github Actions 中运行 cypress 测试

"test:e2e:ci": "start-server-and-test preview :4173 'cypress run --e2e'",
Run Code Online (Sandbox Code Playgroud)

这是我的 Cypress 动作

  - name: Check if e2e tests are passing
    uses: cypress-io/github-action@v4
    with:
      build: npm run build
      start: npm run test:e2e:ci
Run Code Online (Sandbox Code Playgroud)

有时(这种情况很少发生) Github 工作流程会失败

在此输入图像描述

正如您所看到的,测试本身通过了。我可以通过再次运行来修复管道......

有人知道为什么会发生这种情况以及如何避免此错误?

如果您需要更多信息(例如配置文件),请告诉我

vue.js cypress github-actions

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

Buildx 失败:错误:引用“manifest-sha256:xxx”提交失败:响应内容摘要无效:校验和摘要格式无效

我有一个 React 应用程序,我正在尝试为此应用程序设置 ci/cd。

我在 GitHub actions 中遇到这样的错误,并且在“导出到图像”期间遇到此错误

name: "deploy-prod"
on:
  push:
    branches:
      - "configure-ci/cd-pipeline-to-frontend-repo"

env:
  REPOSITORY_NAME: ${{ github.event.repository.name }}
  REACT_APP_BASENAME: "FooApp"

jobs:
  build-backend:
    runs-on: ubuntu-latest
    steps:
      - id: string
        uses: ASzc/change-string-case-action@v1
        with:
          string: ${{ secrets.REGISTRY_HOST }}/${{ github.repository }}:build-${{ github.run_number }}

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v2

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2

      - name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          registry: ${{ secrets.REGISTRY_HOST }}
          username: ${{ secrets.REGISTRY_USERNAME }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

      - name: Build …
Run Code Online (Sandbox Code Playgroud)

pipeline docker-registry github-actions

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

GitHub Actions 未找到缓存

我有一个工作流程,它缓存以下输出:

  • composer install使用哈希值composer.lock
  • npm ci使用哈希值package-lock.json
  • npm run prod使用哈希值public/**/*

因此它们可以在后续运行中重复使用。

问题是,只有 Composer 缓存被命中 - 两个 npm 缓存总是会在 CI 输出中产生一条消息,显示Cache not found for input keys.

npm ci代码为例,缓存的设置以及后续的使用都是通过这两步完成的:

- name: Cache node packages
  id: cache-npm-packages
  uses: actions/cache@v2
  env:
    cache-name: cache-node-packages
  with:
    # npm cache files are stored in `~/.npm` on Linux/macOS
    path: ~/.npm
    key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('package-lock.json') }}

- if: ${{ steps.cache-npm-packages.outputs.cache-hit != 'true' }}
  run: npm ci
Run Code Online (Sandbox Code Playgroud)

但 CI …

caching github npm github-actions

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

如果分支已更新特定目录中的文件,则运行 github 操作

文件结构:

apps
-- app-1
-- app-2
libs
-- lib-1
-- lib-2
Run Code Online (Sandbox Code Playgroud)

我们有一些测试,仅当文件在lib-2. 我尝试过做

on:
  push:
    paths:
      - 'libs/lib-2/**'
Run Code Online (Sandbox Code Playgroud)

但它仅lib-2在提交中推送文件时运行测试,但如果此后推送了其他文件,则它不会运行。想象一下,测试失败了lib-2,然后开发人员已经提交了lib-1下一次提交中的文件,并且测试不会针对之前的更改运行,并且 github 将认为检查成功。

如果某个目录中的文件在分支中发生更改,无论在哪个提交中,是否有办法运行操作?

continuous-integration github github-actions

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

在没有官方操作的情况下使用 docker buildx github 操作缓存

长话短说:

如何手动ACTIONS_RUNTIME_TOKENACTIONS_CACHE_URL在 GitHub 中查找操作?

语境

我正在尝试在 GitHub 操作中的 buildkit 构建过程中缓存 docker 层。

理论上,使用docker/setup-buildx-actiondocker/build-push-actioncrazy-max/ghaction-github-runtime操作很容易。问题是,我不能使用它们(组织政策)。

我的工作流程的相关部分现在是:

$repo_url= "<ECR repo in aws>"
docker buildx create --use --driver=docker-container
docker buildx build --tag "${repo_url}:latest"  --file docker/Dockerfile . --cache-to "type=gha,mode=max" --cache-from type=gha
Run Code Online (Sandbox Code Playgroud)

缓存需要 2 个变量/配置:ACTIONS_RUNTIME_TOKENACTIONS_CACHE_URL。它们将由 来设置ghaction-github-runtime,因此我无法使用。查看代码,似乎从环境中导出了2个变量,但我找不到它们。

我如何在没有其他操作帮助的情况下手动找到它们?

caching docker github-actions docker-buildkit github-actions-artifacts

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

.NET 7 中的 Azure Functions(独立)发布到 Azure,加载了 0 个函数

我正在尝试使用 GitHub Actions 工作流程将带有 .NET 7 的 Azure Function(隔离)部署到 MS Azure。一切似乎运行良好,但由于某种原因,当我将其部署到云时,该功能未加载。当我运行本地主机功能时,一切都很好(在我的机器上工作),但部署后就不行了。

public class DemoFunction
{
    private readonly ILogger _logger;

    public DemoFunction(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<DemoFunction>();
    }

    [Function("DemoFunction")]
    public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req)
    {
        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString("Demo function works!");

        return response;
    }
}
Run Code Online (Sandbox Code Playgroud)

Function App 仅包含一个具有 HTTP 绑定的函数(无需身份验证,允许匿名请求)。我使用 Bicep 部署基础设施,使用 GH Actions 部署 Function App。日志分析显示了这一点: 在此输入图像描述

因此,由于某种原因,它确实找到了该函数,但没有加载它。如果我导航到 Azure 门户中的“功能”边栏选项卡,我看不到任何功能。该项目只是一个 POC 项目,可在https://github.com/nikneem/function-deployment-with-gh-actions上公开托管

有任何想法吗?

.net c# azure azure-functions github-actions

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

尝试在 Github Actions 中为 xcodebuild 存档设置证书和配置文件

我有一个简单的 GH 操作工作流程 yaml,其中包含以下内容:

name: CI

on:
  push:

jobs:
  ci:
    runs-on: macos-latest
    defaults:
      run: 
        shell: bash
        working-directory: working_directory_here

    steps:

      - name: Checkout
        uses: actions/checkout@v3

      - name: Install the Apple certificate and provisioning profile for Xcode
        env:
          BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
          P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
          BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
          KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
        run: |
          # create variables
          CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
          PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
          KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db

          # import certificate and provisioning profile from secrets
          echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
          echo -n "$BUILD_PROVISION_PROFILE_BASE64" | …
Run Code Online (Sandbox Code Playgroud)

xcode github-actions

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

使用 GitHub Actions 创建 NuGet 包

我有一个 ASP.NET Core API 项目的解决方案,其中包含主 API 项目以及其他两个库项目。

我现在想为库项目创建 NuGet 包,以便我可以在其他应用程序中使用它们。

我是否需要将我的库项目分离到它们自己的解决方案中,并将它们签入到 GitHub 上它们自己的单独存储库中,以便通过 GitHub 操作生成它们的 NuGet 包?

目前,API 和库项目位于一个解决方案中,我将它们保存在同一个存储库中。我是否需要将我的项目拆分到它们自己的存储库中,或者我可以从单个存储库仅为我的库项目创建 NuGet 包吗?

github nuget nuget-package .net-standard-2.0 github-actions

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

如何覆盖 GitHub 可重用操作中继承的机密?

我有工作流程 A 和 B,它们都调用工作流程 C。git 存储库中设置了许多秘密。工作流程 C 使用 100 个秘密。我需要以与工作流程 A 和 B 相同的方式传递其中的 99 个。但其中一个是不同的。我可以让工作流 C 继承所有秘密并仅覆盖其中之一吗?类似于: A:

name: Reusable workflow
on:
  workflow_call:
    inputs:
    ...
env:
  SECRET_1: ${{ secrets.SECRET_1 }}
  SECRET_2: ${{ secrets.SECRET_2 }}
  ...
  SECRET_100: ${{ secrets.SECRET_100 }}
jobs:
   ...
Run Code Online (Sandbox Code Playgroud)

A:

name: Workflow A
on: ["workflow_dispatch"]

jobs:
  C:
    uses: ./.github/workflows/C.yaml
  secrets: 
    - inherit
    - SECRET_100: ${{ secrets.SECRET_100_FOR_A }}
jobs:
   ...
Run Code Online (Sandbox Code Playgroud)

乙:

name: Workflow B
on: ["workflow_dispatch"]

jobs:
  C:
    uses: ./.github/workflows/C.yaml
  secrets: 
    - inherit
    - SECRET_100: ${{ secrets.SECRET_100_FOR_B }} …
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

如何将当前日期设置为带有时区的 git 提交消息?

git commit -m "$(date)" -> 显示的是UTC,但是如何获取首选时区?

我想获得首选时区git commit.

git github git-commit github-actions

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