Skip to content

Add latest OpenCode installation and LMM OAuth configuration #115

Add latest OpenCode installation and LMM OAuth configuration

Add latest OpenCode installation and LMM OAuth configuration #115

Workflow file for this run

name: Installer checks
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
platforms:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38
with:
node-version: 24.21.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: '3.x'
- name: Shell contracts
if: runner.os != 'Windows'
run: python3 test.py
- name: ShellCheck
if: runner.os == 'Linux'
run: shellcheck *.sh
- name: PowerShell contracts
shell: pwsh
run: ./test.ps1
- name: PowerShell 5.1 contracts
if: runner.os == 'Windows'
shell: powershell
run: .\test.ps1
- name: Real Unix CLI installs
if: runner.os != 'Windows'
shell: bash
run: |
export PI_CODING_AGENT_DIR="$RUNNER_TEMP/pi-profile" DSH_HOME="$RUNNER_TEMP/dsh-profile"
export CODEX_HOME="$RUNNER_TEMP/codex-profile" CODEX_INSTALL_DIR="$RUNNER_TEMP/codex-bin"
export CODEX_NON_INTERACTIVE=true
bash pi.sh
pi --version
pi list
bash dsh.sh
dsh --version
dsh plugin --profile web list --depth 0
bash codex.sh
"$CODEX_INSTALL_DIR/codex" --version
bash claude-code.sh stable
"$HOME/.local/bin/claude" --version
bash lmm.sh
"$HOME/.local/bin/lmm" --version
- name: Real Windows CLI installs
if: runner.os == 'Windows'
shell: powershell
run: |
$env:PI_CODING_AGENT_DIR="$env:RUNNER_TEMP\pi-profile"
# Expose only this job's chosen install path; no persistent user PATH changes.
$env:PATH="$env:PI_CODING_AGENT_DIR\bin;$env:PATH"
$env:DSH_HOME="$env:RUNNER_TEMP\dsh-profile"
$env:CODEX_HOME="$env:RUNNER_TEMP\codex-profile"
$env:CODEX_INSTALL_DIR="$env:RUNNER_TEMP\codex-bin"
$env:CODEX_NON_INTERACTIVE='true'
foreach ($tool in @('pi','dsh','codex','claude-code','lmm')) {
Write-Host "Installing $tool"
& powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ".\$tool.ps1"
if ($LASTEXITCODE) { throw "$tool install failed: $LASTEXITCODE" }
}
foreach ($command in @("$env:PI_CODING_AGENT_DIR\bin\pi.cmd",'dsh.cmd',"$env:CODEX_INSTALL_DIR\codex.exe","$HOME\.local\bin\claude.exe","$HOME\.local\bin\lmm.exe")) {
& $command --version
if ($LASTEXITCODE) { throw "$command failed: $LASTEXITCODE" }
}
linux-libc:
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
image: [debian:12, alpine:3.22]
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Official installers without Node
env:
IMAGE: ${{ matrix.image }}
run: |
docker run --rm -v "$PWD:/src:ro" "$IMAGE" sh -ec '
if command -v apk >/dev/null; then
apk add --no-cache bash curl ca-certificates libgcc libstdc++ ripgrep
export USE_BUILTIN_RIPGREP=0
else
apt-get update && apt-get install -y bash curl ca-certificates
fi
export CODEX_NON_INTERACTIVE=true
bash /src/codex.sh
/root/.local/bin/codex --version
bash /src/claude-code.sh stable
/root/.local/bin/claude --version
'