Skip to content

Deploy with GitHub actions#18244

Merged
seanbudd merged 48 commits intobetafrom
ghDeploy
Jul 25, 2025
Merged

Deploy with GitHub actions#18244
seanbudd merged 48 commits intobetafrom
ghDeploy

Conversation

@seanbudd
Copy link
Copy Markdown
Member

@seanbudd seanbudd commented Jun 13, 2025

Link to issue number:

Part of #17878

Summary of the issue:

As part of migrating to GitHub actions, we need to deploy our signed snapshot/tagged builds to the server.

Description of developer facing changes:

  • Releases now trigger a deployment webhook with all the information needed to deploy a release.
    The server can use that webhook to deploy releases.
  • The create launcher step now publishes the SHA256 of the launcher. Currently it publishes the checksum of the zip folder, not the exe, and that is available else where in the GitHub UX. This allows people creating the release to know the SHA sum earlier, to be used in the website post.

Description of development approach:

switch to using gh release rather than a custom action for releases

Deploying

  1. Create a deploy environment for GitHub actions. This enables deploy protection, and gives us a good endpoint for a GitHub webhook
  2. Create a github webhook that fires when a deployment occurs.
  3. From our deploy step, trigger a deployment using our deploy environment. Pass in our payload of information.
  4. The GitHub webhook should fire off with our payload when the deployment happens.

Testing strategy:

Known issues with pull request:

  • Infrastructure as described in ci/README.md needs to be setup in this repo
  • Infrastructure on the NV Access server to deploy from the webhook is still to be released.

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
  • Security precautions taken.

@coderabbitai summary

@AppVeyorBot
Copy link
Copy Markdown

See test results for failed build of commit 4d993609f1

@seanbudd
Copy link
Copy Markdown
Member Author

@SaschaCowley - I think this has sufficient testing now, I have tested deployments for try builds. snapshots and releases to a local server. I think we should merge this before merging the server work, to ensure we have real life payloads being sent before receiving them.

@seanbudd seanbudd requested a review from Copilot July 17, 2025 07: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 the GitHub Actions pipeline to trigger on release tags, surface build metadata as outputs, compute and expose a launcher SHA256 checksum, and emit deployment webhooks for snapshot and production releases.

  • Enabled release-** tag triggers and switched to gh release commands
  • Captured version and API metadata as job outputs
  • Added steps to compute launcher SHA256 and deploy snapshots/releases via GitHub deployments API

Reviewed Changes

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

File Description
ci/scripts/setBuildVersionVars.ps1 Mark tagged builds as releases by setting release=1
ci/README.md Updated the Deploy section to reflect active steps
.github/workflows/testAndPublish.yml Enabled release triggers, stored metadata outputs, updated artifact uploads, computed SHA256, and added snapshot/release deployment jobs
Comments suppressed due to low confidence (2)

.github/workflows/testAndPublish.yml:248

  • This step needs an explicit id: uploadLauncher so that ${{ steps.uploadLauncher.outputs.artifact-id }} in outputs will resolve correctly.
      uses: actions/upload-artifact@v4

.github/workflows/testAndPublish.yml:431

  • [nitpick] You're computing a SHA1 hash here but elsewhere publishing a SHA256. For consistency, either switch to sha256sum or rename this variable to indicate it is SHA1.
        NVDA_HASH=$(sha1sum "$NVDA_EXE_NAME" | cut -d ' ' -f 1)

@seanbudd seanbudd added this to the 2025.3 milestone Jul 18, 2025
@seanbudd seanbudd enabled auto-merge (squash) July 25, 2025 00:13
@seanbudd seanbudd disabled auto-merge July 25, 2025 00:14
@seanbudd seanbudd enabled auto-merge (squash) July 25, 2025 00:18
@seanbudd seanbudd merged commit 5215677 into beta Jul 25, 2025
20 checks passed
@seanbudd seanbudd deleted the ghDeploy branch July 25, 2025 01:17
seanbudd added a commit that referenced this pull request Jul 25, 2025
Fixup of #18244
Summary of the issue:

Beta/rc snapshots will fail to deploy if there are merge conflicts between master and the snapshot commit.
This will cause releases to be blocked, as we expect a passing beta/rc snapshot to perform the tagged release.
Beta/rc don't need to have merge conflicts resolved to be a valid build, though regular merging to minimize these is ideal.
@seanbudd seanbudd modified the milestones: 2025.3, 2025.2 Aug 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants