Skip to content

Electron37 cloud build#10

Merged
caneraltinbasak merged 35 commits into
masterfrom
electron37-cloud-build
Sep 1, 2025
Merged

Electron37 cloud build#10
caneraltinbasak merged 35 commits into
masterfrom
electron37-cloud-build

Conversation

@caneraltinbasak

@caneraltinbasak caneraltinbasak commented Aug 21, 2025

Copy link
Copy Markdown

This pull request introduces major improvements to the GitHub Actions CI/CD workflows for the meta-browser project. The changes add support for running builds and tests on AWS EC2 instances for both Chromium and Electron, enable matrix builds across multiple configurations, and provide a new workflow for cleaning up EFS cache storage. The updates make the CI system more scalable, configurable, and better suited for large builds.

New EC2-based CI workflow and matrix build support:

  • Added a new workflow file bs_meta_browser_ci_ec2.yml that provisions EC2 runners, tags resources, and orchestrates build/test jobs for meta-browser on AWS, including automatic runner startup and cleanup.
  • Updated chromium.yml and electron.yml to support matrix builds on AWS EC2, with configurable instance types, build parameters, and the option to fall back to local runners for manual dispatch. This enables parallel builds across Yocto versions, platforms, architectures, and libc flavors. [1] [2] [3] [4]

Infrastructure and configuration enhancements:

  • Added OIDC authentication permissions (id-token: write) to workflows for secure AWS credential management. [1] [2]
  • Improved EC2 runner tagging for better traceability and resource management, including passing build metadata as AWS resource tags.

EFS cache management:

  • Introduced a new workflow cleanup-efs-cache.yml to automate cleanup of Yocto downloads and sstate-cache directories on EFS using a temporary EC2 runner, with options for selective cleanup and disk usage reporting.

Minor fixes and consistency:

  • Updated test repo cloning in build scripts to remove hardcoded branch, ensuring consistency for both Chromium and Electron workflows. [1] [2]

Copilot AI review requested due to automatic review settings August 21, 2025 11:42

This comment was marked as outdated.

@caneraltinbasak caneraltinbasak force-pushed the electron37-cloud-build branch 8 times, most recently from 79f7481 to 57c078f Compare August 26, 2025 20:28
- Add NFS egress rule (port 2049) to VPC security group in Terraform
- Improve EFS mounting logic with DNS and IP fallback
- Add better debugging and status indicators
- Fix Yocto build environment setup for meta-chromium-test script
- Install kas tool and set up proper directory structure
- Use electron-master branch for chromium builds
- Fix corrupted YAML structure in build workflow
- Add kas installation for Yocto builds
- Improve EFS mounting with IP fallback and better error handling
- Add proper directory structure setup for build script
- Enhanced debugging and status reporting
- Use electron-master branch for electron builds
Continue running jobs even if one fails
- Increase swap from 4GB to 128GB on NVMe SSD for memory-intensive Yocto builds
- Add swap performance optimization (swappiness=10, vfs_cache_pressure=1)
- Enhance S3 upload with detailed logging and error handling
- Add pre-upload diagnostics (disk space, upload size, S3 access test)
- Remove --quiet flag for better error visibility
- Add post-upload verification and file listing
- Improve timeout settings for reliable uploads
@caneraltinbasak

Copy link
Copy Markdown
Author

Build succeeded. I'll squash and merge.

This comment was marked as outdated.

Comment thread .github/workflows/cleanup-efs-cache.yml Outdated
Comment thread .github/workflows/cleanup-efs-cache.yml Outdated
Comment thread .github/workflows/cleanup-efs-cache.yml Outdated
Comment thread .github/workflows/cleanup-efs-cache.yml Outdated
Comment thread .github/workflows/chromium.yml
Comment thread .github/workflows/bs_meta_browser_build_and_test.yml Outdated
Comment thread .github/workflows/bs_meta_browser_build_and_test.yml Outdated
Comment thread .github/workflows/bs_meta_browser_ci_ec2.yml
Comment thread .github/workflows/cleanup-efs-cache.yml
Comment thread .github/workflows/bs_meta_browser_build_and_test.yml Outdated
@caneraltinbasak caneraltinbasak force-pushed the electron37-cloud-build branch 2 times, most recently from 9efc58e to c883ee8 Compare August 29, 2025 16:21
t-bashir-bs
t-bashir-bs previously approved these changes Aug 29, 2025

Copilot AI left a comment

Copy link
Copy Markdown

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 introduces cloud-based Electron builds using AWS EC2 instances instead of only local runners. The changes implement an AWS EC2 build infrastructure with configurable instance types and automated cleanup, while maintaining backward compatibility with local runners.

  • Adds AWS EC2 instance support with configurable instance types for Electron and Chromium builds
  • Implements centralized EFS-based caching system for improved build performance
  • Introduces EFS cache cleanup workflows for maintenance operations

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/electron.yml Restructures workflow to support both AWS EC2 and local builds with configurable instance types
.github/workflows/chromium.yml Mirrors electron.yml changes for Chromium builds with AWS EC2 support
.github/workflows/cleanup-efs-cache.yml New workflow for managing EFS cache cleanup operations
.github/workflows/bs_meta_browser_ci_ec2.yml New reusable workflow for orchestrating EC2 runner lifecycle
.github/workflows/bs_meta_browser_build_and_test.yml New workflow containing the actual build and test logic for EC2 runners

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread .github/workflows/cleanup-efs-cache.yml
t-bashir-bs
t-bashir-bs previously approved these changes Sep 1, 2025
During development, I've used electron-master branch. electron-master
is now merged to main. Switch to that branch
@caneraltinbasak caneraltinbasak merged commit fdb8f4b into master Sep 1, 2025
38 checks passed
@caneraltinbasak caneraltinbasak deleted the electron37-cloud-build branch September 11, 2025 15:09
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