Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ This workflow has additional options that you can use to customize it for your u
| `enable_keepalive` | `true` | Workflow will automatically do a dummy commit to keep the repository active if there is no commit activity for the last 50 days. GitHub will stop running all cron based triggers if the repository is not active for more than 60 days. This flag allows you to disable this feature. See [#53](https://git.io/Jtm4V) for more details. | No |
| `retry_count` | `0` | Maximum number of times to retry the fetch operation if it fails, See [#66](https://github.com/ePlus-DEV/blog-post-workflow@v1/issues/66) for more details. | No |
| `retry_wait_time` | `1` | Time to wait before each retry operation in seconds. | No |
| `request_timeout` | `30` | Timeout (seconds) for each feed HTTP request. Lower this value to fail fast on slow/unresponsive feeds and reduce total workflow duration. | No |
| `push_retry_count` | `3` | Number of retries for `git push` when another workflow run has pushed first (non-fast-forward updates). | No |
| `disable_html_encoding` | `false` | Disables html encoding of the feed contents. | No |
| `disable_item_validation` | `false` | Disables the validation checks for Title, publish date and URL. | No |
| `filter_dates` | `""` | Allows you to filter post items based on date range. <br/><br/>**Supported Values** <ul><li>`daysAgo/N/`: Use this value to display only the posts from the last N days. eg: `daysAgo/10/` will show only posts from last 10 days.</li><li>`currentMonth`: Use this value to display the post that are published on current month.</li><li>`currentYear`: Use this value to display the post that are published on current year.</li></ul> Make sure that you set the `max_post_count` to a higher value to get rid of max post count filtering, before using the above options. | No |
Expand All @@ -91,6 +93,18 @@ This workflow has additional options that you can use to customize it for your u
| `skip_commit` | `false` | Allows you to prevent the workflow from creating a new commit in the repository. Nevertheless of this option, changes to the readme will be made. This is particularly useful if you want to do the commits manually using the git cli or another workflow. One of the important thing to note is that the workflow will still do the keepalive commits, if you want to disable it you can use the `enable_keepalive` option instead. | No |
| `dummy_commit_message` | `dummy commit to keep the repository active, see https://git.io/Jtm4V` | Dummy commit message, This is when the workflow is doing automated commits to keep the repository active | No |

### Performance tuning (important for matrix workflows)

If your workflow is slow, the bottleneck is usually network waiting on RSS endpoints (not markdown rendering).

- Set `request_timeout` to fail fast on slow feeds (`10`-`20` seconds is a good starting point).
- Keep `retry_count` low (`0`-`1`) unless your source is frequently unstable.
- Keep `push_retry_count` enabled to auto-recover when matrix jobs push to the same branch at nearly the same time.
- Avoid `max-parallel: 1` in matrix jobs unless you intentionally want strictly serial processing.
- In matrix strategy, set `fail-fast: false` if you want other matrix entries to continue even when one entry fails.

> Example worst-case per feed: with `request_timeout: 30` and `retry_count: 5`, one feed can wait up to ~`210s` (3.5 minutes) before failing.

## Advanced usage examples

Click to expand:
Expand Down
8 changes: 8 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,14 @@ inputs:
description: "Time to wait before each retry operation in seconds"
default: "1"
required: false
request_timeout:
description: "Timeout for each feed request in seconds"
default: "30"
required: false
push_retry_count:
description: "Retry count for git push when remote has new commits (non-fast-forward)"
default: "3"
required: false
feed_names:
description: "Comma separated name of the feeds to show on template"
default: ""
Expand Down
Loading