标签: github-actions

如何将工件上传到现有版本?

我的工作流程具有自动打包和上传步骤,用于打包构建工件并将其上传到工作流程页面。我还手动创建版本。

我想执行以下操作:当我推送到使用给定版本创建的标签时,我想将压缩的工件文件上传到该版本,以便用户可以下载该工件。有关如何执行此操作的任何提示?

这是我的构建 yaml文件。

谢谢!

github-actions

4
推荐指数
1
解决办法
2858
查看次数

如何将 Github 机密作为 json 文件中的值传递?

我使用Cypress.io进行自动化测试并使用Github Actions在 CI/D 中触发它。配置cypress.json文件具有嵌套env值,如下所示:

{
  "baseUrl": "<url-to-login>",
  "env": {
    "roles": {
      "admin": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      },
      "employee": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      },
      "client": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Cypress 无法访问深层环境变量,因此我创建的配置cypress.json如下:

name: Cypress Tests

on: [push]

jobs:
  cypress-run:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        # creates cypress.json file to run Cypress
      - name: Create Cypress config files
        run: |
          echo …
Run Code Online (Sandbox Code Playgroud)

javascript continuous-integration continuous-deployment cypress github-actions

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

GitHub Actions 上的 Yarn 安装失败

我们有一个基于 Yarn 的 monorepo,最新的 Yarn 版本为 3.2.0。我们正在得到yarn install我们在 GitHub 工作流程上

\n
Run yarn install\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Resolution step\nResolution step\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed in 1s\n\n\xe2\x9e\xa4 YN0000: \xe2\x94\x8c Post-resolution validation\nPost-resolution validation\n\xe2\x9e\xa4 YN0000: \xe2\x94\x94 Completed in 0s 226ms\n\xe2\x9e\xa4 YN0000: Failed with errors in 1s 236ms\n
Run Code Online (Sandbox Code Playgroud)\n

当我们团队的大多数成员生成文件时yarn.lock,除了一名团队成员能够生成工作文件外,就会发生这种情况yarn.lock在工作流程中工作的工作之外,就会发生这种情况。奇怪的是,他正在运行与大多数其他开发人员(MBP、Node 16)非常相似的设置。

\n

知道是什么原因造成这种情况以及我们如何找到更多信息吗?

\n

yarn-workspaces github-actions yarnpkg-v3

4
推荐指数
1
解决办法
6899
查看次数

如何使用GitHub Actions连接MySQL数据库?

在我的 GitHub Action 中,我使用 Linux 运行程序(Ubuntu 18.04 和 20.04),并且我想使用 MySQL 数据库。因此,为了进行设置,我运行一个类似的脚本

sudo apt update
sudo apt install mysql-server

sudo mysql < someInstructions.txt
Run Code Online (Sandbox Code Playgroud)

但是,当我在 GitHub Actions 上运行此脚本时,出现以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Run Code Online (Sandbox Code Playgroud)

所以我认为MySQL服务器在安装后没有运行(我已验证)。这很奇怪,因为 Ubuntu 软件包的文档明确指出服务器应该在成功安装后运行。

无论如何,我随后sudo systemctl start mysql.service启动了 MySQL 服务器,但现在收到此错误

'Access denied for user 'root'@'localhost' (using password: NO)'
Run Code Online (Sandbox Code Playgroud)

这真的让我感到困惑,因为sudo mysql应该以 root 身份连接到数据库。我验证了这可以在常规 Ubuntu 安装上运行。

有谁知道如何连接到 GitHub Actions 上的 MySQL 数据库?

mysql github-actions

4
推荐指数
2
解决办法
4150
查看次数

使用 github actions 在 Windows 上测试 Perl

我已经将MooseX::Extended发布到了 CPAN(此处为 github 存储库)。

我正在尝试设置 github 操作,并且 linux 测试运行得很好。但是,(Windows 因以下错误而失败

Configuring true-v1.0.2 ... OK
==> Found dependencies: Function::Parameters
--> Working on Function::Parameters
Fetching http://www.cpan.org/authors/id/M/MA/MAUKE/Function-Parameters-2.001003.tar.gz ... OK
Configuring Function-Parameters-2.001003 ... OK
Building Function-Parameters-2.001003 ... OK
Successfully installed Function-Parameters-2.001003
! Installing true failed. See C:\Users\RUNNER~1\.cpanm\work\1653412748.5640\build.log for details. Retry with --force to force install it.
Building true-v1.0.2 ... FAIL
Run Code Online (Sandbox Code Playgroud)

当然,我无法看到这一点C:\Users\RUNNER~1\.cpanm\work\1653412748.5640\build.log来理解发生了什么。

true模块通过了 Windows 上的 CPAN 测试人员测试,因此我不知道为什么它在 Github Actions 中失败。

我的工作流程如下所示:

Configuring true-v1.0.2 …
Run Code Online (Sandbox Code Playgroud)

windows perl github-actions

4
推荐指数
1
解决办法
410
查看次数

父工作流程完成后,workflow_run 未按预期触发

我有一个工作流程,我想通过workflow_dispatch或执行workflow_run

第一个目前只能手动执行:

name: upload

on:
  workflow_dispatch:
Run Code Online (Sandbox Code Playgroud)

第二个应该能够手动执行,或者在完成时执行upload

name: archive

on:
  workflow_dispatch:
  workflow_run:
    workflows: ["upload"]
    types:
      - completed
Run Code Online (Sandbox Code Playgroud)

手动启动时工作archive流按预期执行,但完成后未启动upload。我不清楚原因。有什么指点吗?

请注意,我已阅读以下内容: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_run

github-actions

4
推荐指数
1
解决办法
2882
查看次数

如何将“ls”命令的输出打印到 github 操作控制台?

我遇到了一个问题,令人惊讶的是我无法在 Github 操作中从我的存储库运行脚本。我添加了一条ls语句来查看是否需要更改为其他目录。但是,ls 的输出不会打印在 Github 操作控制台中。

name: Continuous integration pipeline

on: push

jobs:
  setup:
    name: Run Tests
    runs-on: ubuntu-20.04

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
      - name: Use Node.js 14
        uses: actions/setup-node@v1
        with:
          node-version: "14.x"
      - name: Main
        run: |
          - ls
          - node scripts/setup-npm-version.js
Run Code Online (Sandbox Code Playgroud)

如何修改ls语句以便在控制台中打印输出?

bash github-actions

4
推荐指数
1
解决办法
9164
查看次数

GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

因此,我正在与 Github Actions 合作进行端到端测试。我正在查看的设置是让一项作业检索要测试的 url 列表,而我的第二项作业使用该列表创建一个矩阵并测试所有这些。我的问题是,当我实际运行测试脚本时,必须从命令行完成,因为我使用的是 Playwright。因此我不能直接使用我的矩阵对象;我必须将其输出到 JSON 文件。问题是,当我将 toJSON 输出到我的文件时,它会创建无效的漂亮打印 JSON,这会破坏我的脚本。这是我的代码:

name: <name>

on:
    push:
    workflow_dispatch:

jobs:
    fetch_strategic_urls:
        runs-on: ubuntu-latest
        outputs:
            urls: ${{ steps.req-urls.outputs.urls }}
        steps:
            - name: Request Urls
              id: req-urls
              run: |
                  export RESPONSE=$(
                    curl -X GET -H "Accept: application/json" <api-endpoint>)
                  echo "::set-output name=urls::$RESPONSE"
    run_tests:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                url: ${{needs.fetch_strategic_urls.outputs.urls}}
        needs: fetch_strategic_urls
        steps:
            - ...
            - ...
            - run: |
                  ls
                  echo '${{ toJSON(matrix.url) }}' >> props.json
                  cat props.json
                  npm test
              working-directory: E2E.Tests
Run Code Online (Sandbox Code Playgroud)

无论echo ${{matrix.url}} …

bash json yaml jsonparser github-actions

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

关键字秘密在 github 操作工作流程中不起作用

调用可重用的工作流程:

name: Build only workflow

on:
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: ./.github/workflows/build_job
        with:
          TARGET: lol
        secrets: inherit
Run Code Online (Sandbox Code Playgroud)

./.github/workflows/build_job文件夹包含action.yml文件:

name: Build job

on:
  workflow_call:
    inputs:
      TARGET:
        required: true
        type: string

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: webfactory/ssh-agent@v0.5.4
        with:
            ssh-private-key: ${{secrets.SSH_KEY}}
      - run: echo "hello"
Run Code Online (Sandbox Code Playgroud)

错误:工作流程无效。.github/workflows/build_workflow.yml(行:16,列:9):意外值“秘密”

在此输入图像描述

yaml action github github-actions

4
推荐指数
1
解决办法
2349
查看次数

如何在 Github Actions 中使用 Terragrunt

我对创建自定义 github 操作工作流程还比较陌生。我正在尝试将 Terragrunt 与 Terraform 结合使用,使用 Github Actions 来自动化我的 CICD 工作流程,该操作在 GCP 帐户中配置资源。我已经让 Terraform Github Actions 可以工作,但我现在尝试使用 Terraform 周围的 Terragrunt 将其扩展为模块化方法。我已经在本地测试了我的 terragrunt 脚本,没有任何问题。但我在设置 Terragrunt Github Actions 时遇到问题workflow.yaml

在哪里可以找到usesTerragrunt 的“”存储库来设置 Terragrunt。我搜索了 Hasicorp 的 github 存储库,他们只列出了 Terraform。我只找到了仅适用于 Terragrunt 的 AWS 的旧工作流程。

这是我目前的workflow.yaml

name: 'Terragrunt CI'

on:
  push:
    branches:
    - main
  pull_request:

jobs:
  Terragrunt:
    name: 'Terragrunt'
    runs-on: ubuntu-latest

    # Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest
    defaults:
      run:
        shell: …
Run Code Online (Sandbox Code Playgroud)

terraform terragrunt terraform-provider-gcp github-actions

4
推荐指数
1
解决办法
5524
查看次数