Commit Graph
5 Commits
Author SHA1 Message Date
Ryan Curtin e30bd30df7 Add more cross-compilation hosts for CI job (#3906)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.

* Add a few more hosts for testing.

* Document the additional systems.

* Separate build directories for each matrix entry.

* Use safer directory name.

* What directory are we in?

* Try an alternate strategy of setting build names.

* Fix typo.

* Assemble container name.

* Oops, forgot one.

* Oops, fix the last use of  to .

* Fix bad merge.

* Set different page sizes for different systems.

* Try different quotation strategy.

* Make sure the variable actually gets substituted in.

* Quotes, bane of my existence.

* Update Jetson Orin Nano link.

* Try to use CORTEXA72 for the BB-AI again.

* Try to set flags for the Jetson Orin Nano too.

* Remove board names and use architecture names instead.

* Re-add RPI4 as BCM2711.

* Try to get the junit files back using the correct variable.
2025-04-06 12:55:04 +02:00
Ryan Curtin a44fbe4906 Move Jenkins job configuration into the repository (#3893)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.
2025-03-12 08:34:59 -04:00
Ryan Curtin e7f79637f6 First attempt at GHA CI instead of Azure Pipelines. (#3881)
* First attempt at GHA CI instead of Azure Pipelines.

* Could I have the matrix config wrong?

* Oh, oops, I was just looking in the wrong place for the GHA log.

* Disable Azure Pipelines Linux job.

* Fix some additional small syntax errors.

* Minor updates.

* Try to figure out what is happening with this test!

* Ha, actually remember the argument.

* Try to parse the CTest results.

* Don't build CLI programs for the debug-only mlpack_test build.

* Try to figure out why we don't have the CTest output file.

* Seems like maybe the test just needs more iterations.

* Fix directory for CTest output.

* Try running mlpack_test manually to see if we get better test output.

* Remove version numbers and other non-XML from XML output test file.

* Try to fix debug build.

* Filtering regex.

* Try to fail the build when the tests fail.

* Minor fixes and cleanups to run Python binding tests.

* Print test failure information in the actual build step.

* Update Julia testing strategy.

* Try to also get outputs from other test bindings.

* Fix Julia and Go testing blocks.

* Avoid random collisions that cause test failures.

* Try moving splitting into the trial loop.

* Try a different test reporter action.

* Install pytest for Python tests.

* Fix working directory for Julia test.

* Add test case that will fail to see what it looks like.

* Back to the old action, the new one I tried didn't do what I needed.

* Try a better way to print the test output.

* I still don't know how to mark the job failed yet.

* Maybe this stdout character works better.

* Try a forked test-summary action.

* Try to use distribution version of the modified action.

* Try to see if ccache is doing anything.

* Always run ccache stats step.

* Turn off PCH for ccache.

* Let's just see what it looks like with more error output.

* Clean up ccache configuration.

* Remove fake test because it seems like now I have the output working right.

* Try to reduce file size by not printing debug output into it.

* Try and refactor binding environment seutp into a composite local action.

* Try to fix some syntactical errors.

* Refactor test running into a separate composite action.

* Start trying to make the R build part of the main CI build.

* Oops, the include directory was in the wrong place.

* Try actually running R tests in the workflow too.

* Try to fix a few action issues.

* Try to work around libicu issue.

* Remove unnecessary option.

* Try to run OS X builds too.

* Try to fix matrix configuration.

* Revert "Try to fix matrix configuration."

This reverts commit 22a08d6dcd0d39de0a27f2df16e885bd68e18fda.

* Oops, maybe it was just an extra comma.

* Fix naming, and maybe we have to remove stringi first.

* Try to set Julia location correctly.

* Some fixes to the pipelines.

* Oops, I need root for that.

* Some additional fixes for jobs.

* Hopefully fix a few more builds.

* What, how did that get there?

* Don't use non-portable -i option with sed.

* Run R tests properly to get junit output.

* Oops, I have to redirect the output.

* Where is the output file?

* Try to fix macOS Python location.

* Oops, ROOTDIR is just not set.

* Try to store the name of the R package correctly.

* Oops, we need to specify pip.

* Try to get the right directory for the R package.

* Try to fix another round of issues.  I'm getting closer, at least.

* Okay, fine, let's do it the brutalistic way.

* What is actually happening with the Go binding tests?

* Try a different strategy for printing.

* Make some updates to prepare for Windows builds.

* What's the output of go test?

* Remove -Wall as per golang/go#6883.

* Try to fix duplicate library warning.

* Maybe I just specified the variable in an invalid way that didn't stick?

* This should fix the Go build.

* How did that cd go missing?

* Try to remove DEBUG output from the debug tests.

* Try to be more specific about the ccache key.

* Oops, incorrect variable name.

* Try to speed up the testing step.

* Try to run the Windows build through GHA.

* Try to install locally to deps/.

* Try to install and set up Windows dependencies correctly.

* Try to debug Windows build.

* Use bash for CMake configuration.

* Some additional path fixes.

* A couple fixes, but I don't have the Armadillo path right.

* Fix curl command.

* Maybe this is closer to the right path...

* Okay, look one directory deeper...

* Temporarily print STB compilation failure.

* Try to use absolute path for STB inclusion test.

* Oops, fix syntax.

* Try using REALPATH instead.

* Try just skipping the check...

* Try specifying BLAS and LAPACK locations directly.

* Try to figure out what is going on.

* Are we even using the correct FindArmadillo script?

* Try specifying the libraries manually.

* Try disabling the wrapper library.

* What version of CMake is this?

* Print the configuration.

* What if we specify these library locations?

* Double-check: this should fail.

* Okay, that actually surprisingly did not fail.

* Fix style issues.

* Compress into only one GHA file so all the jobs show up in the same place.

* Try to use absolute path to OpenBLAS.

* Try to fix path mangling on Windows.

* Fix STB path and no PS please.

* Try to fix output on Windows tests.

* Call test from the right place.

* Remove some unnecessary output.

* Try just running the test.

* What is going on, why doesn't the test run?

* Try just running the test with PowerShell.

* Maybe I have the filename wrong?

* PowerShell makes me angry...

* Right, .exe is the suffix...

* I love PowerShell!

* Okay, forget PowerShell.

* Can we even run the test?

* Is it a DLL search path issue?

* Okay, I think this might work for Windows.

* Fix porting of new r2u/p3m workflow (hopefully).

* Fix possibly incorrect variable name.

* Reduce the number of macOS jobs.

* Fix name of job.

* Remove potentially unnecessary step.

* Document CI changes and reorganize jobs for better viewing.

* Remove invalid link.  (Awesome that the link check build picked this up.)
2025-02-14 20:22:13 -05:00
Ryan Curtin d9bfc67546 Fix style issues that cpplint 2 found (#3884) 2025-01-24 06:15:10 +01:00
Ryan Curtin c8eb3dceac Overhaul documentation homepage (#3836)
* Add pipeline to documentation homepage.

* Fix for mobile devices.

* Add little pipelines to go at the top of each page.

* Overhaul index page.

* Overhaul README to remove redundant material.

* Add installation documentation.

* Update pipelines.

* Allow nesting of deeper details.

* Add a pipeline to the top of the load/save page.

* Add prerequisites link to main pipeline.

* Add better but not finished sidebar.

* Add a couple new documentation pages.

* Fix URLs in svg.

* Incremental checkin.

* Fix Youtube URLs.

* Incremental checkin.

* Minor fixes.

* Add first pass at evaluation/deployment pages.

* Minor spacing and link fixes.

* Flesh out a number of additional pages and write basic compilation documentation.

* Fix some minor issues, and add Docker deployment page (not totally finished yet).

* Add developer documentation landing page.

* Hopefully getting close to the final set of changes here.

* Remove this documentation for now.

* Fix a few links, and the size of the sidebar.

* Fix some additional links.

* Fix a bunch more links.

* Fix another link that now has a better place.

* Refactor test-docs.sh to handle documentation that is a standalone program.

* Fix file exclusions.

* Fully qualify typename.

* Update name of file.

* Fix syntax error.

* Remove files that are not meant to be compiled.

* Also skip the quickstart.

* Move quickstart entry to the top.

* Remove gray coloring of binding documentation.

* Update name of sidebar link.

* Update to working link.

* Fix Wikipedia anchor.
2024-12-20 13:36:12 -05:00