変更をプッシュするGithubアクションの使用


私たちはGitHub Actions 新しいコミットをプッシュするたびに、新しい変更が検出されます.
私は最近更新を自動化するためにこれをしなければならなかったREADME.md リポジトリファイルのリストを新しいプッシュが検出されたたびに.Githubワークフローが見つかりますhere .
ここでは、他に役立つかもしれない学習です.

ファイル内容をクリアするためのbashの使用


cat /dev/null > README.md
/dev/null この空のコンテンツでファイルをオーバーライドできるように、出力がないLinuxの擬似ファイルです.

bashを使用して新しい行で文字列をエコーする


echo -e '# Today I Learned\n' > README.md
-e はバックスラッシュをエスケープする必要があります.これにより、新しい行を印刷できます\n ) ファイルに出力するとき.

bashを使用してファイルの最初の行を読み込む


head -n 1 $filename

bashを使用して文字列から文字を削除する


echo '# Title' | sed 's/# //'
sed が短いStream EDitor そして、その一般的な用途の1つはパターン交換です.上記は削除する# 文字列から(空の文字列で置き換えます).

bashを使って文字列をファイルに追加する


echo 'My string' >> README.md
The >> 演算子はファイルを追加する(または存在しない場合はファイルを作成します).

変更をリポジトリにプッシュするGithubアクションの使用


actions/checkout リポジトリをチェックアウトすることができます.また、これを使用することができますpush changes back .
on: push
jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: |
          # Clear README.md
          cat /dev/null > README.md

          # Add Title
          echo -e '# Today I Learned\n' > README.md

          # Loop through all TILs and add to README.md
          dir=./learnings
          for filename in "$dir"/*
          do
            title=$(head -n 1 $filename | sed 's/# //')
            echo "- [$title](https://github.com/petermekhaeil/til/blob/master/$filename)" >> README.md
          done

          # Push changes
          git config user.name github-actions
          git config user.email [email protected]
          git add README.md
          git commit -m "Update README.md"
          git push