-
Notifications
You must be signed in to change notification settings - Fork 804
fix: repair install.sh and add cross-platform installation CI #4073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Open
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
aee2602
fix: repair cross-platform installer and add installation CI
TomCC7 cb92fb7
ci: temporarily disable macOS installation runners
TomCC7 de9c8de
ci: simplify installer coverage to single Linux installs
TomCC7 26fd0b4
ci: trust the mounted checkout in installer containers
TomCC7 1552ada
Merge main and preserve installer platform exclusions
TomCC7 687b0c1
docs: make install.sh the official installation path
TomCC7 51ec993
fix: use system env in installer and drop redundant Python packages
TomCC7 10f14c5
fix: handle empty installer selections in Bash 3.2
TomCC7 951e7c9
Merge branch 'main' into cc/fix/install-sh
TomCC7 398b851
fix: address installer review feedback and restore manual setup docs
TomCC7 d8b1ec2
Merge remote-tracking branch 'origin/cc/fix/install-sh' into cc/fix/i…
TomCC7 771abfc
docs: clarify installer support and trim redundant Docker dependencies
TomCC7 a39c587
Merge remote-tracking branch 'origin/main' into cc/fix/install-sh
TomCC7 1fc7a99
test: use normal relay startup timeout for TLS validation
TomCC7 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| name: Test installation script | ||
|
|
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - 'scripts/install.sh' | ||
| - 'scripts/test-install.sh' | ||
| - 'pyproject.toml' | ||
| - 'uv.lock' | ||
| - 'setup.py' | ||
| - 'MANIFEST.in' | ||
| - '.github/workflows/install.yml' | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: install-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| # macOS installation jobs are deferred until runner capacity is available. | ||
| jobs: | ||
| lint: | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 | ||
| - name: Shell syntax and lint | ||
| run: | | ||
| /bin/bash -n scripts/install.sh | ||
| /bin/bash -n scripts/test-install.sh | ||
| uvx --from shellcheck-py shellcheck -e SC1091 scripts/install.sh scripts/test-install.sh | ||
|
|
||
| ubuntu: | ||
| needs: lint | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-24.04, ubuntu-24.04-arm] | ||
| version: ['22.04', '24.04'] | ||
| mode: [library, dev] | ||
| runs-on: ${{ matrix.os }} | ||
| container: ubuntu:${{ matrix.version }} | ||
| timeout-minutes: 60 | ||
| env: | ||
| INSTALL_TEST_ROOT: /tmp/dimos-install-test | ||
| steps: | ||
| # curl and Git are prerequisites for fetching and testing the installer. | ||
| # All DimOS runtime/build prerequisites must be installed by install.sh. | ||
| - name: Bootstrap checkout tools | ||
| run: | | ||
| apt-get update | ||
| apt-get install -y ca-certificates curl git | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | ||
| with: | ||
| persist-credentials: false | ||
| - name: Install and verify | ||
| run: | | ||
| # checkout's safe.directory setting uses a temporary HOME. The | ||
| # container's later steps need to trust this mounted checkout too. | ||
| git config --global --add safe.directory "$GITHUB_WORKSPACE" | ||
| git config --global --add safe.directory "$GITHUB_WORKSPACE/.git" | ||
| bash scripts/test-install.sh '${{ matrix.mode }}' | ||
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | ||
| if: always() | ||
| with: | ||
| name: install-${{ matrix.os }}-${{ matrix.version }}-${{ matrix.mode }} | ||
| path: /tmp/dimos-install-test/logs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
TomCC7 marked this conversation as resolved.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Installation | ||
|
|
||
| The recommended way to install dimOS is the guided `install.sh` script. It installs system dependencies, uv, Python, and dimOS into a project virtual environment (or a source checkout for contributors). Recent clean Ubuntu CI installs took about 2–4 minutes (allow longer on a laptop, slower connection, or first Homebrew/Nix setup). Run it from a terminal: | ||
|
|
||
| ```sh skip | ||
| curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash | ||
| ``` | ||
|
|
||
| The installer asks for a mode and project directory, sets up system dependencies and uv, installs Python 3.12 and dimOS, and verifies the CLI and native libraries. It can also configure LCM networking and run an optional replay check. Follow the printed activation instructions when it finishes. | ||
|
|
||
| | Platform | Installation path | Validation | | ||
| | --- | --- | --- | | ||
| | [Ubuntu 22.04/24.04](/docs/installation/ubuntu.md), x86_64/ARM64 | apt | Both modes pass CPU installation CI | | ||
| | [macOS](/docs/installation/osx.md), Apple Silicon | Homebrew | CI paused; local testing needed | | ||
| | [NixOS / other Linux](/docs/installation/nix.md), including Arch | Nix | Not covered by installation CI | | ||
|
|
||
| Linux ARM64 excludes `scene` because `usd-core` has no wheel. CUDA extras require Linux x86_64; Jetson CUDA setup is not supported. Installation checks do not qualify robot hardware or GPU workloads. | ||
|
|
||
| ## Choose a mode | ||
|
|
||
| - **Library (recommended)** installs the published package in a project virtual environment. | ||
| - **Developer** clones `main` and installs the checkout with test and lint dependencies. An existing checkout is reused without pulling or switching branches. | ||
|
TomCC7 marked this conversation as resolved.
|
||
|
|
||
| Install a CPU library environment without prompts or replay: | ||
|
|
||
| ```sh skip | ||
| curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash -s -- \ | ||
| --mode library --project-dir ./dimos-app \ | ||
| --non-interactive --no-nix --no-cuda --no-sysctl --skip-tests | ||
| cd dimos-app | ||
| source .venv/bin/activate | ||
| uv run dimos --help | ||
| ``` | ||
|
|
||
| Use `--mode dev --project-dir ./dimos` for a source checkout. Use `--extras base,unitree` to select capabilities (developer mode defaults to `all` with platform exclusions). See [dependency tiers](/docs/requirements.md#dependency-tiers). | ||
|
|
||
| `--skip-tests` skips replay only (installation verification still runs). `--no-sysctl` skips network tuning. These commands can install system packages on your host. | ||
|
|
||
| For all options: | ||
|
|
||
| ```sh skip | ||
| curl -fsSL https://raw.githubusercontent.com/dimensionalOS/dimos/main/scripts/install.sh | bash -s -- --help | ||
| ``` | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.