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

Add ability to use GitHub Actions to build NVDA #10516

Open
dpy013 opened this issue Nov 20, 2019 · 21 comments
Open

Add ability to use GitHub Actions to build NVDA #10516

dpy013 opened this issue Nov 20, 2019 · 21 comments
Labels
audience/nvda-dev PR or issue is relevant to NVDA / Add-on developers p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@dpy013
Copy link
Contributor

dpy013 commented Nov 20, 2019

hi
The appveyor currently used by NVDA cannot compile multithreaded when compiling NVDA

Is your feature request related to a problem? Please describe.

If possible, we can compile NVDA with GitHub Actions

Describe the solution you'd like

help docs
GitHub Actions docs
and
Events that trigger workflows - GitHub

Describe alternatives you've considered

none

Additional context

Image YAML Label Included Software Rollout Status of Latest Image Release
Ubuntu 24.04 beta ubuntu-24.04 [ubuntu-24.04] Endpoint Badge
Ubuntu 22.04 ubuntu-latest or ubuntu-22.04 [ubuntu-22.04] Endpoint Badge
Ubuntu 20.04 ubuntu-20.04 [ubuntu-20.04] Endpoint Badge
macOS 14 macos-latest-large or macos-14-large [macOS-14] Endpoint Badge
macOS 14 Arm64 macos-latest, macos-14, macos-latest-xlarge or macos-14-xlarge [macOS-14-arm64] Endpoint Badge
macOS 13 macos-13 or macos-13-large [macOS-13] Endpoint Badge
macOS 13 Arm64 macos-13-xlarge [macOS-13-arm64] Endpoint Badge
macOS 12 macos-12 or macos-12-large [macOS-12] Endpoint Badge
Windows Server 2022 windows-latest or windows-2022 [windows-2022] Endpoint Badge
Windows Server 2019 windows-2019 [windows-2019] Endpoint Badge
thanks
@dpy013
Copy link
Contributor Author

dpy013 commented Nov 20, 2019

cc @josephsl
and
@michaelDCurran
system config (E5 2vCPU/​7G RAM)

@LeonarddeR
Copy link
Collaborator

I have investigated github actions for add-on compilation, and it wasn't suitable at that time because of actions/upload-artifact#3. In short, Github actions uploads artifacts in a zip file. Even when that would be supported, wildcards aren't either, see actions/upload-artifact#11.

Having said that, it will probably take hours or days to convert our appveyor script to Github Actions, thereby not gaining much benefit. Closing as can't fix for now. We can always reopen if desired.

@dpy013
Copy link
Contributor Author

dpy013 commented Nov 20, 2019

I have investigated github actions for add-on compilation, and it wasn't suitable at that time because of actions/upload-artifact#3. In short, Github actions uploads artifacts in a zip file. Even when that would be supported, wildcards aren't either, see actions/upload-artifact#11.

Having said that, it will probably take hours or days to convert our appveyor script to Github Actions, thereby not gaining much benefit. Closing as can't fix for now. We can always reopen if desired.
Thank you for your instructions

@XLTechie
Copy link
Collaborator

XLTechie commented Nov 20, 2019 via email

@LeonarddeR
Copy link
Collaborator

LeonarddeR commented Nov 20, 2019 via email

@dpy013
Copy link
Contributor Author

dpy013 commented Mar 27, 2021

cc @seanbudd

@dpy013
Copy link
Contributor Author

dpy013 commented Mar 27, 2021

I have investigated github actions for add-on compilation, and it wasn't suitable at that time because of actions/upload-artifact#3. In short, Github actions uploads artifacts in a zip file. Even when that would be supported, wildcards aren't either, see actions/upload-artifact#11.

Having said that, it will probably take hours or days to convert our appveyor script to Github Actions, thereby not gaining much benefit. Closing as can't fix for now. We can always reopen if desired.

Has the above problem been solved by github actions?

@dpy013
Copy link
Contributor Author

dpy013 commented Jan 26, 2022

appveyor has started to limit the number of downloads to.
{"message":"Artifacts download limit (1024 MB/day) exceeded."}
test method is as follows:
first open this address
Once opened, the above prompt will appear
{"message":"Artifacts download limit (1024 MB/day) exceeded."}

@LeonarddeR
Copy link
Collaborator

See #13281

@LeonarddeR
Copy link
Collaborator

As actions is much more mature now and a switch to actions could be a possible way to avoid #13281, I"ll reopen this until a solution for #13281 has been chosen.

@LeonarddeR LeonarddeR reopened this Jan 26, 2022
@LeonarddeR
Copy link
Collaborator

never mind, this is still a showstopper for us:

