Skip to content

ci: add dev prerelease flow and release runbook#2

Open
Noisemaker111 wants to merge 2 commits intoWindows-Supportfrom
ci/dev-release-flow
Open

ci: add dev prerelease flow and release runbook#2
Noisemaker111 wants to merge 2 commits intoWindows-Supportfrom
ci/dev-release-flow

Conversation

@Noisemaker111
Copy link
Owner

@Noisemaker111 Noisemaker111 commented Feb 13, 2026

Summary

  • add a dedicated Release Dev workflow that publishes prerelease macOS + Windows artifacts from dev
  • expand CI to run on both main and dev pushes/PRs, and update action versions for checkout + rust toolchain
  • add release:version script plus docs/release-flow.md to keep versioning and branch promotion (dev -> main) predictable
  • update README release guidance for this fork's release URL and supported platforms
  • switch updater endpoint and updater public key in src-tauri/tauri.conf.json to this fork, and configure matching signing secrets in repo settings

Validation

  • bun run test:coverage currently fails in branch baseline on src/App.test.tsx due missing mock export DEFAULT_RESET_TIMER_DISPLAY_MODE
  • bun run build currently reports branch-baseline TypeScript module-resolution issues

Copy link

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

Open in Devin Review


- name: Install Rust toolchain
uses: dtolnay/rust-action@stable
uses: dtolnay/rust-toolchain@v1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 dtolnay/rust-toolchain@v1 is an invalid action ref — no v1 branch/tag exists

All three workflow files (ci.yml, publish.yml, release-dev.yml) changed the Rust toolchain action reference from @stable to @v1. The dtolnay/rust-toolchain action is unique: it uses the git ref (the part after @) as the Rust toolchain channel to install. @stable installs the stable toolchain, @nightly installs nightly, etc. There is no v1 branch or tag in the dtolnay/rust-toolchain repository.

Root Cause and Impact

The dtolnay/rust-toolchain action reads github.action_ref to determine which Rust toolchain to install. When you write uses: dtolnay/rust-toolchain@stable, GitHub resolves the stable branch, and the action installs the stable Rust toolchain. Writing @v1 causes GitHub Actions to attempt to resolve a ref called v1, which does not exist in that repository.

Affected files:

  • ci.yml:28uses: dtolnay/rust-toolchain@v1 (no toolchain input, no rust-toolchain.toml fallback)
  • publish.yml:37uses: dtolnay/rust-toolchain@v1
  • release-dev.yml:94uses: dtolnay/rust-toolchain@v1

Impact: Every workflow that needs Rust will fail at the "Install Rust toolchain" step because the action ref cannot be resolved. This breaks CI, stable publishing, and dev prerelease publishing.

Prompt for agents
Change all occurrences of dtolnay/rust-toolchain@v1 back to dtolnay/rust-toolchain@stable across all three workflow files:

1. .github/workflows/ci.yml line 28: change `uses: dtolnay/rust-toolchain@v1` to `uses: dtolnay/rust-toolchain@stable`
2. .github/workflows/publish.yml line 37: change `uses: dtolnay/rust-toolchain@v1` to `uses: dtolnay/rust-toolchain@stable`
3. .github/workflows/release-dev.yml line 94: change `uses: dtolnay/rust-toolchain@v1` to `uses: dtolnay/rust-toolchain@stable`

The dtolnay/rust-toolchain action uses the git ref as the toolchain specifier. @stable means install stable Rust. There is no v1 tag/branch in that repository.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 actions/checkout@v6 references a non-existent major version

All workflow files were changed from actions/checkout@v4 to actions/checkout@v6. As of February 2026, the latest major version of actions/checkout is v4. There is no v6 tag.

Root Cause and Impact

The actions/checkout action uses semantic versioning with major version tags (v1, v2, v3, v4). The PR bumped all references to @v6 which does not exist. This affects:

  • .github/workflows/ci.yml:21
  • .github/workflows/publish.yml:33
  • .github/workflows/release-dev.yml:24
  • .github/workflows/release-dev.yml:86

Impact: Every workflow job will fail at the checkout step because GitHub Actions cannot resolve the v6 tag. No CI checks, no publishing, and no dev releases will work.

Prompt for agents
Change all occurrences of actions/checkout@v6 back to actions/checkout@v4 across all workflow files:

1. .github/workflows/ci.yml line 21: change to actions/checkout@v4
2. .github/workflows/publish.yml line 33: change to actions/checkout@v4
3. .github/workflows/release-dev.yml line 24: change to actions/checkout@v4
4. .github/workflows/release-dev.yml line 86: change to actions/checkout@v4

As of February 2026, actions/checkout v4 is the latest major version. v6 does not exist.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +32 to +36
- name: Type-check and build
run: bun run build

- name: Run tests
run: bun run test

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Dev prerelease workflow missing bundle:plugins step in prepare job causes validation without bundled plugins

The release-dev.yml prepare job runs bun run build and bun run test but does not run bun run bundle:plugins before the build step. The publish job does run bundle:plugins, but the prepare job's build/test may depend on bundled plugins being present.

Detailed Explanation

Looking at src-tauri/tauri.conf.json:7-9, the beforeBuildCommand is bun run bundle:plugins && bun run build. However, the prepare job at release-dev.yml:32-33 runs bun run build directly (which is the Vite/TypeScript build, not the Tauri build), so this may not be an issue for the frontend build alone. The prepare job is primarily for validation (type-check, test, version alignment) and metadata computation, while the actual Tauri build happens in the publish job which does include bundle:plugins. This is a minor inconsistency rather than a blocking bug — the tests may pass without bundled plugins if they don't depend on them at runtime.

Impact: Low — the prepare job validates frontend code and version alignment, not the full Tauri build. But if any test depends on bundled plugin files existing, it would fail.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@github-actions github-actions bot added the rust label Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant