You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
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
|
|
|