Skip to content

Commit

Permalink
test2
Browse files Browse the repository at this point in the history
  • Loading branch information
RaulTrombin committed Oct 9, 2024
1 parent 208206f commit 84dd934
Showing 1 changed file with 8 additions and 83 deletions.
91 changes: 8 additions & 83 deletions .github/workflows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,95 +39,20 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./target/doc

ci-setup:
runs-on: raspbian-armv7-kernel-5.10.33
outputs:
ci_number: ${{ steps.set-ci.outputs.ci_number }}
steps:
- name: Determine CI number
id: set-ci
run: |
# If hostname method fails, check for a file indicator
if [ -z "$CI_NUMBER" ]; then
if [ -f "/etc/ci1_indicator" ]; then
CI_NUMBER=1
elif [ -f "/etc/ci2_indicator" ]; then
CI_NUMBER=2
fi
fi
# If we still don't have a CI_NUMBER, exit with an error
if [ -z "$CI_NUMBER" ]; then
echo "Error: Unable to determine CI_NUMBER"
echo "Hostname: $HOSTNAME"
echo "Contents of /etc:"
ls -l /etc | grep ci
exit 1
fi
echo "Determined CI_NUMBER: $CI_NUMBER"
echo "ci_number=$CI_NUMBER" >> $GITHUB_OUTPUT
- name: Check if CI is busy and wait if necessary
run: |
MAX_WAIT_TIME=3600 # Maximum wait time in seconds (1 hour)
WAIT_INTERVAL=60 # Check every 60 seconds
TOTAL_WAIT=0
while [ $TOTAL_WAIT -lt $MAX_WAIT_TIME ]; do
BUSY_STATE=$(curl -s "http://${{ env.CI_PING_IP }}/switch/ci_busy_flag" | jq -r '.state')
if [ "$BUSY_STATE" = "OFF" ]; then
echo "CI is not busy, proceeding with setup"
break
fi
echo "CI is busy, waiting for $WAIT_INTERVAL seconds..."
sleep $WAIT_INTERVAL
TOTAL_WAIT=$((TOTAL_WAIT + WAIT_INTERVAL))
done
if [ $TOTAL_WAIT -ge $MAX_WAIT_TIME ]; then
echo "Timeout: CI remained busy for too long"
exit 1
fi
- name: Set busy state
run: |
curl -X POST "http://${{ env.CI_PING_IP }}/button/start_ci_run__set_busy_/press"
sleep 2
BUSY_STATE=$(curl -s "http://${{ env.CI_PING_IP }}/switch/ci_busy_flag" | jq -r '.state')
if [ "$BUSY_STATE" != "ON" ]; then
echo "Failed to set busy state"
exit 1
fi
- name: Set CI and wait for state change
run: |
MAX_RETRIES=5
RETRY_COUNT=0
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
curl -X POST "http://${{ env.CI_PING_IP }}/button/set_ci${{ steps.set-ci.outputs.ci_number }}_required/press"
sleep 10 # Wait for state change
LED_STATE=$(curl -s "http://${{ env.CI_PING_IP }}/binary_sensor/led_${{ steps.set-ci.outputs.ci_number }}_state" | jq -r '.state')
if [ "$LED_STATE" = "ON" ]; then
echo "Successfully set CI${{ steps.set-ci.outputs.ci_number }}"
break
fi
RETRY_COUNT=$((RETRY_COUNT+1))
if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then
echo "Failed to set CI after $MAX_RETRIES attempts"
exit 1
fi
echo "Retrying to set CI... (Attempt $RETRY_COUNT of $MAX_RETRIES)"
sleep 5
done
tests:
needs: ci-setup
runs-on: raspbian-armv7-kernel-5.10.33
if: ${{ github.repository_owner == 'bluerobotics' }}
steps:
- name: Run CI management script
run: /etc/github_runner/ci_management.sh
- name: Determine CI number
run: |
ls -la
- name: Post CI management script
if: always()
run: |
source /etc/github_runner/ci_management.sh
clear_busy_state
deploy:
needs: build
Expand Down

0 comments on commit 84dd934

Please sign in to comment.