yaml - 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'
或者任何关于如何在工作之间共享变量的想法?
谢谢
解决方案
推荐阅读
- javascript - 如何让 JavsScript 回调等待另一个回调?
- python - 无法通过 Selenium Python 在 booking.com 中找到以查看文本
- c++ - 将 txt 文件保存到与 C++ 中的 cpp 文件相同的文件夹中的文件夹中
- html - 在 html、css 中缩小窗口大小时更改框的顺序
- php - 捕获未知的命名参数错误
- batch-file - 如何启动最小化的批处理文件
- xcode - SwiftUI:如何在水平滚动视图中监听鼠标滚轮滚动事件
- python - 在 Python Dash 中将上传的文本文件转换为 DataFrame
- css - 无法获得整页引导轮播中心并安装
- pytorch - 如何将火炬[N,1]和火炬[1,N]相乘?