首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Github操作中两个变量的相等性

检查Github操作中两个变量的相等性
EN

Stack Overflow用户
提问于 2022-02-08 17:57:50
回答 1查看 439关注 0票数 0

如果标记是在v被推到分支的情况下启动的,那么就会发布一个版本。问题是:在发布之前,人们可能会忘记使用这个版本。因此,需要检查标记版本与代码中的版本之间的相等性。

代码中的版本可以由poetry version -s获取,然后需要在版本字符串的前面添加一个字母v (请参见下面)

VERSION_CODE = "v""$(poetry version -s)"

git标记的版本可以访问,如下所示

VERSION_TAG = $(git describe --exact-match --tags $(git log -n1 --pretty='%h'))

问题:如何检查VERSION_CODEVERSION_TAG的相等性,以便如果它们的值被分配,管道就会释放?

我现在拥有的代码如下所示。步骤if: VERSION_CODE != VERSION_TAG有一条错误消息,即是一个未识别的命名值:“VERSION_CODE”。位于表达式中的位置1: VERSION_CODE

代码语言:javascript
复制
name: Release By Tag

on:
  push:
    tags:
      - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
  version-check:
    name: check version
    runs-on: ubuntu-latest
    steps:
       
       ... set up environment, ex install poetry 

       - name: try to fail version check
         run: |
           VERSION_CODE = "v""$(poetry version -s)"
           VERSION_TAG = $(git describe --exact-match --tags $(git log -n1 --pretty='%h')
         if: VERSION_CODE != VERSION_TAG
         run: exit 1

       - name: version is correct
         run: echo "version tag is alined"

       ... make a release
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-08 20:42:34

您只能将变量传递到下一步--在执行步骤之前进行if检查,因此无法在发布时访问它。另外,exit 1不是正确的模式,您需要生成变量,传递它们并在接下来的步骤中使用它们。

解决办法之一是:

代码语言:javascript
复制
name: Release By Tag

on:
  push:
    tags:
      - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
  version-check:
    name: check version
    runs-on: ubuntu-latest
    steps:
       
       ... set up environment, ex install poetry 

       - name: try to fail version check
         id: version_info
         run: |
           VERSION_CODE="v""$(poetry version -s)"
           VERSION_TAG=$(git describe --exact-match --tags $(git log -n1 --pretty='%h')
           echo "::set-output name=VERSION_CODE::$VERSION_CODE"
           echo "::set-output name=VERSION_TAG::$VERSION_TAG"

       - name: version is correct
         if: ${{ steps.version_info.outputs.VERSION_CODE == steps.version_info.outputs.VERSION_TAG }}
         run: echo "version tag is alined"

       ... make a release

您还可以检查这些值在第一步中是否匹配,并将布尔值传递到下一步--这取决于您的需要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71038610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档