首页 > 解决方案 > Github Action - 使用 SSH 并在同一个工作中发表评论

问题描述

我们有一个如下所示的 Github 操作:

name: Create instance On Opened Pull Request
on:
    pull_request:
        types: [opened, reopened]
        branches: 
            - "**" # matches every branch
    workflow_dispatch:
jobs:
    build:
        name: Build Create Instance Script
        runs-on: ubuntu-latest
        steps:
            - name: Create instance in develop
              id: step1
              uses: appleboy/ssh-action@master
              if: endsWith(github.head_ref, '_nodeploy') == false
              env:
                  DEVELOP_HOST: ${{ secrets.DEVELOP_HOST }}
                  DEVELOP_USERNAME: ${{ secrets.DEVELOP_USERNAME }}
                  DEVELOP_DB_USERNAME: ${{ secrets.DEVELOP_DB_USERNAME }}
                  DEVELOP_DB_PASSWORD: ${{ secrets.DEVELOP_DB_PASSWORD }}
                  DEVELOP_ADMIN_PASSWORD: ${{ secrets.DEVELOP_ADMIN_PASSWORD }}
                  DEVELOP_PASSWORD: ${{ secrets.DEVELOP_PASSWORD }}
              with:
                  host: ${{ secrets.MASTER_HOST }}
                  username: ${{ secrets.MASTER_USERNAME }}
                  password: ${{ secrets.MASTER_PASSWORD }}
                  port: ${{ secrets.MASTER_PORT }}
                  envs: DEVELOP_HOST,DEVELOP_USERNAME,DEVELOP_DB_USERNAME,DEVELOP_DB_PASSWORD,DEVELOP_ADMIN_PASSWORD,DEVELOP_PASSWORD
                  script: |
                      BRANCH=${{ github.head_ref }}
                      BRANCH_CLEAN=${BRANCH//[-._]/}
                      cd scripts/create_instance
                      sh create_instance.sh -b $BRANCH
                      DATABASE=`ssh $DEVELOP_USERNAME@$DEVELOP_HOST "mysql -h 127.0.0.1 -u '$DEVELOP_DB_USERNAME' --password='$DEVELOP_DB_PASSWORD' -N -e 'SELECT schema_name FROM information_schema.schemata where SCHEMA_NAME not in (SELECT TABLE_SCHEMA FROM information_schema.columns Group by TABLE_SCHEMA ) LIMIT 1'"

这工作得很好。

现在,我们要添加一个操作,该操作将在 Pull-Request 中发布一条评论,从而触发该操作。在此注释中,它应该出现一些将由脚本提供的信息。$DATABASE 和 $BRANCH 变量。

像这样的东西:

name: Comment in PR
        runs-on: ubuntu-latest
        needs: build
        steps:
          - name: "Comment in PR"
            uses: actions/github-script@v4
            with:
                script: |
                    github.issues.createComment({
                    issue_number: context.issue.number,
                    owner: context.repo.owner,
                    repo: context.repo.repo,
                    body: 'Thanks for reporting! $DATABASE  $BRANCH_CLEAN',
                    })

但我无法在同一个脚本中使用“uses:appleboy/ssh-action@master”和“uses:actions/github-script@v4”操作,因此可以共享变量。

知道如何做这样的事情吗?

uses: actions/github-script@v4
uses: appleboy/ssh-action@master
with:
     script: |
          echo 'foo'

或者任何关于如何在工作之间共享变量的想法?

谢谢

标签: yamlgithub-actions

解决方案


推荐阅读