From 84dd9347ea40d1f5e794a54631bd0e9df61e693b Mon Sep 17 00:00:00 2001 From: Raul Victor Trombin Date: Tue, 8 Oct 2024 21:12:54 -0300 Subject: [PATCH] test2 --- .github/workflows/action.yml | 91 ++++-------------------------------- 1 file changed, 8 insertions(+), 83 deletions(-) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 53fd0e56d..891e020d5 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -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