-
Notifications
You must be signed in to change notification settings - Fork 5
.github/workflows: Migrate workflows to Blacksmith runners #375
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
base: master
Are you sure you want to change the base?
Conversation
Deploying maple with
|
| Latest commit: |
a27af25
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://3a68b6de.maple-ca8.pages.dev |
| Branch Preview URL: | https://blacksmith-migration-52f2b2b.maple-ca8.pages.dev |
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Comment |
|
Checking to see if this makes our builds much faster |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Greptile Overview
Greptile Summary
This PR migrates four GitHub Actions workflows from standard GitHub-hosted runners to Blacksmith's faster infrastructure. The changes update the runs-on field from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 for Linux-based jobs across android-build.yml, claude.yml, desktop-build.yml, and release.yml.
What Changed:
- Android builds now run on Blacksmith's 4vCPU Ubuntu 24.04 runners
- Claude Code integration workflow migrated to Blacksmith runners
- Desktop Linux builds migrated to Blacksmith runners
- Release workflow Linux jobs (both Tauri and Android builds) migrated to Blacksmith runners
Critical Issues Found:
The release.yml file contains two conditional checks (lines 72 and 91) that still reference ubuntu-latest instead of the new blacksmith-4vcpu-ubuntu-2404 platform value. This will cause these conditional steps to never execute, resulting in:
- Missing sccache installation (line 72) - degraded build performance
- Missing Linux dependencies installation (line 91) - build failures due to missing libraries like libwebkit2gtk-4.1-dev and libssl-dev
These bugs will prevent successful releases from being created.
Confidence Score: 1/5
- This PR contains critical bugs that will break the release workflow
- While the migration concept is straightforward, the release.yml file has two critical logic errors where conditional platform checks weren't updated. Line 91's bug will cause immediate build failures in releases due to missing system dependencies, making this PR unsafe to merge without fixes
- Pay immediate attention to .github/workflows/release.yml lines 72 and 91 - these conditional checks must be updated to match the new platform value
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| .github/workflows/android-build.yml | 5/5 | Changed runner from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 for faster builds |
| .github/workflows/claude.yml | 5/5 | Changed runner from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 for faster builds |
| .github/workflows/desktop-build.yml | 5/5 | Changed Linux build runner from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 for faster builds |
| .github/workflows/release.yml | 0/5 | Changed Linux runners to blacksmith-4vcpu-ubuntu-2404, but conditional checks still reference ubuntu-latest causing critical build failures |
Sequence Diagram
sequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant Old as ubuntu-latest Runner
participant New as blacksmith-4vcpu-ubuntu-2404 Runner
Note over Dev,New: Before this PR
Dev->>GH: Push to master / Create PR
GH->>Old: Trigger workflow
Old->>Old: Run build steps
Old->>GH: Upload artifacts
Note over Dev,New: After this PR (Intended)
Dev->>GH: Push to master / Create PR
GH->>New: Trigger workflow
New->>New: Run build steps (2x faster)
New->>GH: Upload artifacts
Note over Dev,New: After this PR (Actual - release.yml)
Dev->>GH: Create release
GH->>New: Trigger release workflow
Note over New: ❌ Skip sccache install (line 72)
Note over New: ❌ Skip Linux deps install (line 91)
New->>New: Attempt build without dependencies
New--xGH: ❌ Build fails - missing libraries
Additional Comments (2)
Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/release.yml
Line: 72:72
Comment:
The conditional check `matrix.platform == 'ubuntu-latest'` will never be true because the matrix platform value was changed to `blacksmith-4vcpu-ubuntu-2404` on line 35. This will cause the sccache installation step to be skipped for Linux builds, resulting in slower builds or potential build failures.
```suggestion
if: matrix.platform == 'blacksmith-4vcpu-ubuntu-2404'
```
How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/release.yml
Line: 91:91
Comment:
The conditional check `matrix.platform == 'ubuntu-latest'` will never be true because the matrix platform value was changed to `blacksmith-4vcpu-ubuntu-2404` on line 35. This will cause the Linux dependencies installation step to be skipped, which will result in build failures due to missing libraries (libwebkit2gtk-4.1-dev, libssl-dev, etc.).
```suggestion
if: matrix.platform == 'blacksmith-4vcpu-ubuntu-2404'
```
How can I resolve this? If you propose a fix, please make it concise. |
9377ace to
7be1c38
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Greptile Overview
Greptile Summary
Migrates GitHub Actions workflows from standard GitHub runners to Blacksmith's faster infrastructure by updating runs-on values from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 across four workflow files. This change enables faster builds with 2x faster hardware and colocated caching for all Linux-based jobs including Android builds, desktop builds, Claude Code automation, and release processes.
Confidence Score: 0/5
- Critical bug will cause sccache to be skipped in release builds, resulting in significantly slower build times
- The release.yml file contains a conditional check on line 72 that still references
ubuntu-latestinstead of the newblacksmith-4vcpu-ubuntu-2404runner name. This will cause the sccache installation step to never execute for Linux builds, defeating one of the main benefits of this migration—faster builds through caching. This is a definite logic error that will impact production release workflows. - .github/workflows/release.yml requires immediate fix to the conditional check on line 72
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| .github/workflows/release.yml | 0/5 | Migrates release workflow to Blacksmith runners; contains critical bug where conditional check on line 72 still references ubuntu-latest instead of blacksmith-4vcpu-ubuntu-2404, causing sccache installation to be skipped |
Sequence Diagram
sequenceDiagram
participant GHA as GitHub Actions
participant BR as Blacksmith Runner
participant Cache as Blacksmith Cache
GHA->>BR: Trigger workflow on ubuntu runner
BR->>BR: Setup build environment
BR->>Cache: Fetch dependencies from colocated cache
Cache-->>BR: Return cached artifacts (4x faster)
BR->>BR: Execute build with 2x faster hardware
BR-->>GHA: Return build artifacts
Additional Comments (1)
Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/release.yml
Line: 72:72
Comment:
The conditional check still references `ubuntu-latest`, but the matrix platform value was changed to `blacksmith-4vcpu-ubuntu-2404` on line 35. This will cause the sccache installation step to be skipped for Linux builds, resulting in slower builds.
```suggestion
if: matrix.platform == 'blacksmith-4vcpu-ubuntu-2404'
```
How can I resolve this? If you propose a fix, please make it concise. |
7be1c38 to
a27af25
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Greptile Overview
Greptile Summary
This PR migrates GitHub Actions workflows from GitHub-hosted ubuntu-latest runners to Blacksmith's blacksmith-4vcpu-ubuntu-2404 runners. The migration aims to improve CI/CD performance with 2x faster hardware, 4x faster caching, and enhanced observability.
What Changed
Successfully Migrated Jobs:
android-build.yml: Android build job → blacksmith-4vcpu-ubuntu-2404claude.yml: Claude Code automation job → blacksmith-4vcpu-ubuntu-2404desktop-build.yml: Linux desktop build job → blacksmith-4vcpu-ubuntu-2404release.yml:build-tauriandbuild-androidjobs → blacksmith-4vcpu-ubuntu-2404
Platform Conditionals Updated:
All platform-specific conditionals in release.yml have been correctly updated from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404 for sccache installation and Linux dependency installation steps.
Incomplete Migration
Two lightweight jobs in release.yml were not migrated:
create-releasejob (line 11) - extracts version informationupdate-latest-jsonjob (line 325) - generates update manifest
These jobs could be migrated for consistency, though the performance impact would be minimal given their simple operations.
Compatibility Considerations
The migration uses Ubuntu 24.04 (ubuntu-2404), which is a newer version than GitHub's current ubuntu-latest (22.04). All package dependencies (libwebkit2gtk-4.1-dev, libssl-dev, etc.) are compatible with Ubuntu 24.04. The runner.os variable will still report "Linux", so cache keys remain consistent.
Confidence Score: 4/5
- This PR is safe to merge with minor considerations for completeness
- The migration is technically sound with all critical platform conditionals correctly updated. The score is 4 (not 5) due to incomplete migration - two jobs in release.yml still use ubuntu-latest. While these unmigrated jobs are lightweight and won't cause failures, completing the migration would ensure consistency and maximize Blacksmith benefits across all workflows.
- .github/workflows/release.yml should have its remaining ubuntu-latest jobs migrated for consistency
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| .github/workflows/android-build.yml | 5/5 | Migrated runs-on from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404, no issues found |
| .github/workflows/claude.yml | 5/5 | Migrated runs-on from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404, no issues found |
| .github/workflows/desktop-build.yml | 5/5 | Migrated build-linux job from ubuntu-latest to blacksmith-4vcpu-ubuntu-2404, no issues found |
| .github/workflows/release.yml | 3/5 | Partially migrated: build-tauri and build-android jobs migrated, but create-release and update-latest-json jobs still use ubuntu-latest |
Sequence Diagram
sequenceDiagram
participant GH as GitHub Event
participant BR as Blacksmith Runner
participant Cache as Blacksmith Cache
participant Build as Build Process
Note over GH,Build: Workflow Execution Flow
GH->>BR: Trigger workflow (push/PR/release)
BR->>BR: Provision blacksmith-4vcpu-ubuntu-2404
BR->>Cache: Restore cached dependencies
Note right of Cache: 4x faster cache retrieval<br/>(Bun, Cargo, sccache, Gradle)
Cache-->>BR: Return cached artifacts
BR->>Build: Setup environment (Rust, Bun, NDK)
Build->>Build: Install dependencies
Build->>Build: Compile & build artifacts
Note right of Build: 2x faster hardware<br/>Docker layer caching
Build->>Cache: Store build cache
Build-->>BR: Build complete
BR-->>GH: Upload artifacts & report status
Additional Comments (2)
This job is lightweight (only checking out code and getting version), so the migration would provide marginal benefits, but it would make the migration complete and consistent. Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/release.yml
Line: 11:11
Comment:
The `create-release` job still uses `ubuntu-latest` instead of a Blacksmith runner. For consistency with the migration and to benefit from Blacksmith's faster runners and caching, consider migrating this job as well:
```suggestion
runs-on: blacksmith-4vcpu-ubuntu-2404
```
This job is lightweight (only checking out code and getting version), so the migration would provide marginal benefits, but it would make the migration complete and consistent.
<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>
How can I resolve this? If you propose a fix, please make it concise.
This would complete the migration and ensure all jobs in the release workflow use Blacksmith runners. Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/release.yml
Line: 325:325
Comment:
The `update-latest-json` job still uses `ubuntu-latest` instead of a Blacksmith runner. For consistency with the migration and to benefit from Blacksmith's faster runners, consider migrating this job as well:
```suggestion
runs-on: blacksmith-4vcpu-ubuntu-2404
```
This would complete the migration and ensure all jobs in the release workflow use Blacksmith runners.
<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>
How can I resolve this? If you propose a fix, please make it concise. |
To whomever may be reviewing this PR,
Blacksmith is the fastest way to run your GitHub Actions.
What does this PR change?
This PR has been automatically generated by a team member in your GitHub organization using Blacksmith's Migration Wizard, or MigWiz for short. This PR changes the following:
runs-on: blacksmith-4vcpu-ubuntu-2204). Learn more about the different instances available to choose from.FAQ