During a workflow run, files are uploaded and downloaded individually using the upload-artifact and download-artifact actions. However, when a workflow run finishes and an artifact is downloaded from either the UI or through the download api, a zip is dynamically created with all the file contents that were uploaded. There is currently no way to download artifacts after a workflow run finishes in a format other than a zip or to download artifact contents individually.

@dpy013
Copy link
Contributor Author

dpy013 commented Oct 26, 2022

I have investigated github actions for add-on compilation, and it wasn't suitable at that time because of actions/upload-artifact#3. In short, Github actions uploads artifacts in a zip file. Even when that would be supported, wildcards aren't either, see actions/upload-artifact#11.

Having said that, it will probably take hours or days to convert our appveyor script to Github Actions, thereby not gaining much benefit. Closing as can't fix for now. We can always reopen if desired.
hi Maybe Creepios/sftp-action: GitHub Action to upload files/directories via ssh This problem can be solved

@XLTechie
Copy link
Collaborator

XLTechie commented May 8, 2024

@LeonarddeR Your show-stopper seems no longer to be the case. Can you confirm that your concerns are satisfied?

@LeonarddeR
Copy link
Collaborator

After #13281, snapshots are no longer directly downloaded from appveyor. This means that the fact that github only offers zip files is less relevant, though it is still a bit of a complicating factor when downloading artifacts from pull requests. That said, I think there's enough potential to reopen this.

@LeonarddeR LeonarddeR reopened this May 8, 2024
@seanbudd seanbudd added p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority audience/nvda-dev PR or issue is relevant to NVDA / Add-on developers triaged Has been triaged, issue is waiting for implementation. and removed close/cant-fix labels May 16, 2024
@seanbudd
Copy link
Member

seanbudd commented May 16, 2024

Hi, just to give an update from NV Access. Moving to GitHub actions is on our roadmap due to many issues with AppVeyor:

  • AppVeyor instances appear to be getting slower, slowing the build times
  • We can only perform one build at a time
  • GitHub actions allows us to split up the CI/CD pipeline (e.g. the lint check can run independently of the build)
  • GitHub actions are easier for forks to use
  • being in one platform (i.e. GitHub) is generally simpler

@XLTechie
Copy link
Collaborator

XLTechie commented May 16, 2024 via email

@dpy013
Copy link
Contributor Author

dpy013 commented May 16, 2024

As a side note, GitHub actions can be used to compile and test NVDA code using relatively new windows systems.
It would also be possible to link crowdin to the GitHub code repository.
Finally, it might be possible to automate the task of posting alpha, stable, and test boards to the website.
To reduce the workload of the staff!

@seanbudd
Copy link
Member

@XLTechie

I often wondered why NV Access didn't, especially for the slow-to-compile C components, and clonable items that hadn't been updated, but assumed there was a reason.

We've already done this in a different way for some components like https://github.com/nvaccess/nvda-cldr

The issue of AppVeyor making their instances cheaper and slower over time is still going to be an issue even if we optimize other parts of the build system. The slowest parts of the build are quite challenging to split up. We can always speed up the build system in many ways, and GitHub actions is probably the most effective solution.

@XLTechie
Copy link
Collaborator

XLTechie commented May 16, 2024 via email

@nvdaes
Copy link
Collaborator

nvdaes commented May 16, 2024

I've started to study modules of GitHub Actions with the Study guide for a possible preparation to get the GitHub Actions certificate from GitHub. I don't know if finally I'll try to get the certifications since I need to show Government documentation, installing a software etc. But if someone doesn't take this, I may create a PRafter testing.
We may use the new attestations feature too.

@seanbudd
Copy link
Member

@nvdaes - there's no need to worry about build signing, we're currently working on changing this actively

@seanbudd seanbudd mentioned this issue Jul 16, 2024
5 tasks
seanbudd added a commit that referenced this issue Aug 1, 2024
Part of #10516

Summary of the issue:
As a developer, I would like automation tools to fix the lint of my code when I open a PR.
After #16936, we have applied pre-commit on all files. However, there are no automation checks for some of these checks (like whitespaces changes). Which means without running pre-commit automatically, the repository may have pre-commit regressions.

Description of user facing changes
Improved documentation for pre-commit hooks and the PR contribution process.

Description of development approach
Setup Pre-commit CI. This is a CI/CD tool to automatically apply pre-commit to PRs.
@dpy013 dpy013 changed the title discuss:Compile NVDA with GitHub Actions discuss Compile NVDA with GitHub Actions Sep 9, 2024
@dpy013 dpy013 changed the title discuss Compile NVDA with GitHub Actions Add ability to use GitHub Actions to build NVDA Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audience/nvda-dev PR or issue is relevant to NVDA / Add-on developers p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

No branches or pull requests

5 participants