如何使用GitHub操作替换表达式中的字符串 [英] How to replace string in expression with GitHub actions

查看:9
本文介绍了如何使用GitHub操作替换表达式中的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的操作,返回的$TOXENV看起来像这样py3.6-django2.2我希望$TOXENV看起来像这样py36-django22有没有什么替代/替换函数可以用来替换.char?

name: CI
on:
  workflow_dispatch:
    branches: [ master, actions ]
jobs:
  demo:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python: [3.6, 3.7, 3.8, 3.9]
        django: ['2.2', '3.0']
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v1
        name: Set up Python ${{ matrix.python }} ${{ matrix.django }}
        with:
          python-version: ${{ matrix.python }}
      - name: python version
        env:
            TOXENV: "py${{ matrix.python }}-django${{ matrix.django }}"
        run:
          echo $TOXENV

推荐答案

我认为在定义TOXENV值时,在步骤的env指令中没有一种简单的方法来实现这一点。env指令接受表达式,但functions that can be used in expressions受到限制,不能替换任意字符。我能找到的最接近的是format(),但不幸的是,这需要在目标字符串中使用带编号的大括号,这不适合您的情况。

相反,或许您可以使用sed,然后add it to the environmentrun指令中设置TOXENV的值:

      - name: python version
        run:
          RAW_TOXENV="py${{ matrix.python }}-django${{ matrix.django }}"
          TOXENV=$(echo $RAW_TOXENV | sed 's/.//')
          echo "TOXENV=$TOXENV" >> $GITHUB_ENV

这篇关于如何使用GitHub操作替换表达式中的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