Github क्रियाएँ: स्वरूपित कमांड आउटपुट के लिए वातावरण चर सेट करना

Aug 18 2020

मैं अपने README को एक कमांड लाइन प्रोग्राम के हेल्प टेक्स्ट के साथ जीथब एक्शन के साथ अपडेट करने की कोशिश कर रहा हूं। मुझे एक स्क्रिप्ट मिली है, main.js जो निम्न आउटपुट का उत्पादन करता है:

>> node main.js -h
Generate README from template

Main options

  -i, --input-file-name string
  -o, --output-file-name string
  -k, --keys string[]
  -v, --values string[]
  -h, --help

अब, मैं अपने गितुब एक्शन में एक पर्यावरण चर सेट करने का प्रयास करता हूं, लेकिन जब मैं इसे प्रिंट करता हूं तो मैं नईलाइन्स खो देता हूं। यहाँ मेरा .github / वर्कफ़्लोज़ / main.yml है:

name: Test Action

on: [push]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Setup Node
      uses: actions/setup-node@v1
      with:
        node-version: 12.x
    - name: Get Help Text
      run: |
        echo ::set-env name=HELP_TEXT::$(node main.js -h) - name: Print HELP_TEXT run: | echo "$HELP_TEXT"
    - name: Regenerate README.md
      uses: ./
      with:
        key: help
        value: ${{ env.HELP_TEXT }}

"Print HELP_TEXT" स्टेप निम्न आउटपुट (newlines की नोट हानि) उत्पन्न करता है:

Generate README from template Main options -i, --input-file-name string -o, --output-file-name string -k, --keys string[] -v, --values string[] -h, --help

ध्यान दें कि testनौकरी में अंतिम चरण कोड चल रहा है जो मेरे README की सामग्री को अपडेट करता है; इनपुट यह देखता है कि "Print HELP_TEXT" चरण से आउटपुट के समान है।

क्या कोई तरीका है जो मैं पर्यावरण चर को स्टोर कर सकता हूं जैसे कि स्वरूपण संरक्षित है?

जवाब

1 Samira Aug 18 2020 at 19:52

इसी तरह की समस्या थी जब रिलीज बॉडी के रूप में फाइल कंटेंट का उपयोग करने की कोशिश की गई थी, जिसे गीथहब पर टोबियासुफ द्वारा प्रदान की गई चाल से हल किया गया था :

- run:   |
         body=$(cat NEWS.md) body="${body//'%'/'%25'}"
         body="${body//$'\n'/'%0A'}"
         body="${body//$'\r'/'%0D'}"
         echo "::set-env name=MOD_RELEASE_BODY::$body"
  shell: bash

बैश मैजिक यह सुनिश्चित करेगा कि एवी पैरामीटर को एक्शन पैरामीटर के रूप में प्रयोग करने योग्य बनाने के लिए नईलाइनों को ठीक से संग्रहित किया जाए।