Skip to content

Add documentation for CI/CD set up#18330

Merged
seanbudd merged 9 commits intomasterfrom
ghVarConfig
Jun 26, 2025
Merged

Add documentation for CI/CD set up#18330
seanbudd merged 9 commits intomasterfrom
ghVarConfig

Conversation

@seanbudd
Copy link
Copy Markdown
Member

@seanbudd seanbudd commented Jun 25, 2025

Link to issue number:

Part of #17878

Summary of the issue:

Forks of NVDA cannot customise parts of the CI/CD pipeline without committing to code.
This allows forks to maintain a clean diff with nvaccess/nvda.
Right now several environment variables and feature flags are set in testAndPublish.yml, the CI/CD script.
Forks should be able to maintain their CI/CD pipeline without making commits, as commits dirty the fork and make merging upstream harder.
For AppVeyor, developers could create a gist for appveyor.yml, point AppVeyors UX towards it, and host it separately to their repo fork.
This can't be done with GitHub actions.
As such, all variables which need to be customizable by forks should be able to be set from GitHub variable contexts.
such as:

  • setting a publisher name
  • enabling/configuring signing
  • enabling/configuring crowdin sync
  • enabling/configuring uploading symbols to mozilla

The current GitHub actions design doesn't allow for a separate environment to override .github/workflows/testAndPublish.yml.

Description of user facing changes:

None

Description of developer facing changes:

Forks can now more easily maintain a custom build set up.
Documentation has been added on how to do this.
Forks should work clean out of the gate, with features disabled by default, for everything except tagged releases.

We also have more clear documentation on how to set up the NVDA repository for builds

Description of development approach:

Config is moved out of source control into github variables. sensible defaults are provided for forks

Testing strategy:

Test builds

Known issues with pull request:

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@coderabbitai summary

Copilot AI review requested due to automatic review settings June 25, 2025 07:47
@seanbudd seanbudd requested a review from a team as a code owner June 25, 2025 07:47
@seanbudd seanbudd requested a review from SaschaCowley June 25, 2025 07:47
@seanbudd seanbudd added this to the 2025.2 milestone Jun 25, 2025

This comment was marked as outdated.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
wmhn1872265132 added a commit to wmhn1872265132/NVDA that referenced this pull request Jun 25, 2025
@AppVeyorBot
Copy link
Copy Markdown

See test results for failed build of commit 41fa929994

@seanbudd seanbudd requested review from SaschaCowley and Copilot June 26, 2025 02:09
Copy link
Copy Markdown
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 enhances CI/CD configurability for forks by externalizing build settings into GitHub variables and updates related documentation and workflows.

  • Adds explanatory comment in setSconsArgs.ps1 and retains AppX build flag
  • Expands ci/README.md with detailed setup steps and variable descriptions
  • Refactors .github/workflows/testAndPublish.yml to consume repository vars, default values, and split symbol jobs

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
ci/scripts/setSconsArgs.ps1 Added a comment about AppX support and conditional target inclusion
ci/README.md Expanded documentation on build types, environment variables, and setup
.github/workflows/testAndPublish.yml Switched hardcoded defaults to vars, updated feature flags, and separated symbol creation/upload jobs
Comments suppressed due to low confidence (3)

ci/README.md:59

  • Replace the placeholder '*' with a clear reference (e.g., '0') to indicate the default starting build count.
This means our first build will be numbered something like 100,001 not *

.github/workflows/testAndPublish.yml:191

  • Add a default fallback (|| '') for apiSigningToken to avoid workflow failures when the secret isn't defined in a fork.
        apiSigningToken: ${{ github.event_name == 'push' && secrets.API_SIGNING_TOKEN }}

.github/workflows/testAndPublish.yml:318

  • [nitpick] Consider relocating mozillaSyms.py into ci/scripts and updating the workflow path for improved consistency and maintainability.
      # TODO: this script should be moved to ci/scripts

Co-authored-by: Sascha Cowley <16543535+SaschaCowley@users.noreply.github.com>
@seanbudd seanbudd merged commit dcd4d63 into master Jun 26, 2025
15 of 16 checks passed
@seanbudd seanbudd deleted the ghVarConfig branch June 26, 2025 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants