Skip to content
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

ci: improve performance of CI job #978

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

ci: improve performance of CI job #978

wants to merge 12 commits into from

Conversation

mato533
Copy link
Member

@mato533 mato533 commented Feb 28, 2025

Description

The following changes are proposed with the primary goal of optimising the performance of the CI pipeline
If cache is work, The runtime is 5min.(Before this change 8~10min)

Basic direction

Aim to improve performance by maximising parallel distributed execution while paying attention to the maximum number of concurrent executions, while making effective use of Turbo parallel execution and sequential execution based on job dependency definitions.

Changeset

  • Independence of Build jobs (.github/workflows/ci-build.yml)
    Ensure that all tests use the build results in Linux that are used when the actual NPM package is installed. We believe this will improve the quality of E2E testing.

  • Independence of Setup jobs as common action (.github/workflows/actions/setup-workspace)
    The following multi-step processes are now common.

    • Setup Node.js
    • Setup PNPM
    • Run pnpm install with cache
  • Create actions upload/download artifact (.github/workflows/actions/download-archive, upload-archive)
    The following usage are use this action.

    • Upload and download build result
    • Upload E2E log files.
  • Independence of lint and unit-test job (.github/workflows/ci-lint.yml, .github/workflows/ci-unit.yml)
    The process for utilising a single build result has been combined as a stand-alone workflow and changed to be called from the CI pipeline.

  • Independence of E2E (.github/workflows/ci-e2e.yml)
    While leveraging the features of Turbo, we have made it independent as a standard workflow for running E2E.

  • Rebuild CI pipeline (.github/workflows/ci.yml)
    Reconfigured to run E2E tests as distributed and parallel as possible by combining the above jobs.

  • Disable debug log at e2e test scripts
    The e2e log files now could be downloaded, It seems to no need to output its logs to GitHub actions log.

Remarks

  • This PR includes configurations for forge with pnpm(tentative)

Tasks

  • Reconfigure the required status check of this repository is needed
  • Reconfigure artifact retention period (30 days?)
    image

@mato533 mato533 marked this pull request as ready for review February 28, 2025 09:05
@mato533 mato533 requested a review from goosewobbler February 28, 2025 09:06
@mato533 mato533 added area:dependencies Updating dependencies area:ci Updates to Continuous Integration area:performance Issues affecting performance component:electron-builder Electron Builder issues component:electron-forge Electron Forge issues labels Feb 28, 2025
This was linked to issues Feb 28, 2025
@mato533 mato533 force-pushed the ta/ci/rebuild branch 4 times, most recently from 0f921fd to ed2128f Compare March 3, 2025 08:03
@goosewobbler
Copy link
Member

Will look at this after the 8.0.1 and 7.3.2 releases, targetting 8.0.2

@goosewobbler goosewobbler added this to the 8.x.y milestone Mar 4, 2025
@goosewobbler goosewobbler added release:future Include in a future release (not the next one) semver:patch Changes that don't affect the API (bug fixes) track:main For the current stable version track labels Mar 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:ci Updates to Continuous Integration area:dependencies Updating dependencies area:performance Issues affecting performance component:electron-builder Electron Builder issues component:electron-forge Electron Forge issues release:future Include in a future release (not the next one) semver:patch Changes that don't affect the API (bug fixes) track:main For the current stable version track
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve pnpm cache CI Logs
2 participants