Github क्रियाएँ: स्वरूपित कमांड आउटपुट के लिए वातावरण चर सेट करना
मैं अपने 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" चरण से आउटपुट के समान है।
क्या कोई तरीका है जो मैं पर्यावरण चर को स्टोर कर सकता हूं जैसे कि स्वरूपण संरक्षित है?
जवाब
इसी तरह की समस्या थी जब रिलीज बॉडी के रूप में फाइल कंटेंट का उपयोग करने की कोशिश की गई थी, जिसे गीथहब पर टोबियासुफ द्वारा प्रदान की गई चाल से हल किया गया था :
- 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
बैश मैजिक यह सुनिश्चित करेगा कि एवी पैरामीटर को एक्शन पैरामीटर के रूप में प्रयोग करने योग्य बनाने के लिए नईलाइनों को ठीक से संग्रहित किया जाए।