paths: 'frontend/**'在单个存储库中,我想为不同的路径 [和]创建多个触发器,paths: 'backend/**'并为(相同的)构建作业使用不同的参数。以下是两个工作流程。
name: Trigger Jenkins Build [ Build-Portal ]
on:
push:
branches: [ develop ]
paths: 'frontend/**'
types: [closed]
jobs:
build:
name: Triggering Jenkins Build [ Build-Portal ]
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true
steps:
- name: Trigger Build-Portal
uses: actions/trigger-jenkins@develop
with:
...
job_name: "Build-Portal"
job_params: '{"FRESH_BUILD":"True", "UI":"True", "BUILD_BRANCH":"develop", "DEPLOY_DEV":"True"}'
...
Run Code Online (Sandbox Code Playgroud)
和
name: Trigger Jenkins Build [ Build-Portal ]
on:
push:
branches: [ develop ]
paths: 'backend/**'
types: [closed]
jobs:
build:
name: Triggering Jenkins Build …Run Code Online (Sandbox Code Playgroud) 官方 github actions 文档说我可以设置defaults来指定所有作业的默认设置(https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaults)。我想设置它来指定
defaults:
runs-on: ubuntu-latest
strategy:
fail-fast: false # do not cancel 7.2 if 7.3 fails
matrix:
php: ['7.2', '7.3', '7.4']
node-version: ['12.5']
jobs:
...
Run Code Online (Sandbox Code Playgroud)
但这失败了
The workflow is not valid. .github/workflows/code_checks.yaml (Line: 7, Col: 3): Unexpected value 'runs-on',.github/workflows/code_checks.yaml (Line: 8, Col: 3): Unexpected value 'strategy'
Run Code Online (Sandbox Code Playgroud)
我想为我的所有工作指定相同的runs-on内容。strategy为什么不defaults工作?
我正在尝试创建一个工作流程来使用 Github Actions 将 Nuget 包部署到 Github 包存储库。
在这种情况下,
但该操作无法访问秘密
以下是我尝试执行的工作流程
name: Build and Publish
on:
push:
branches:
- gh-packages
jobs:
build_and_publish:
env:
ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Publish Packages to NuGet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@v1
with:
dotnet-version: "3.0.100"
- name: Dump Github Context
env:
CONTEXT: ${{ toJson(github) }}
SECRETS: ${{ toJson(secrets) }}
TOK: ${{ secrets.ACCESS_TOKEN }}
TEST: ${{ secrets.TEST }
run: |
echo $ACCESS_TOKEN
echo $TOK
echo $TEST …Run Code Online (Sandbox Code Playgroud) 我在一个项目中有 3 个不同的工作流程,顶部配置为:
plan_streamline.yml
name: plan
on:
push:
branches:
- main
workflow_dispatch:
...
Run Code Online (Sandbox Code Playgroud)
terrform_import.yml
name: terraform_import
on: workflow_dispatch
...
Run Code Online (Sandbox Code Playgroud)
计划.yml
on:
push:
branches:
- main
workflow_dispatch:
Run Code Online (Sandbox Code Playgroud)
但在 github 操作中,我看不到手动执行任何工作流程的能力,因为我应该看到类似https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-的内容with-workflow_dispatch/
我的工作流程配置有什么问题?
在GitHub Actions中,我们可以直接run | 在文件的-section下编写python代码吗action.yml?我可以用 Python 编写 GitHub Actions 脚本吗?
我正在用 Python 编写一个基于 Docker 的 GitHub 操作。如果在某个时候它失败并且用户选择在启用调试日志记录的情况
下重新运行它,我想在其输出中添加更多详细信息。
所以我的问题是:是否可以从动作内部确定它?也许某些环境变量是自动设置的 - 或者可以在 中手动设置action.yml,或者类似的东西?
github github-actions building-github-actions github-actions-workflows
有没有办法缓存 docker-compose 以便它不会一次又一次地构建?这是我的操作工作流文件:
name: Github Action
on:
push:
branches:
- staging
jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Bootstrap app on Ubuntu
uses: actions/setup-node@v1
with:
node-version: '12'
- name: Install global packages
run: npm install -g yarn prisma
- name: Install project deps
if: steps.cache-yarn.outputs.cache-hit != 'true'
run: yarn
- name: Build docker-compose
run: docker-compose -f docker-compose.test.prisma.yml up --build -d
Run Code Online (Sandbox Code Playgroud)
我想缓存 docker build 步骤。我试过使用if: steps.cache-docker.outputs.cache-hit != 'true' then only build 但没有用。
github docker-compose docker-build github-actions building-github-actions
我会尽量说得清楚。我也询问过相关问题,但没有得到令人信服的答复。
我使用React和firebase进行托管。
另外,我将firebase Web API 密钥存储在我的.env文件中。
我使用 Firebase CLI 设置 Firebase 托管,并选择根据合并或拉取请求自动部署。
安装完成后,在我的工作目录中创建了一个.github包含文件的文件夹。.yml
.github
- workflows
-firebase-hosting-merge.yml
-firebase-hosting-pull-request.yml
Run Code Online (Sandbox Code Playgroud)
因此,现在当我通过运行手动将项目(无需推送到 GitHub)部署到 firebase 时,firebase deploy一切正常,并且我的应用程序已启动并运行。
然而,当我进行更改并将更改推送到 Github 时。触发 Github 操作并开始自动部署到 firebase 进程。构建通过了所有检查。
但是,当我访问托管 URL 时,控制台中出现错误,提示Your API key is invalid, please check you have copied it correctly.
我尝试了一些解决方法,例如将我的 Firebase Web API 密钥存储到 Github 机密中并在我的.yml文件中访问它。
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy …Run Code Online (Sandbox Code Playgroud) environment-variables firebase firebase-hosting github-actions building-github-actions
我正在尝试在 github 工作流程中将一个文件夹的内容复制到另一个文件夹中。我知道工作流程可以创建新的文件夹和文件,因为在 React 项目上调用构建会创建项目中不存在的构建,但它会在使用 mkdir 的后续运行命令中引发错误。
\n错误:\nmkdir: cannot create directory \xe2\x80\x98myNewFolder\xe2\x80\x99: No such file or directory
我的问题是如何实现
\n> mkdir myNewFolder && cp -R myOldFolder myNewFolder\nRun Code Online (Sandbox Code Playgroud)\n或者
\n> cp -R myOldFolder myNewFolder\nRun Code Online (Sandbox Code Playgroud)\n当 repo/workflow 工作目录中不存在 myNewFolder 时工作?
\n编辑(请求的工作流程文件)
\nname: Test Server Build and Deploy (CD)\n\non:\n push:\n branches:\n - cd_branch\n\njobs:\n deploy:\n runs-on: ubuntu-latest\n env: \n MY_APP_ENV_VARIABLE: ${{ secrets.ENV_VARIABLE}}\n\nsteps:\n - uses: actions/checkout@v2\n - uses: actions/setup-node@v2\n with:\n node-version: \'14.15.4\'\n - run: npm cache clean …Run Code Online (Sandbox Code Playgroud) 在我的 github 项目中,每当有东西被推送到 master 分支时,我都会尝试自动创建一个新版本并将其发布到 NPM。
这个想法
我正在使用 github 操作。我的工作流程文件如下所示:
# This workflow will run tests using node and then publish a package to the npm registry when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
name: Node.js Package
on:
#trigger on every commit to the main branch
push:
branches:
- main
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
- run: npm test
publish-npm:
needs: build …Run Code Online (Sandbox Code Playgroud) continuous-integration npm github-actions building-github-actions