Failed to publish static site (SPA) with submodules

I’m attempting to publish pages for a library’s “demo page”.
I receive this dreaded message: “Error: Error: No uploaded artifact was found!”. I’ve attempted to disable Jekyll by adding a .nojekyll file to my repos root folder.

Here’s a link to a similar question which did not satisfactorily answer my question:
The difference is, I need these submodules. My library depends on them. After doing a run with the .nojekyll file, the problem persists (only this time with no clear mention of submodules).

The repo in question is found here.


Hi Aria,

I wrote the post you referenced in which I had an unnecessary submodule that was preventing my site from hosting. I am still learning GitHub, but in troubleshooting came across the resources that may be able to help.

I noticed that you added the “index.html” file. From my understanding, this is the file that GitPages look for when it comes to deployment and will appear when you access the domain of the page. Since it is empty, it should be deployed with a blank HTML page. Is this what is happening when you try to redeploy?

If not, and the issue is still with the submodule file, here are some guides I found for dealing with the error that may be able to fix the problem:

Additionally, you could try removing the submodule file and reinitializing it. Maybe that will resolve it?

Hopefully, this helps a bit, or someone is able to chime in that is more experienced.

also, I noticed that the submodule that is causing the issue when deploying is the “lib/HashMap/vendor/benchmark”. The error in the build was:

Error: fatal: No url found for submodule path ‘lib/HashMap/vendor/benchmark’ in .gitmodules

Error: fatal: run_command returned non-zero status while recursing in the nested submodules of lib/HashMap

Error: The process ‘/usr/bin/git’ failed with exit code 128

Maybe you could check the details in the submodule file to make sure it is correct? Or try removing it, to see if that is the only thing causing your deployment issue?

1 Like

Hello and welcome here!

@lukeqanderson is right, there is a problem with GitHub - rigtorp/HashMap: An open addressing linear probing hash table, tuned for delete heavy workloads having an invalid submodule itself.

When I clone your repository and try to initialize the submodules I am getting the same error with details:

GitHub Pages supports submodules. There used to be a few limitations (HTTP only and submodules in the source folder / or /docs only) but for Pages sites building with Actions those limits are lifted. The submodules must be public though as we don’t let you pass SSH keys or any kind of credentials to the clone step today.

1 Like

Interesting, I’m not getting anything about submodules in the deployment steps as evidenced by the log here:

