检查 Github 操作上的环境变量是否为空作为步骤条件的最好方法是什么?我尝试过这种简单的方法,但似乎不起作用。
例如:
name: SimpleWorkflow
on:
push:
env:
MULTI_LINE_ARG: |
ARG1: value
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Fetching Local Repository
uses: actions/checkout@master
- name: run step if multiline not null
if: ${{env.MULTI_LINE_ARG}} != ""
run: echo multiline not null
Run Code Online (Sandbox Code Playgroud)
无论我如何尝试,我都无法正确检查 env 是否为空。
当拉取请求的基础分支推送了新代码时,是否可以触发 Github Actions 工作流程?
举例说明:拉取请求分支是feature1,基础是development,那么当PR打开后开发分支用新代码更新时,是否可以触发feature1分支PR上的工作流程?
我想了解 Github Checks API,以便我可以使用它们来检索数据。在以下 Github 文档https://docs.github.com/en/rest/guides/getting-started-with-the-checks-api上,我能够得出检查运行与更改的 sha 相关联,并且在每个创建分支检查套件上的提交。检查 API 有助于获取所有这些信息。但我希望更清楚地了解其中三个的差异。谁能用简单的例子和术语解释这三个术语?
手动运行 github 操作时,我可以选择针对哪个分支运行它。对于某些行动来说,这似乎是一个坏主意。特别是按照以下方式进行的操作DeployToProduction- 我只希望它针对分支运行main。
有什么方法可以限制它只运行main- 同时仍然手动触发操作?
我的手动触发操作的示例可能如下所示:
---
name: DeployToStaging
on:
workflow_dispatch:
jobs:
...
Run Code Online (Sandbox Code Playgroud) 在设置 GitHub 操作来构建和部署应用程序时,我遇到了以下问题。
我想在以下条件下部署我的网络应用程序。然而,wheneverdeploy-api和deploy-syncskipdeploy-web也会被跳过。我认为我的 if 条件会捕获这种情况并仍然运行,deploy-web但事实并非如此。感觉就像我错过了一些明显但无法识别的东西。
deploy-web:
name: Deploy Web
runs-on: ubuntu-latest
needs: [build-and-publish-web, deploy-api, deploy-sync]
if: |
needs.build-and-publish-web.result == 'success' &&
(needs.deploy-api.result == 'success' || needs.deploy-api.result == 'skipped') &&
(needs.deploy-sync.result == 'success' || needs.deploy-sync.result == 'skipped')
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行 GitHub 操作以在临时服务器上的 AWS 上进行数据库迁移。
name: db migration for stg.
on:
push:
branches:
- staging
paths:
- api/db/migrate/**
jobs:
migration:
name: DB Migration
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-to-assume: ${{ secrets.AWS_ASSUME_ROLE_ARN_STG }}
role-duration-seconds: 1200
aws-region: ap-northeast-1
- uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7.2'
- name: ssh configure
env:
SSH_SECRET_KEY: ${{ secrets.SSH_SECRET_KEY }}
run: |
mkdir -p ~/.ssh && touch ~/.ssh/config
echo 'host i-* mi-*' …Run Code Online (Sandbox Code Playgroud) 这个问题指的是:https : //github.com/features/actions
我已经编写了一个 GitHub 操作来构建我的代码并创建一个生产包。我希望通过将更改提交到 origin/master 来将其包含在我的存储库中。这似乎是 GitHub 操作的一个明显功能,但我在任何地方都找不到。如何使用 GitHub 操作提交更改并推送它们?
我正在尝试使用 GitHub 操作为 Node.js 项目运行构建。作为 的一部分npm install,我需要直接从私有 GitHub 存储库(而不是来自 GPR!)安装 npm 模块。
在package.json我有:
"dependencies": {
...
"my-module": "github:<org>/<my-module>#master",
...
},
Run Code Online (Sandbox Code Playgroud)
但是,在运行时npm install,我得到:
npm 错误!git@github.com:权限被拒绝(公钥)。npm 错误!致命:无法从远程存储库读取。
存储库是我自己组织的一部分,它在本地(即从我的机器)工作。我怎样才能让这个运行?
我已经尝试设置NODE_AUTH_TOKEN环境变量,但没有任何区别。尽管您经常发现此建议,但它似乎只针对 GPR。我想避免的是必须将令牌硬编码到package.json文件中。对此有何想法?
我正在尝试use_github_action_check_standard()从usethisR 包运行命令,以在 GitHub Actions 上的每次推送中检查我的包。
该测试在 Windows 和 MacOS 上运行没有问题,但对于这两个 Linux 版本,我的工作流程代码甚至在到达包代码之前就失败了。
\n当它尝试安装系统依赖项时失败,它给了我错误##[error]Process completed with exit code 1。
当我查看原始日志(如下)时,我注意到这一行:\n Cache not found for input keys: Linux-287c850eb370edd647ed85b6fac18cbaee02effa7d01b981304dce84a452b22c-1-, Linux--1-.\n但是我担心我不理解该错误。另外,我不认为是这样,因为密钥已经出现在上面的组中(注意 ),##[endgroup]但错误仅出现在下一组中(如屏幕截图所示)。
有任何想法吗?非常感谢!
\n我还在下面发布了我的整个工作流程代码。
\n2020-08-12T22:21:55.5243116Z ##[group]Run install.packages(\'remotes\')\n2020-08-12T22:21:55.5243360Z [36;1minstall.packages(\'remotes\')[0m\n2020-08-12T22:21:55.5243487Z [36;1msaveRDS(remotes::dev_package_deps(dependencies = TRUE), "../.github/depends.Rds", version = 2)[0m\n2020-08-12T22:21:55.5243834Z [36;1mwriteLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), "../.github/R-version")[0m\n2020-08-12T22:21:55.5250702Z shell: /usr/local/bin/Rscript {0}\n2020-08-12T22:21:55.5251247Z env:\n2020-08-12T22:21:55.5251370Z R_REMOTES_NO_ERRORS_FROM_WARNINGS: true\n2020-08-12T22:21:55.5251571Z RSPM: https://packagemanager.rstudio.com/cran/__linux__/focal/latest\n2020-08-12T22:21:55.5251726Z R_LIBS_USER: /home/runner/work/_temp/Library\n2020-08-12T22:21:55.5251838Z TZ: UTC\n2020-08-12T22:21:55.5251944Z NOT_CRAN: …Run Code Online (Sandbox Code Playgroud) 使用 GitHub Actions,在使用 Rust 的cargo.
我怀疑我忘记了以下代码中的某些内容,这里可能有什么问题?
编辑:如果您想查看的话,这是日志!
name: Rust
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Cargo Cache
uses: actions/cache@v1
with:
path: ~/.cargo
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
${{ runner.os }}-cargo
- name: Cargo Target Cache
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×4
github-api ×1
linux ×1
node.js ×1
npm ×1
pull-request ×1
r ×1
r-usethis ×1
rust ×1