# wretry.action **Repository Path**: eloco/wretry.action ## Basic Information - **Project Name**: wretry.action - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-14 - **Last Updated**: 2022-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # action::retry [![status](https://github.com/Wandalen/wretry.action/actions/workflows/StandardPublish.yml/badge.svg)](https://github.com/Wandalen/wretry.action/actions/workflows/StandardPublish.yml) [![stable](https://img.shields.io/badge/stability-stable-brightgreen.svg)](https://github.com/emersion/stability-badges#stable) Retries an Github Action step or command on failure. Works with either shell commands or other actions to retry. ## Why Github actions which use an Internet connection can fail when connection is lost : ```bash Run actions/setup-node@v1 connect ETIMEDOUT 104.20.22.46:443 Waiting 15 seconds before trying again connect ETIMEDOUT 104.20.22.46:443 Waiting 18 seconds before trying again Error: connect ETIMEDOUT 104.20.22.46:443 ``` It is a cause of failed jobs. For this case, the action `wretry.action` can retry the action immediately after fail or with some delay. And if the connection will be restored, then the job will continue the normal run. ## Features - Retries Github actions. The action can be an action repository that is not published on `Marketplace`. - Retries shell command. - Can retry single action or single command ( multiline command ), but not both simultaneously. - Retries only `main`, `pre` and `post` stages of external actions. - Always has `pre` and `post` stages. If external action has `pre` or/and `post` stage, then action run it also. - Handles no conditions in external actions. All stages of external action will be performed. - Retries actions with defined number of attempts ( default is 2 ). - Retries actions with defined delay between attempts ( default is 0 ). ## Inputs ### `action` The name of the Github action. ### `command` The command to run. **Attend**. Action requires defined `action` or `command`. If the fields `action` and `commands` are defined simultaneously, then action will throw error. ### `with` An options map for Github action. It is a multiline string with pairs `key : value`. ### `attempt_limit` Set number of attempts. Default is 2. ### `attempt_delay` Set delay between attempts in ms. Default is 0. ## Outputs Depends on output of given Github action. ## Example usage ### Retry action ```yaml uses: Wandalen/wretry.action@v1.0.11 with: action: action/node-setup@2.3.0 with: | node-version: 14.x architecture: x64 attempt_limit: 3 attempt_delay: 2000 ``` ### Retry command ```yaml uses: Wandalen/wretry.action@v1.0.11 with: command: npm i attempt_limit: 3 attempt_delay: 2000 ``` ### Development and contributing To build compiled dependencies utility `willbe` is required. To install utility run : ``` npm i -g 'willbe@latest' ``` `willbe` is not required to use the action in your project as submodule.