napari / docs

Documentation for napari (other than API docs)
BSD 3-Clause "New" or "Revised" License
9 stars 37 forks source link

[Maint] fix the download and deploy part of workflow #380

Closed psobolewskiPhD closed 3 months ago

psobolewskiPhD commented 3 months ago

References and relevant issues

The second part, deployment, of the new unified workflow is failing: Error: Unable to download artifact(s): Artifact not found for name: docs https://github.com/napari/docs/actions/runs/8457634044/job/23170039408 If you check the timestamps it's running concurrently with the build&upload job, so the artifact probably isn't there to download. Additionally, I think the publish_dir is wrong, because it's the dir the docs were built into, but now the docs are being downloaded as an artifact, so the artifact should be used.

Description

In this PR:

melissawm commented 3 months ago

Ok - looking at https://github.com/napari/napari-sphinx-theme/pull/160 I figured it out:

OK! That actually explains the failure: https://github.com/napari/docs/actions/runs/8462011401/job/23182687077

We don't use _build/html as an output for the docs build process in the Makefile: https://github.com/napari/docs/blob/54ec184b4fdff1267409ffbaa05b3fbaaf8f694c/Makefile#L29

Meaning the artifact we are trying to upload here does not exist: https://github.com/napari/docs/blob/54ec184b4fdff1267409ffbaa05b3fbaaf8f694c/.github/workflows/build_and_deploy.yml#L83

So we need to update the workflow to upload _build (removing html), or we need to update the Makefile to build the docs to html. In that case, the CircleCI action will also need to be updated, as well as the contributing documentation guide.

psobolewskiPhD commented 3 months ago

We don't use _build/html as an output for the docs build process in the Makefile:

But I think it should still be the correct path to upload, because the docs-build in make uses the -M flag: https://github.com/napari/docs/blob/54ec184b4fdff1267409ffbaa05b3fbaaf8f694c/Makefile#L29-L30 This was changed in the unify-docs PR: https://github.com/napari/docs/pull/348 So with -M, from the docs:

The default output directory locations when using make-mode differ from the defaults when using -b.

  • doctrees are saved to /doctrees
  • output files are saved to /

the outputdir is docs/_build so the html should end up in docs/_build/html (because html is the builder). Then we need .../html/ I think for the artifact upload.

In that Unify PR I also fixed the CircleCI workflow: https://github.com/napari/docs/blob/54ec184b4fdff1267409ffbaa05b3fbaaf8f694c/.circleci/config.yml#L46-L51 So that works correctly -- you can see in the action that ran for this PR. That gives me some confidence that this should work as well.

So the only question is setting the paths correct for the download here. My understanding is that the download_artifact action will just unzip it to the workspace so the path structure won't be there as it would be when building in the same workflow step. That's why I changed the path in the deploy step. Testing this is pretty hard though!