diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d71f39..1fc058f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,13 +12,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '22' - - - uses: oven-sh/setup-bun@v2 - with: - bun-version: '1.2' + # Installs node, bun, and java from mise.toml so CI and local builds + # share one source of truth — a bad version fails here, not just locally. + - uses: jdx/mise-action@v2 - run: bun install --frozen-lockfile @@ -38,18 +34,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: '22' - - - uses: oven-sh/setup-bun@v2 - with: - bun-version: '1.2' - - - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' + # Installs node, bun, and java from mise.toml so CI and local builds + # share one source of truth — a bad version fails here, not just locally. + - uses: jdx/mise-action@v2 - uses: gradle/actions/setup-gradle@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7d26e3f..1297907 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,21 +29,10 @@ jobs: # Full history so we can derive a monotonic versionCode from commit count. fetch-depth: 0 - - name: Set up Node - uses: actions/setup-node@v4 - with: - node-version: '22' - - - name: Set up Bun - uses: oven-sh/setup-bun@v2 - with: - bun-version: '1.2' - - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' + # Installs node, bun, and java from mise.toml so CI and local builds + # share one source of truth — a bad version fails here, not just locally. + - name: Set up mise tools + uses: jdx/mise-action@v2 - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/mise.toml b/mise.toml index 113aa7a..5ec97f7 100644 --- a/mise.toml +++ b/mise.toml @@ -2,9 +2,10 @@ # Run `mise install` after cloning to install everything. [tools] -# Pinned to match .github/workflows/ci.yml so local builds match CI. +# Single source of truth for tool versions: CI installs these via +# jdx/mise-action, so local builds and CI can't drift. # Node stays alongside bun because Metro and Gradle's react.gradle plugin # shell out to `node` directly — bun is the package manager, not the runtime. node = "22" bun = "1.2" -java = "zulu-17.0.19+10" +java = "temurin-17.0.19+10"