Github Eylemleri: Ortam değişkenini biçimlendirilmiş komut çıktısına ayarlama
README'mi bir Github Eylemi ile bir komut satırı programının yardım metniyle güncellemeye çalışıyorum. Aşağıdaki çıktıyı üreten bir komut dosyası olan main.js var:
>> 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
Şimdi, Github eylemimde bir ortam değişkeni ayarlamaya çalışıyorum, ancak yeni satırları yazdırdığımda kaybediyorum. İşte benim .github / iş akışlarım / 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 }}
"HELP_TEXT Yazdır" adımı aşağıdaki çıktıyı üretir (yeni satırların kaybına dikkat edin):
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
İşteki son adımın BENİOKU'nun içeriğini güncelleyen kodu çalıştırdığına dikkat edin; gördüğü giriş, "HELP_TEXT Yazdır" adımının çıktısı ile aynıdır.
Biçimlendirmeyi koruyacak şekilde bir ortam değişkenini saklayabileceğim bir yol var mı?
Yanıtlar
GitHub'da tobiasfaust tarafından sağlanan hile ile çözülen sürüm gövdesi olarak dosya içeriğini kullanmaya çalışırken benzer bir sorun yaşandı :
- 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
Bash magick, yeni satırların düzgün bir şekilde saklanmasını sağlayarak env değişkenini eylem parametresi olarak kullanılabilir hale getirir.