鉴于我有以下内容:
name: MyWorkFlow
on: push
env:
FOO: bar1
jobs:
myJob:
- run: export FOO=bar2
- run: echo $FOO
Run Code Online (Sandbox Code Playgroud)
输出是“bar1”。无论如何,我可以覆盖这些环境变量吗?
我的用例是,当拉取请求评论中有触发词时触发文档构建。我正在使用pull-request-comment-trigger来了解代码中是否存在触发词。
知道 Action 被触发后,我想在存储库中运行一些命令。所以,我必须为此使用操作/结帐。
我的疑问是,在run命令内部,只有 Shell 命令有效,对吧?如果满足上述条件,我想再做一份工作。
我当前的 Yaml 文件
name: Testing GH Actions
on:
pull_request:
types: [opened]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: khan/pull-request-comment-trigger@master
id: check
with:
trigger: "AppajiC"
reaction: rocket
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- run:
# Generally Anything here runs if below condition satisfies.
# I want to run another job here, which uses actions/checkout@v2 action
if: steps.check.outputs.triggered == 'true'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
有时我们在编写docker文件时会出错。如果 Dockerfile 中有错误,docker 构建将会失败。
有时我们可能会忘记在 Dockerfile 中指定依赖项。让我们举个例子。
假设我有一个 python 脚本,可以截取任何网页(提供了 URL)的屏幕截图。
pytest 将在我的本地开发环境中通过。RUN我忘记在 dockerfile 中指定将安装 chromium 和 chrome 驱动程序的命令。因此在容器内运行测试将会失败。(尽管docker build会成功。)我想自动化构建 docker 镜像并在容器中运行测试的任务。
在本地机器上,我可以运行docker build -t myproj .构建。
为了测试,我可以运行docker run -it myproj pytest(如果我忘记添加RUN安装 chromium 和 chromedriver,那么我的 pytest 将在容器内失败)
我希望我能够解释我的目的。
通常,在 github actions 中,python 源代码可以在 ubuntu、mac、windows 等上运行。除了不同的操作系统之外,我还想构建和测试我的 dockerfile。
我正在尝试替换 GITHUB 操作步骤中变量中的字符
- name: Set Up DB Name
run: |
DB_NAME="${GITHUB_REF_SLUG/-/_}"
echo $DB_NAME
Run Code Online (Sandbox Code Playgroud)
我收到了错误的请求错误
我究竟做错了什么?
我正在寻找一种在 github 上隐藏分支的方法,有可能吗?例如:我是存储库所有者,我想要三个贡献者,他们不能在主分支上合并,但他们可以打开 PR 并且他们看不到其他分支,只能看到他们自己的分支和主分支。我需要这个到一个特定的存储库。
有谁知道如何做到这一点?Github 操作或类似的东西?
我知道这可能会引起争议,但是......
谢谢你!:D
当我使用 GitHub Actions 创建新工作流程时,我有以下繁琐的工作流程:
.github/workflows/ci.ymlgit commit --amend -mhopegit push -f还有更好的选择吗?
我正在尝试使用 CICD 原则建立一个 React 网站。我可以在本地运行它,使用“npm run build”获取构建文件夹,并且当我手动将文件推送到 S3 时,网站运行良好。但是,当我尝试通过 github 操作运行构建和部署时,upload-artifacts 步骤会给出以下警告:“警告:在提供的路径中找不到文件:构建”。不会上传任何工件。” 显然,部署作业会失败,因为它找不到任何要下载的工件。究竟为什么会发生这种情况?自从在构建后运行 ls 将其列为当前工作目录中的文件夹之一以来,肯定会创建构建文件夹。
name: frontend_actions
on:
workflow_dispatch:
push:
paths:
- 'frontend/'
- '.github/workflows/frontend_actions.yml'
branches:
- master
defaults:
run:
working-directory: frontend
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- name: npm install
run: npm install
- name: npm build
run: npm run build
env:
CI: false
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: build
path: build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: …Run Code Online (Sandbox Code Playgroud) 我在 Github 存储库中有一个应用程序代码,我想自定义管道的某些阶段,并希望编写自己的自定义操作(在私有存储库中),因为这些自定义操作必须放置在操作所在的存储库中要运行我可以在单个存储库中保存多个操作吗?
还有什么方法可以在组织内的私人回购中使用这些回购?
以下是我的简单 github 工作流程。它的目的是打印环境变量。
name: verify
on:
workflow_dispatch:
jobs:
read_env_variables:
environment: build
runs-on: [ self-hosted, onprem_dae, docker ]
steps:
- name: cat on branch file
run: |
echo ${{ env.SOME_VARIABLE }}
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为“build”的环境。在此环境中,我有一个名为SOME_VARIABLE设置为xyz 的环境变量。
当工作流程被触发时,我期望回显值xyz但实际值是“”。是不是少了点什么?
我有一个工作 GitHub 工作流程,它使用矩阵并构建所有定义的产品。
name: Build
on:
push:
tags:
- "*"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
product: [yellow, green, black]
limits: [10,20,50,100]
steps:
- uses: actions/checkout@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
...
Run Code Online (Sandbox Code Playgroud)
现在希望能够手动触发构建过程并使用输入值仅构建我想要的产品。我可以在 Github 界面上输入值,但看起来使用它们的语法不正确。
构建:.github#L1 评估作业“构建”的“策略”时出错。.github/workflows/build.yml(行:27,列:18):意外值“黄色”,.github/workflows/build.yml(行:28,列:17):意外值“50”
此外,如何将所有预定义产品的先前自动构建与通过一个工作流程内的输入手动完成的产品结合起来?
name: Build
on:
push:
tags:
- "*"
workflow_dispatch:
inputs:
product:
description: "Product"
default: "yellow"
limit:
description: "Limit"
default: "50"
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
product: ${{ github.event.inputs.product}}
limits: ${{ github.event.inputs.limit }}
# product: [yellow, green, black]
# limits: [10,20,50,100]
steps: …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×4
cicd ×1
docker ×1
environment ×1
git ×1
github-api ×1
npm ×1
python ×1
replace ×1
testing ×1