Skip to content
align-justify

GitHub Action

replacer-action

v1 Latest version

replacer-action

align-justify

replacer-action

Auto-update README.md according to soucre code

Installation

Copy and paste the following snippet into your .yml file.

              

- name: replacer-action

uses: unfor19/replacer-action@v1

Learn more about this action in unfor19/replacer-action

Choose a version

replacer-action

testing test-action

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

How It Works

  1. Uses perl to manipulate the destination file - README.md
  2. Executes git diff to check if there are any changes in README.md
  3. If there are no changes, exits successfully
  4. If there are changes, executes git commit followed by git push

Requirements

  1. 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 -->
  1. 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

Usage

GitHub Action

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

Help Menu

./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

drone.io

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

Contributing

Report issues/questions/feature requests on the Issues section.

Pull requests are welcome! These are the steps:

  1. Fork this repo
  2. Create your feature branch from master (git checkout -b my-new-feature)
  3. Build development image
    docker build -t "replacer-action:dev" --target "dev" .
  4. Run development image
    docker run --rm -it -v "$PWD":"/code" --workdir "/code" "replacer-action:dev"
  5. Add the code of your new feature
  6. Run tests on your code, feel free to add more tests
    # in container
    ./tests/test.sh
    ... # All good? Move on to the next step
  7. Commit your remarkable changes (git commit -am 'Added new feature')
  8. Push to the branch (git push --set-up-stream origin my-new-feature)
  9. Create a new Pull Request and provide details about your changes

Authors

Created and maintained by Meir Gabay

License

This project is licensed under the MIT License - see the LICENSE file for details