我的工作流程具有自动打包和上传步骤,用于打包构建工件并将其上传到工作流程页面。我还手动创建版本。
我想执行以下操作:当我推送到使用给定版本创建的标签时,我想将压缩的工件文件上传到该版本,以便用户可以下载该工件。有关如何执行此操作的任何提示?
这是我的构建 yaml文件。
谢谢!
我使用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
我们有一个基于 Yarn 的 monorepo,最新的 Yarn 版本为 3.2.0。我们正在得到yarn install我们在 GitHub 工作流程上
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\nRun Code Online (Sandbox Code Playgroud)\n当我们团队的大多数成员生成文件时yarn.lock,除了一名团队成员能够生成工作文件外,就会发生这种情况yarn.lock在工作流程中工作的工作之外,就会发生这种情况。奇怪的是,他正在运行与大多数其他开发人员(MBP、Node 16)非常相似的设置。
知道是什么原因造成这种情况以及我们如何找到更多信息吗?
\n在我的 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 数据库?
我已经将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) 我有一个工作流程,我想通过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 操作中从我的存储库运行脚本。我添加了一条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语句以便在控制台中打印输出?
因此,我正在与 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}} …
调用可重用的工作流程:
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):意外值“秘密”
我对创建自定义 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) github-actions ×10
bash ×2
yaml ×2
action ×1
cypress ×1
github ×1
javascript ×1
json ×1
jsonparser ×1
mysql ×1
perl ×1
terraform ×1
terragrunt ×1
windows ×1
yarnpkg-v3 ×1