相关疑难解决方法(0)

在 GitHub 操作中的新作业中使用先前作业的输出

出于(主要)教学原因,我正在尝试在 GitHub 操作中运行此工作流程:

name: "We  Perl"
on:
  issues:
    types: [opened, edited, milestoned]

jobs:
  seasonal_greetings:
    runs-on: windows-latest
    steps:
      - name: Maybe greet
        id: maybe-greet
        env:
          HEY: "Hey you!"
          GREETING: "Merry Xmas to you too!"
          BODY: ${{ github.event.issue.body }}
        run: |
          $output=(perl -e 'print ($ENV{BODY} =~ /Merry/)?$ENV{GREETING}:$ENV{HEY};')
          Write-Output "::set-output name=GREET::$output"
  produce_comment:
    name: Respond to issue
    runs-on: ubuntu-latest
    steps:
      - name: Dump job context
        env:
          JOB_CONTEXT: ${{ jobs.maybe-greet.steps.id }}
        run: echo "$JOB_CONTEXT"
Run Code Online (Sandbox Code Playgroud)

我需要两个不同的作业,因为它们使用不同的上下文(操作系统),但是我需要将第一个作业中的步骤输出到第二个作业。我正在尝试使用此处jobs找到的几种上下文组合,但似乎没有任何方法可以做到这一点。显然,只是一个 YAML 变量的名称,它实际上没有上下文,上下文只包含成功或失败。任何的想法?jobsjob

perl github-actions

44
推荐指数
4
解决办法
2万
查看次数

GitHub Actions:如何根据部署步骤输出动态设置环境 url?

我发现了一个非常好的 GitHub Actions 功能,名为“环境”。使用适当的语法,也可以在 GitHub Action 中创建环境,workflow.yml如下所示:

environment:
  name: test_environment
  url: https://your-apps-url-here.com
Run Code Online (Sandbox Code Playgroud)

正如文档所述,这是创建 GitHub 操作环境的有效方法:

运行引用不存在的环境的工作流将创建具有引用名称的环境。

但在我当前的 GitHub Action 工作流程中,有没有一种方法可以url根据部署步骤输出动态设置?我有一个由 AWS 部署过程产生的动态 URL,我无法预先定义它。

environment github github-actions

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

如何在 GitHub Actions 表达式语法中引用上下文值?

我想在env:GitHub Action的部分设置一个环境变量,并使用GitHub Actions上下文和表达式语法。我试过这个:

jobs:
  build:
    runs-on: ubuntu-latest

    env:
      MYVAR: ${{ format('{0}:{1}', ${{ env.PATH }}, ${{ env.HOME }} ) }}

    steps:
    - name: Check environment
      run: echo $MYVAR
Run Code Online (Sandbox Code Playgroud)

这会导致错误消息:

### ERRORED 10:45:52Z

- Your workflow file was invalid: The pipeline is not valid. .github/workflows/main.yml (Line: 10, Col: 14): Unexpected symbol: '${{'. Located at position 19 within expression: format('{0}:{1}', ${{ env.PATH
Run Code Online (Sandbox Code Playgroud)

此语法:

    env:
      MYVAR: ${{ format('{0}:{1}', {{ env.PATH }}, {{ env.HOME }} ) }}
Run Code Online (Sandbox Code Playgroud)

导致错误:

### …
Run Code Online (Sandbox Code Playgroud)

github-actions

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

如何在github操作中使用计算属性

我正在尝试在新的github action yaml格式(新)中重建ci-cd,问题是我似乎无法在一个步骤中将计算值用作参数。

我尝试了以下

      - name: Download Cache
        uses: ./.github/actions/cache
        with:
          entrypoint: restore_cache
          args: --bucket=gs://[bucket secret] --key=node-modules-cache-$(checksum package.json)-node-12.7.0
Run Code Online (Sandbox Code Playgroud)

但是,“ $(checksum package.json)”作为参数的一部分无效。请不要与命令校验和存在(容器中确实存在)无关。

我正在尝试在Google Cloud build中复制这种设置

  - name: gcr.io/$PROJECT_ID/restore_cache
    id: restore_cache_node
    args:
      - '--bucket=gs://${_CACHE_BUCKET}'
      - '--key=node-modules-cache-$(checksum package.json)-node-${_NODE_VERSION}'
Run Code Online (Sandbox Code Playgroud)

我希望能够以与其他ci-cd解决方案类似的方式使用计算参数。

有没有办法做到这一点,我很想念?也许能够在docker容器中使用'run:'来运行一些命令。

bash yaml github-actions

5
推荐指数
1
解决办法
81
查看次数

如何在 GitHub 操作中将工作目录添加到部署

我最近开始使用 GitHub 操作,所以我想做的是在推送完成后在 firebase 中托管我的 React 项目。我在这个 CI/CD 过程中使用了 GitHub 操作。这是我现在拥有的 main.yml。

name: Build and Deploy
on:
  push:
    branches:
      - master

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Install Dependencies
        working-directory: ./my-app
        run: npm install
      - name: Build
        working-directory: ./my-app
        run: npm run build

  deploy:
    name: Deploy
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master      
      - name: Deploy to Firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy --only hosting
        env:
          FIREBASE_TOKEN: …
Run Code Online (Sandbox Code Playgroud)

github firebase github-actions

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

如何在GitHub Actions中使用bash表达式设置env var?

在GitHub Actions中,我想评估bash表达式,然后将其分配给环境变量-

    - name: Tag image
      env:
        GITHUB_SHA_SHORT: ${{ $(echo $GITHUB_SHA | cut -c 1-6) }}
      ..do other things...
Run Code Online (Sandbox Code Playgroud)

但是,这种幼稚的尝试失败了。根据文档,这似乎不受支持,但是稍微干净的解决方法就可以了。

github-actions

3
推荐指数
2
解决办法
362
查看次数

docker 操作的新位置

我在 docker 上使用这个:

- name: Build container image
  uses: actions/docker/cli@master
  with:
    ///// removed

- name: Docker Login
  uses: actions/docker/login@master
  env:
    ///// removed
Run Code Online (Sandbox Code Playgroud)

然而 github.com/actions/docker 似乎不再存在。

我的构建给出了 404:

无法下载操作“ https://api.github.com/repos/actions/docker/tarball/master ”。错误响应状态代码不表示成功:404(未找到)。

有谁知道新地点吗?

docker github-actions

3
推荐指数
1
解决办法
2197
查看次数

标签 统计

github-actions ×7

github ×2

bash ×1

docker ×1

environment ×1

firebase ×1

perl ×1

yaml ×1