Sign inSign up

unfor19/replacer-action

By unfor19

•Updated almost 5 years ago

Image
0

1.3K

unfor19/replacer-action repository overview

⁠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: "[email protected]"
          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 :point_up: 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: "[email protected]"
      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

Tag summary

Content type

Image

Digest

Size

21.8 MB

Last updated

almost 5 years ago

docker pull unfor19/replacer-action