标签: github-actions

用于并行运行步骤的 GitHub Action 工作流程

我正在做一个项目。我需要创建一个工作流程来在 iOS 设备上运行集成测试。

场景: 我必须在某个端口运行本地服务器,同时我还运行集成测试。

询问:

  1. 我可以在 Github Actions 中实现这一目标吗?
  2. 如果是的话怎么办?

我将感谢您的帮助。

continuous-integration github-actions github-actions-runners

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

排除 github 操作工作流结果状态中的退出代码

我有一个工作流程,在其中一个步骤中,如果命令以退出代码 1(失败)结束,我想运行下一个命令/作业(修复导致上一个命令失败的问题),但我不希望这样退出代码 1 影响工作流结果状态。
在这种情况下,如果我的退出代码为 1,即使我解决了问题,结果状态也将为failure,但我希望结果状态为success如果第二个命令解决了问题。
这可能吗?

这是我的workflow.yml
\

name: autoblack
on: [pull_request, push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up Python 3.8
        uses: actions/setup-python@v2.2.2
        with:
          python-version: 3.8
      - name: Install Black
        run: pip3 install git+git://github.com/psf/black
        
      - name: Run black --check .
        run: black --check .
  
  reformat:
    runs-on: ubuntu-latest
    needs: [build]
    if: always() && (needs.build.result == 'failure')
    steps:
      - uses: actions/checkout@v2.3.4
      - name: Set up Python 3.8
        uses: actions/setup-python@v2.2.2
        with:
          python-version: 3.8 …
Run Code Online (Sandbox Code Playgroud)

github python-3.x github-actions

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

在工作流程级别环境变量中使用数组?

您可以设置在整个工作流程中可用的环境变量,例如在这篇文章中

(来自链接帖子上的解决方案)

name: Git Pull Request Workflow

on:
  workflow_dispatch:
  pull_request:
    branches:
      - master

env:
  one: 1
  two: zwei
  three: tres

jobs:
  first-job:
    runs-on: ubuntu-latest
    steps:
    - run: |
        echo "${{ env.one }}"
        echo "${{ env.two }}"
        echo "${{ env.three }}"
Run Code Online (Sandbox Code Playgroud)

我有一个使用矩阵策略的工作流程,如果我更改它,我必须在每个作业中更新它。我尝试将其设为全局变量,如下所示:

name: Model Multipliers
on:
  push:
    branches:
      - main
    
env:
  FRUIT: ["Apple", "Pear", "Banana", "Orange"]

jobs:
  ssql-get:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        FRUIT: ${{ env.FRUIT }}
    name: Get data
    steps:
      - name: Checkout cum-rev repo
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:

工作流程无效。.github/workflows/main.yml(行:12,列:9):不需要序列 .github/workflows/main.yml(行:19,列:15):无法识别的命名值:'env'。位于表达式内的位置 1:env.FRUIT …

github-actions

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

如何使用 python 在 GitHub actions 中设置环境变量

我想执行一个 python 脚本来在 GitHub actions 中设置一些环境变量。我想稍后在 GitHub 操作步骤中使用这些环境变量。我的 python 脚本如下所示:

new_ver = get_version_from_commit(commit_msg)
if new_ver:
    if new_ver == "false":
        os.environ["SHOULD_PUSH"] = "0"
        print("Not pushing the image to k8s")
        exit(0)
    else:
        new_tag = app_name + ":" + str(new_ver)
        os.environ["DOCKER_IMAGE_TAG"] = new_tag
        os.environ["SHOULD_PUSH"] = "1"
        print("New tag: " + new_tag)
        exit(0)
Run Code Online (Sandbox Code Playgroud)

执行上述 python 脚本后,我的 GitHub 操作文件的一部分如下所示:

- name: Print env var
  run: echo ${{ env.DOCKER_IMAGE_TAG }}
- name: Build and push
  id: docker_build
  uses: docker/build-push-action@v2
  with:
     push: true
     tags: ${{ secrets.DOCKER_REGISTRY }}/${{ …
Run Code Online (Sandbox Code Playgroud)

python continuous-integration environment-variables github-actions

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

如何在 Github Actions 中设置秘密?

官方样板代码注入npm token如下

NODE_AUTH_TOKEN: ${{secrets.npm_token}}
Run Code Online (Sandbox Code Playgroud)

如何访问和设置此变量?我在 GUI 中找不到它。

github github-actions

14
推荐指数
2
解决办法
4233
查看次数

如何在Github Actions中设置docker用户

以下是我的 Github Actions 的 yml 文件。我想通过 docker 选项 ( ) 将 docker 用户设置为 root --user root。我如何通过 Github Actions 做到这一点?

name: CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: run zap
      uses: docker://sshniro/zap_action
      with:
        args: zap-baseline.py -t https://www.example.com
Run Code Online (Sandbox Code Playgroud)

提前致谢。

github github-actions

14
推荐指数
1
解决办法
9306
查看次数

docker postgres 图像 - 初始化失败,数据库服务不健康

我正在编写一个 Github 操作,我想在其中使用 postgres:11 图像作为服务。但每次尝试启动时,我都会收到错误无法初始化,数据库服务不健康。

Github 操作如下所示:

name: CI

on: [push]

jobs:
  unit_tests:
    name: 'Run unit tests'
    runs-on: ubuntu-latest
    services:
      db:
        image: postgres:11
        ports: ['5432:5432']
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 15
    steps:
      - uses: actions/checkout@v2
      - name: Set up Ruby 2.6
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.6.x
      - name: Build and run tests
        if: success()
        working-directory: backend/ruby
        env:
          DATABASE_URL: postgres://postgres:@localhost:5432/surveymaster_test
          RAILS_ENV: test
        run: |
          gem install bundler
          bundle install --jobs 4 --retry 3
          bundle exec rspec …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails image docker github-actions

14
推荐指数
2
解决办法
2756
查看次数

以 sudo 身份运行 Github Action

我正在使用fastlane Github 操作。我需要以 root 用户身份运行它。

      - name: Deploy
        uses: maierj/fastlane-action@v1.4.0
        with:
          lane: 'alpha'
          subdirectory: 'android-staging'
Run Code Online (Sandbox Code Playgroud)

我怎样才能以 sudo 方式运行它?

github github-actions

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

如何将 bash 命令的输出传递给 Github Action 参数

我有一个工作流程,在推送到 master 之后,我想创建一个版本并将资产上传到它。
我正在使用actions/create-release@v1actions/upload-release-asset@v1

我想将 bash 命令的输出传递给操作参数。但是我发现“$(command)”的语法不起作用。

如何将 bash 命令的输出传递给操作的参数。

例如,我想做这样的事情:

- name: Create Release
  id: create_release
  uses: actions/create-release@v1
  env:
    GITHUB_TOKEN: ${{ secrets.token }}
  with:
    tag_name: $(cat projectFile | grep -Po '(?<=Version>).*(?=</Version>)')
Run Code Online (Sandbox Code Playgroud)

bash github-actions

14
推荐指数
3
解决办法
7666
查看次数

Github 操作 `on` 中没有定义事件触发器

我创建了一个管道,我想每次推送任何分支时触发

有我的default.yml

name: default

on:
  push:
    branches:
    - '*'

jobs:
  build:
    runs-on: macOS-latest
    
    steps:
    - uses: actions/checkout@v1
    - name: CocoaPod Install
      run: pod install
    - name: Force xcode version
      run: sudo xcode-select -switch /Applications/Xcode_11.2.1.app
    - name: Build
      run: ./pipelines.sh build
Run Code Online (Sandbox Code Playgroud)

当我把这个推到github上时,我遇到了这个错误

没有定义事件触发器on

在此输入图像描述

yaml pipeline github github-actions

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