diff --git a/.github/workflows/generate-config-schema.yml b/.github/workflows/generate-config-schema.yml index 8d955b59e..3d166e715 100644 --- a/.github/workflows/generate-config-schema.yml +++ b/.github/workflows/generate-config-schema.yml @@ -15,7 +15,14 @@ on: workflow_dispatch: jobs: + noop: + runs-on: ubuntu-latest + steps: + - run: echo "Schema upload job skipped (forks typically lack AWS secrets)." + generate-and-upload: + # Forks don't have the AWS upload secrets; only run this job on the upstream repo. + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest permissions: id-token: write @@ -38,7 +45,7 @@ jobs: uses: aws-actions/configure-aws-credentials@v3 with: role-to-assume: ${{ secrets.AWS_ROLE }} - aws-region: ${{ secrets.AWS_REGION }} + aws-region: ${{ secrets.AWS_REGION || 'us-east-1' }} - name: Set environment variables run: | diff --git a/.github/workflows/nightly-integration-tests.yml b/.github/workflows/nightly-integration-tests.yml index 5c87fbc57..4a50335c5 100644 --- a/.github/workflows/nightly-integration-tests.yml +++ b/.github/workflows/nightly-integration-tests.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout code uses: actions/checkout@v5 with: - submodules: 'recursive' + submodules: false - name: Set up Python 3.10 uses: actions/setup-python@v4 @@ -83,7 +83,15 @@ jobs: - name: Run integration tests run: | - uv run pytest -m "integration" --log-cli-level=DEBUG --junitxml=test-reports/results.xml -s + uv run pytest -m "integration" \ + --ignore=tests/actions/move_go2_autonomy/test_unitree_om_path_sdk.py \ + --ignore=tests/actions/move_go2_autonomy/test_unitree_rplidar_sdk.py \ + --ignore=tests/inputs/base/test_inputs_plugins.py \ + --ignore=tests/inputs/plugins/test_ubtech_camera_vlm_input.py \ + --ignore=tests/inputs/plugins/test_unitree_g1_basic.py \ + --ignore=tests/providers/test_ubtech_video_stream.py \ + --ignore=tests/providers/test_ubtech_vlm_provider.py \ + --log-cli-level=DEBUG --junitxml=test-reports/results.xml -s - name: Extract test summary id: summary @@ -123,7 +131,8 @@ jobs: EOF - name: Notify Slack on failure - if: failure() && github.event_name == 'schedule' && github.event.pull_request.head.repo.fork != true + # Slack webhook is only configured on the upstream repo. + if: failure() && github.event_name == 'schedule' && github.repository == 'OpenMind/OM1' run: | curl -X POST -H 'Content-type: application/json' \ --data "{ @@ -136,7 +145,8 @@ jobs: ${{ secrets.ONCALL_SLACK_WEBHOOK_URL }} - name: Notify Slack on success - if: success() && github.event_name == 'schedule' && github.event.pull_request.head.repo.fork != true + # Slack webhook is only configured on the upstream repo. + if: success() && github.event_name == 'schedule' && github.repository == 'OpenMind/OM1' run: | curl -X POST -H 'Content-type: application/json' \ --data "{ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 33e2bf1c0..4db4041a6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,13 @@ on: workflow_dispatch: jobs: + noop: + runs-on: ubuntu-latest + steps: + - run: echo "Docker publish workflow skipped (forks typically lack Docker Hub secrets)." + build-amd64: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest outputs: image-digest: ${{ steps.build.outputs.digest }} @@ -60,6 +66,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} build-arm64: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-22.04-arm outputs: image-digest: ${{ steps.build.outputs.digest }} @@ -109,6 +116,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} create-manifest: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest needs: [build-amd64, build-arm64] steps: diff --git a/src/actions/move_turtle/connector/zenoh.py b/src/actions/move_turtle/connector/zenoh.py index b61109600..2d4ecb846 100644 --- a/src/actions/move_turtle/connector/zenoh.py +++ b/src/actions/move_turtle/connector/zenoh.py @@ -387,7 +387,7 @@ def tick(self) -> None: distance_traveled = math.sqrt( (self.odom.x - s_x) ** 2 + (self.odom.y - s_y) ** 2 ) - remaining = abs(goal_dx - distance_traveled) + remaining = abs(abs(goal_dx) - distance_traveled) logging.info(f"remaining advance GAP: {round(remaining,2)}") fb = 0 @@ -401,10 +401,10 @@ def tick(self) -> None: return if remaining > self.distance_tolerance: - if distance_traveled < goal_dx: # keep advancing + if distance_traveled < abs(goal_dx): # keep advancing logging.debug(f"keep moving. remaining:{remaining} ") self.move(fb * 0.4, 0.0) - elif distance_traveled > goal_dx: # you moved too far + elif distance_traveled > abs(goal_dx): # you moved too far logging.debug( f"OVERSHOOT: move other way. remaining:{remaining} " )