Skip to content

Add S3 upload step to base installer workflow for automatic updates#462

Merged
jasonleenaylor merged 2 commits into
release/9.3from
copilot/fix-fe1bd54b-2c35-43bd-be54-eb45525507f4
Sep 16, 2025
Merged

Add S3 upload step to base installer workflow for automatic updates#462
jasonleenaylor merged 2 commits into
release/9.3from
copilot/fix-fe1bd54b-2c35-43bd-be54-eb45525507f4

Conversation

Copilot AI commented Sep 16, 2025

Copy link
Copy Markdown
Contributor

This PR adds S3 upload functionality to the base installer continuous deployment workflow to support automatic updates in FieldWorks.

Problem

The base installer workflow (base-installer-cd.yml) was missing the S3 upload step needed to make base installers available for automatic updates. The patch installer workflow already had this functionality, but base installers were not being uploaded to the expected S3 location that the automatic update system looks for.

Solution

Added two new steps to the base installer workflow following the same pattern as the patch installer workflow:

  1. Configure AWS credentials - Sets up AWS authentication using the same secrets and configuration
  2. Upload Installers to S3 - Uploads both online and offline installers to the correct S3 path

Technical Details

  • S3 Location: s3://flex-updates/jobs/FieldWorks-Win-all-Release-Base/${RELEASE_BASE_BUILD_NUMBER}/
  • Files Uploaded: Both FieldWorks_*_Online_x64.exe and FieldWorks_*_Offline_x64.exe
  • Condition: Only uploads when make_release == 'true' (matching existing release logic)
  • Integration: Uses existing installer file paths from the stage_installers step

The S3 path structure matches exactly what the automatic update system expects based on the patterns defined in Src/Common/FwUtils/FwUtilsTests/FwUpdaterTests.cs:

private static string BaseKey(string version, int baseBuild, int arch, bool isOnline)
{
    return $"jobs/FieldWorks-Win-all-Release-Base/{baseBuild}/{BaseFileName(version, arch, isOnline)}";
}

Validation

  • ✅ YAML syntax validated
  • ✅ S3 path matches expected pattern from test files
  • ✅ Follows same AWS configuration as patch installer workflow
  • ✅ Proper error handling and logging included
  • ✅ Only runs when releasing (not on test builds)

This change enables the automatic update system to find and download base installers, completing the S3 upload coverage for both patch and base installers.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.


This change is Reviewable

Co-authored-by: jasonleenaylor <2295227+jasonleenaylor@users.noreply.github.com>
Copilot AI changed the title [WIP] using .github/workflows/patch-installer-cd.yml as an example add an s3 upload step to base-installer-cd.yml putting the offline and online installers in a jobs/FieldWorks-Win-all-Release-Base/${env.RELEASE_BASE_BUILD_NUMBER} location Add S3 upload step to base installer workflow for automatic updates Sep 16, 2025

@jasonleenaylor jasonleenaylor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

:lgtm:

@jasonleenaylor reviewed 1 of 1 files at r2, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @copilot)

@jasonleenaylor jasonleenaylor marked this pull request as ready for review September 16, 2025 22:21
@jasonleenaylor jasonleenaylor enabled auto-merge (rebase) September 16, 2025 22:22

@jasonleenaylor jasonleenaylor left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

:lgtm:

Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @copilot)

@jasonleenaylor jasonleenaylor merged commit 3df5b14 into release/9.3 Sep 16, 2025
6 of 8 checks passed
@jasonleenaylor jasonleenaylor deleted the copilot/fix-fe1bd54b-2c35-43bd-be54-eb45525507f4 branch September 16, 2025 22:43
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.

2 participants