GitHub Action
replacer-action
v1
Latest version
Auto-update README.md file according to the source code. When to use this action?
- CLI Help Menu: Inject the help menu of your CLI to the README.md file, see Help Menu
- Test Results: Share test results in your README.md file, see bargs test suite
- API Response: Keep your README.md up-to-date with the response of your APIs
Tested in unfor19/replacer-action-test
- Uses perl to manipulate the destination file -
README.md
- Executes git diff to check if there are any changes in
README.md
- If there are no changes, exits successfully
- If there are changes, executes git commit followed by git push
- Insert a start tag and stop tag to a text file, for example
<!-- replacer_start -->
<div>User name will appear here instead</div>
<!-- replacer_end -->
- Prepare a file with the text that you want to inject
$ echo -e '<div>This is the incoming text block</div>\n<div>It worked!</div>' > test_results.log
name: Update README.md
on:
push:
branches: [master]
# IMPORTANT: Avoids endless loop
paths-ignore:
- "README.md"
jobs:
update-readme:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Prepare source file
run: |
echo "<div>$(whoami)</div>" > test_results.log
- uses: unfor19/replacer-action@v1
name: Update README.md file
with:
src-file-path: "test_results.log"
dst-file-path: "README.md"
start-value: "<!-- replacer_start -->"
end-value: "<!-- replacer_end -->"
git-user-name: "replacer-action"
git-user-email: "replacer-action@meirg.co.il"
git-commit-msg: "Updated by GitHub Actions"
git-skip-commit: false
git-skip-push: false
create-backup: true
./entrypoint.sh --help
Usage: bash entrypoint.sh --help
--src_file_path | -sf [ENV_VAR] Relative path to source file that will be injected
--dst_file_path | -df [README.md] Relative path to destination file
--start_value | -sv [<!-- replacer_start -->] From where to start
--end_value | -ev [<!-- replacer_end -->] Where to stop
--git_user_name | -gu [replacer-action] Actor user name
--git_user_email | -ge [replacer-action.co.il] Actor email address
--git_commit_msg | -gm [Updated by GitHub Actions] Git commit message
--git_skip_commit | -gsc [false] Skip Git commit
--git_skip_push | -gsp [false] Skip Git push
--create_backup | -cb [true] Create a backup file
NOTE: the code block above ☝️ was automatically generated with replacer! See the raw version of this README.md file
Expand/Collapse
kind: pipeline
type: docker
name: testing-drone
steps:
- name: Prepare source file
image: alpine:3.12
cmd: |
echo "<div>$(whoami)</div>" > test_results.log
- name: Dry run
image: unfor19/replacer-action:latest
settings:
src_file_path: "test_results.log"
dst_file_path: "README.test.md"
start_value: "<!-- replacer_start -->"
end_value: "<!-- replacer_end -->"
git_user_name: "Drone"
git_user_email: "drone@meirg.co.il"
git_commit_msg: "Updated by Drone.io"
git_skip_commit: false
git_skip_push: false
create_backup: true
Report issues/questions/feature requests on the Issues section.
Pull requests are welcome! These are the steps:
- Fork this repo
- Create your feature branch from master (
git checkout -b my-new-feature
) - Build development image
docker build -t "replacer-action:dev" --target "dev" .
- Run development image
docker run --rm -it -v "$PWD":"/code" --workdir "/code" "replacer-action:dev"
- Add the code of your new feature
- Run tests on your code, feel free to add more tests
# in container ./tests/test.sh ... # All good? Move on to the next step
- Commit your remarkable changes (
git commit -am 'Added new feature'
) - Push to the branch (
git push --set-up-stream origin my-new-feature
) - Create a new Pull Request and provide details about your changes
Created and maintained by Meir Gabay
This project is licensed under the MIT License - see the LICENSE file for details