标签: building-github-actions

Github Action 在多个 on:push: 路径上触发

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 building-github-actions

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

GitHub Actions 默认设置

官方 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 github-actions building-github-actions

10
推荐指数
1
解决办法
6086
查看次数

为什么该操作无法访问机密?

我正在尝试创建一个工作流程来使用 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)

github github-actions building-github-actions

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

Github 操作手动执行不起作用

我在一个项目中有 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 building-github-actions

9
推荐指数
1
解决办法
5543
查看次数

我们可以直接在action.yml文件的“run |”部分下编写Python代码吗

在GitHub Actions中,我们可以直接run | 在文件的-section下编写python代码吗action.yml?我可以用 Python 编写 GitHub Actions 脚本吗?

python github-actions building-github-actions

9
推荐指数
1
解决办法
4390
查看次数

如何确定 GitHub 操作是否在启用“调试日志记录”的情况下运行

我正在用 Python 编写一个基于 Docker 的 GitHub 操作。如果在某个时候它失败并且用户选择在启用调试日志记录的情况
下重新运行它,我想在其输出中添加更多详细信息。

所以我的问题是:是否可以从动作内部确定它?也许某些环境变量是自动设置的 - 或者可以在 中手动设置action.yml,或者类似的东西?

github github-actions building-github-actions github-actions-workflows

9
推荐指数
1
解决办法
1927
查看次数

如何在 github-action 中缓存 docker-compose 构建

有没有办法缓存 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

8
推荐指数
3
解决办法
4520
查看次数

Github Actions - 如何使我的环境变量(存储在 .env 文件中)在我的工作流程中可用

我会尽量说得清楚。我也询问过相关问题,但没有得到令人信服的答复。
我使用Reactfirebase进行托管。
另外,我将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

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

如何在github工作流程中创建文件夹?

我正在尝试在 github 工作流程中将一个文件夹的内容复制到另一个文件夹中。我知道工作流程可以创建新的文件夹和文件,因为在 React 项目上调用构建会创建项目中不存在的构建,但它会在使用 mkdir 的后续运行命令中引发错误。

\n

错误:\nmkdir: cannot create directory \xe2\x80\x98myNewFolder\xe2\x80\x99: No such file or directory

\n

我的问题是如何实现

\n
> mkdir myNewFolder && cp -R myOldFolder myNewFolder\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
> cp -R myOldFolder myNewFolder\n
Run Code Online (Sandbox Code Playgroud)\n

当 repo/workflow 工作目录中不存在 myNewFolder 时工作?

\n

编辑(请求的工作流程文件)

\n
name: 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)

linux github github-actions building-github-actions

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

Github 操作:NPM 发布 404 未找到

在我的 github 项目中,每当有东西被推送到 master 分支时,我都会尝试自动创建一个新版本并将其发布到 NPM。

这个想法

  1. 创建新的次要版本
  2. 将包发布到 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

7
推荐指数
2
解决办法
4601
查看次数