Skip to content

build and release updates#8455

Merged
jay-418 merged 18 commits intomainfrom
jay/releases
Feb 14, 2026
Merged

build and release updates#8455
jay-418 merged 18 commits intomainfrom
jay/releases

Conversation

@jay-418
Copy link
Contributor

@jay-418 jay-418 commented Feb 7, 2026

why

There were inconsistencies and duplicated code with: slack messages, s3 links, version naming and validation, artifact uploads, and PR release lifecycles.

This attempts to consolidate all of that into one workflow while preserving safety for production builds only triggering on properly formatted pushed tags (while nighty builds continue to be produced on a schedule using all the same core build logic).

what

  • Eliminate nightly.yml; we now consider "nightly" as just another build type (alongside "internal", "beta", and "production")
  • github releases and clients will always have in-sync versions, set-metadata will enforce semver increments and provide error messages on rejections
  • Extract inline scripts into scripts/ci/*.sh to keep release.yml more readable
  • Pubspec and github now inherit the same version from set-metadata, ensuring consistency between github and flutter, but maintaining the same incrementing build number
  • Require all publications to succeed before finalizing the release, and cleanup draft releases on failures
  • More clear handling for build types:
build type github release appcast links google play & testflight S3 installer links
production full release root, latest, & versioned yes latest & versioned
beta prerelease latest & versioned yes latest & versioned
internal prerelease no no latest & versioned
nightly prerelease no no latest & versioned

@jay-418 jay-418 changed the title refactor build and simplify and release build and release updates Feb 7, 2026
@jay-418
Copy link
Contributor Author

jay-418 commented Feb 7, 2026

works, saves maybe 10 minutes with new caching idk what affect caching even has

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the build/release pipeline to treat “nightly” as a build type within the main release workflow, centralizes version derivation/validation, and extracts repeated CI logic into reusable scripts to improve readability and consistency.

Changes:

  • Replaces the standalone nightly workflow with scheduled/manual build support inside release.yml, including draft-release creation and finalization gating.
  • Introduces CI shell scripts for versioning, artifact publishing to S3, and message formatting.
  • Updates platform build workflows and the Makefile to consistently apply build-type suffixing and adds dependency caching.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
scripts/ci/version.sh Adds semver validation and next-version generation for nightly/internal/beta builds.
scripts/ci/publish-to-s3.sh Uploads platform artifacts to S3 using versioned + latest paths.
scripts/ci/format.sh Generates release notes, job summary output, and Slack payload text.
Makefile Adds IOS_INSTALLER naming to include build type suffix for non-production builds.
.github/workflows/release.yml Consolidates release logic (tag/schedule/dispatch), creates draft releases, uploads to S3/GitHub Release, updates appcast, publishes to stores, and finalizes releases.
.github/workflows/nightly.yml Removes the standalone nightly workflow.
.github/workflows/build-android.yml Adds gomobile caching and aligns BUILD_TYPE/INSTALLER_NAME usage.
.github/workflows/build-ios.yml Adds Go cache and gomobile caching; aligns naming/env usage.
.github/workflows/build-linux.yml Adds Go/Flutter caching and aligns naming/env usage.
.github/workflows/build-macos.yml Adds Go cache and gomobile caching; aligns naming/env usage.
.github/workflows/build-windows.yml Adds Go/Flutter caching and aligns artifact naming with build type.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jay-418 jay-418 self-assigned this Feb 10, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 11 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@atavism
Copy link
Contributor

atavism commented Feb 11, 2026

Maybe a couple issues:

  • With the new scheduled job, there's no concurrency guard anymore so we can have overlapping nightlies

  • release.yml no longer triggers on v*-beta* / v*-internal* tag pushes because on.push.tags explicitly excludes them. Is that intentional?

@jay-418
Copy link
Contributor Author

jay-418 commented Feb 11, 2026

Maybe a couple issues:

* With the new scheduled job, there's no concurrency guard anymore so we can have overlapping nightlies

* `release.yml` no longer triggers on v*-beta* / v*-internal* tag pushes because on.push.tags explicitly excludes them. Is that intentional?

@atavism, good catches, both addressed by f3fb5ba

Let me know if you think this set-metadata enforcement validation here provides adequate safety guarantees to be worth the convenience of consolidation.

@jay-418 jay-418 merged commit 5b5f80c into main Feb 14, 2026
9 checks passed
@jay-418 jay-418 deleted the jay/releases branch February 14, 2026 05:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants