name: 'openpilot env setup, with retry on failure' inputs: docker_hub_pat: description: 'Auth token for Docker Hub, required for BuildJet jobs' required: false default: '' sleep_time: description: 'Time to sleep between retries' required: false default: 30 outputs: duration: description: 'Duration of the setup process in seconds' value: ${{ steps.get_duration.outputs.duration }} runs: using: "composite" steps: - id: start_time shell: bash run: echo "START_TIME=$(date +%s)" >> $GITHUB_ENV - id: setup1 uses: ./.github/workflows/setup continue-on-error: true with: is_retried: true - if: steps.setup1.outcome == 'failure' shell: bash run: sleep ${{ inputs.sleep_time }} - id: setup2 if: steps.setup1.outcome == 'failure' uses: ./.github/workflows/setup continue-on-error: true with: is_retried: true - if: steps.setup2.outcome == 'failure' shell: bash run: sleep ${{ inputs.sleep_time }} - id: setup3 if: steps.setup2.outcome == 'failure' uses: ./.github/workflows/setup with: is_retried: true - id: get_duration shell: bash run: | END_TIME=$(date +%s) DURATION=$((END_TIME - START_TIME)) echo "Total duration: $DURATION seconds" echo "duration=$DURATION" >> $GITHUB_OUTPUT