2021-12-28T00:40:43.4660088Z Found online and idle hosted runner in the current repository's organization account that matches the required labels: 'ubuntu-latest'
2021-12-28T00:40:43.5723213Z Waiting for a Hosted runner in the 'organization' to pick this job...
2021-12-28T00:40:43.6866969Z Job is waiting for a hosted runner to come online.
2021-12-28T00:40:47.0349345Z Job is about to start running on the hosted runner: GitHub Actions 2 (hosted)
2021-12-28T00:40:49.0439474Z Current runner version: '2.285.1'
2021-12-28T00:40:49.0464480Z ##[group]Operating System
2021-12-28T00:40:49.0465494Z Ubuntu
2021-12-28T00:40:49.0465915Z 20.04.3
2021-12-28T00:40:49.0466392Z LTS
2021-12-28T00:40:49.0466836Z ##[endgroup]
2021-12-28T00:40:49.0467431Z ##[group]Virtual Environment
2021-12-28T00:40:49.0468159Z Environment: ubuntu-20.04
2021-12-28T00:40:49.0468698Z Version: 20211219.1
2021-12-28T00:40:49.0469765Z Included Software:
2021-12-28T00:40:49.0471374Z Image Release:
2021-12-28T00:40:49.0472316Z ##[endgroup]
2021-12-28T00:40:49.0473009Z ##[group]Virtual Environment Provisioner
2021-12-28T00:40:49.0474169Z ##[endgroup]
2021-12-28T00:40:49.0475483Z ##[group]GITHUB_TOKEN Permissions
2021-12-28T00:40:49.0476662Z Contents: read
2021-12-28T00:40:49.0477325Z Metadata: read
2021-12-28T00:40:49.0477875Z Pages: write
2021-12-28T00:40:49.0478482Z ##[endgroup]
2021-12-28T00:40:49.0481067Z Secret source: Actions
2021-12-28T00:40:49.0482104Z Prepare workflow directory
2021-12-28T00:40:49.1055058Z Prepare all required actions
2021-12-28T00:40:49.1064068Z Getting action download info
2021-12-28T00:40:49.2523272Z Download action repository 'actions/deploy-pages@v1-beta' (SHA:e90f31fe302bdc57dfe621e71e13bcca93925130)
2021-12-28T00:40:51.2162580Z ##[group]Run actions/deploy-pages@v1-beta
2021-12-28T00:40:51.2163276Z with:
2021-12-28T00:40:51.2164161Z   token: ***
2021-12-28T00:40:51.2164573Z   timeout: 600000
2021-12-28T00:40:51.2165004Z   error_count: 10
2021-12-28T00:40:51.2165477Z   reporting_interval: 1000
2021-12-28T00:40:51.2165953Z ##[endgroup]
2021-12-28T00:40:51.5274161Z Sending telemetry for run id 1628774354
2021-12-28T00:40:51.5356463Z ##[group]Run actions/deploy-pages@v1-beta
2021-12-28T00:40:51.5357048Z with:
2021-12-28T00:40:51.5357946Z   token: ***
2021-12-28T00:40:51.5358398Z   timeout: 600000
2021-12-28T00:40:51.5358860Z   error_count: 10
2021-12-28T00:40:51.5359346Z   reporting_interval: 1000
2021-12-28T00:40:51.5359845Z ##[endgroup]
2021-12-28T00:40:51.8536416Z Actor: github-pages[bot]
2021-12-28T00:40:51.8541341Z Action ID: 1628774354
2021-12-28T00:40:51.8544544Z Artifact URL:
2021-12-28T00:40:51.8546889Z {"count":0,"value":[]}
2021-12-28T00:40:51.8547898Z Failed to create deployment for 5022c6b3aea27e9571d29652dd2773e9fb295bd2.
2021-12-28T00:40:51.8553998Z ##[error]Error: No uploaded artifact was found!
2021-12-28T00:40:51.8567630Z ##[error]Error: No uploaded artifact was found!
2021-12-28T00:40:51.8596856Z Sending telemetry for run id 1628774354
2021-12-28T00:40:51.8615553Z Evaluate and set environment url
2021-12-28T00:40:51.8622393Z Evaluated environment url: 
2021-12-28T00:40:51.8623646Z Cleaning up orphan processes

I’m open to the idea of having a copy of the hashmap library separate from the original repo. It does make me sad though, the idea that it not being linked (and therefore updated if that repo ever sees any new update).

I could try that later, but I gotta get ready for the next day here. So perhaps I’ll have an update likely by Wednesday (12-27).

The problem seen here is a key problem with submodules. They’re incredibly fragile and violate the D (distributed) in DVCS.

Certainly if I had a clone of the missing sub repository and needed to get out of these woods, I’d probably just publish my clone to GitHub and adjust my repository that linked to the broken sub repository to point to my github hosted copy.

1 Like

I’ve replaced the HashMap submodule with a more minified version of itself. (now all submodules don’t have any funky broken links to their subsequent child submodules)

Afterwards it told me that it’s the pages are active, though I get 404’s when trying to visit anything. I’ve removed the .nojekyll file and then pushed to main again.

It now works. Pending changes to my README it should be all set.

Also @jsoref that’s an excellent point, and news to me. I’ll endeavor to further educate myself and make effort as to what the appropriate role is for submodules.

Thanks for you’re help everyone.

(My rationale for marking this post as solution is based on my summarizing all changes I’ve made to solve the issue, not meaning to take credit.)

1 Like

For future reference, note that the deployment step does not include details about the build. The build step is responsible for that: building (in the case of a Jekyll site) and archiving the static assets as an artifact.

Glad you resolved your issue!